diff --git a/.babelrc b/.babelrc index aacea1f975e..37f9ec0a4c7 100644 --- a/.babelrc +++ b/.babelrc @@ -7,7 +7,7 @@ "messagesDir": "./translations/messages/" }]], "presets": [ - ["@babel/preset-env", {"targets": {"browsers": ["last 3 versions", "Safari >= 8", "iOS >= 8"]}}], + "@babel/preset-env", "@babel/preset-react" ] } diff --git a/.browserslistrc b/.browserslistrc index 909debc2de7..d9edb146a3d 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -1,3 +1,7 @@ -last 3 versions -Safari >= 8 -iOS >= 8 +# See https://scratch.mit.edu/faq +Chrome >= 63 +Edge >= 15 +Firefox >= 57 +Safari >= 11 +Android >= 63 +iOS >= 11 diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 764f5e1c82f..00000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,207 +0,0 @@ -version: 2.1 -aliases: - - &save_git_cache - save_cache: - paths: - - .git - key: v1-git-{{ .Revision }} - - &restore_git_cache - restore_cache: - keys: - - v1-git-{{ .Revision }} - - v1-git- - - &save_build_cache - save_cache: - paths: - - build - key: v1-build-{{ .Revision }} - - &restore_build_cache - restore_cache: - keys: - - v1-build-{{ .Revision }} - - &save_dist_cache - save_cache: - paths: - - dist - key: v1-dist-{{ .Revision }} - - &restore_dist_cache - restore_cache: - keys: - - v1-dist-{{ .Revision }} - - &save_npm_cache - save_cache: - paths: - - node_modules - key: v1-npm-{{ checksum "package-lock.json" }} - - &restore_npm_cache - restore_cache: - keys: - - v1-npm-{{ checksum "package-lock.json" }} - - v1-npm- - - &defaults - docker: - - image: circleci/node:8.16-browsers - working_directory: ~/repo - -jobs: - setup: - <<: *defaults - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - run: npm install - - *save_git_cache - - *save_npm_cache - lint: - <<: *defaults - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - run: - name: Lint - command: npm run test:lint -- --quiet --output-file test-results/eslint/results.xml --format junit - - store_test_results: - path: test-results - unit: - <<: *defaults - environment: - JEST_JUNIT_OUTPUT_NAME: results.xml - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - run: - name: Unit - environment: - JEST_JUNIT_OUTPUT_DIR: test-results/unit - command: npm run test:unit -- --reporters="default" --reporters="jest-junit" --coverage --coverageReporters=text --coverageReporters=lcov - - store_artifacts: - path: coverage - - store_test_results: - path: test-results - build: - <<: *defaults - environment: - NODE_ENV: production - NODE_OPTIONS: --max-old-space-size=4000 - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - run: - name: Build - command: npm run build - - *save_build_cache - - *save_dist_cache - store_build: - <<: *defaults - steps: - - *restore_build_cache - - store_artifacts: - path: build - store_dist: - <<: *defaults - steps: - - *restore_dist_cache - - store_artifacts: - path: dist - integration: - <<: *defaults - parallelism: 2 - environment: - JEST_JUNIT_OUTPUT_NAME: results.txt - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - *restore_build_cache - - run: - name: Integration - environment: - JEST_JUNIT_OUTPUT_DIR: test-results/integration - command: | - export TESTFILES=$(circleci tests glob "test/integration/*.test.js" | circleci tests split --split-by=timings) - $(npm bin)/jest ${TESTFILES} --reporters="default" --reporters="jest-junit" - - store_test_results: - path: test-results - - deploy-npm: - <<: *defaults - environment: - NODE_OPTIONS: --max-old-space-size=4000 - steps: - - *restore_git_cache - - *restore_dist_cache - - checkout - - run: | - echo export RELEASE_VERSION="0.1.0-prerelease.$(date +'%Y%m%d%H%M%S')" >> $BASH_ENV - echo export NPM_TAG=circlelatest >> $BASH_ENV - if [ "$CIRCLE_BRANCH" == "master" ] - then echo export NPM_TAG=circlestable >> $BASH_ENV - fi - if [[ "$CIRCLE_BRANCH" == hotfix/* ]] # double brackets are important for matching the wildcard - then echo export NPM_TAG=circlehotfix >> $BASH_ENV - fi - - run: npm version --no-git-tag-version $RELEASE_VERSION - - run: | - npm set //registry.npmjs.org/:_authToken=$NPM_TOKEN - npm publish --tag $NPM_TAG - - run: git tag $RELEASE_VERSION - - run: git push $CIRCLE_REPOSITORY_URL $RELEASE_VERSION - - deploy-gh-pages: - <<: *defaults - steps: - - *restore_git_cache - - checkout - - *restore_npm_cache - - *restore_build_cache - - run: | - git config --global user.email $(git log --pretty=format:"%ae" -n1) - git config --global user.name $(git log --pretty=format:"%an" -n1) - - run: npm run deploy -- -e $CIRCLE_BRANCH - -workflows: - version: 2 - build-test-deploy: - jobs: - - setup - - lint: - requires: - - setup - - unit: - requires: - - setup - - build: - requires: - - setup - - integration: - requires: - - build - - store_build: - requires: - - build - - store_dist: - requires: - - build - # Disable deployment while running in parallel with Travis - # - deploy-npm: - # requires: - # - lint - # - unit - # - integration - # - build - # filters: - # branches: - # only: - # - master - # - develop - # - /^hotfix\/.*/ - # - deploy-gh-pages: - # requires: - # - lint - # - unit - # - integration - # - build diff --git a/.eslintignore b/.eslintignore index 93c033154fb..907731c48b0 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,5 @@ -node_modules/* -build/* -dist/* +/node_modules/ +/build/ +/dist/ +/test/ +/src/examples/ diff --git a/.eslintrc.js b/.eslintrc.js index 36ff570d9d3..3010f60d3f1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,3 +1,3 @@ module.exports = { - extends: ['scratch', 'scratch/node'] + extends: ['scratch', 'scratch/node', 'scratch/es6'] }; diff --git a/.gitattributes b/.gitattributes index e81c38bb515..811d7e4fa87 100644 --- a/.gitattributes +++ b/.gitattributes @@ -12,6 +12,7 @@ *.svg binary # Prefer LF for most file types +*.css text eol=lf *.frag text eol=lf *.htm text eol=lf *.html text eol=lf @@ -19,6 +20,7 @@ *.js text eol=lf *.js.map text eol=lf *.json text eol=lf +*.json5 text eol=lf *.jsx text eol=lf *.md text eol=lf *.vert text eol=lf diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index cd895990f25..effe4f660c4 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,11 +1,64 @@ ## Contributing The development of Scratch is an ongoing process, and we love to have people in the Scratch and open source communities help us along the way. -If you're interested in contributing, please take a look at the [issues](https://github.com/LLK/scratch-gui/issues) on this repository. -Two great ways of helping are by identifying bugs and documenting them as issues, or fixing issues and creating pull requests. When looking for bugs to fix, please look for the ["Help Wanted" label](https://github.com/LLK/scratch-gui/issues?q=label%3A%22help+wanted%22). Bugs with this label have been specifically set aside for Open Source contributors. Issues without the label can also be worked on but we ask that you comment on the issue prior to starting work. When submitting pull requests please be patient -- it can take a while to find time to review them. The organization and class structures can't be radically changed without significant coordination and collaboration from the Scratch Team, so these types of changes should be avoided. +### Ways to Help -It's been said that the Scratch Team spends about one hour of design discussion for every pixel in Scratch, but some think that estimate is a little low. While we welcome suggestions for new features in our [suggestions forum](https://scratch.mit.edu/discuss/1/) (especially ones that come with mockups), we are unlikely to accept PRs with new features that haven't been thought through and discussed as a group. Why? Because we have a strong belief in the value of keeping things simple for new users. To learn more about our design philosophy, see [the Scratch Developers page](https://scratch.mit.edu/developers), or [this paper](http://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf). +* **Documenting bugs** + * If you've identified a bug in Scratch you should first check to see if it's been filed as an issue, if not you can file one. Make sure you follow the issue template. + * It's important that we can consistently reproduce issues. When writing an issue, be sure to follow our [reproduction step guidelines](https://github.com/LLK/scratch-gui/wiki/Writing-good-repro-steps). + * Some issues are marked "Needs Repro". Adding a comment with good reproduction steps to those issues is a great way to help. + * If you don't have an issue in mind already, you can look through the [Bugs & Glitches forum.](https://scratch.mit.edu/discuss/3/) Look for users reporting problems, reproduce the problem yourself, and file new issues following our guidelines. +* **Fixing bugs** + * You can request to fix a bug in a comment on the issue if you at mention the repo coordinator, who for this repo is @chrisgarrity. + * If the issue is marked "Help Wanted" you can go ahead and start working on it! + * **We will only accept Pull Requests for bugs that have an issue filed that has a priority label** + * If you're interested in fixing a bug with no issue, file the issue first and wait for it to have a priority added to it. + + * We are not looking for Pull Requests ("PR") for every issue and may deny a PR if it doesn't fit our criteria. + * We are far more likely to accept a PR if it is for an issue marked with Help Wanted. + * We will not accept PRs for issues marked with "Needs Discussion" or "Needs Design." + * Wait until the Repo Coordinator assigns the issue to you before you begin work or submit a PR. + +### Learning Git and Github + +If you want to work on fixing issues, you should be familiar with Git and Github. + +* [Learn Git branching](https://learngitbranching.js.org/) includes an introduction to basic git commands and useful branching features. +* Here's a general introduction to [contributing to an open source project](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github). + +**Important:** we follow the [Github Flow process](https://guides.github.com/introduction/flow/) as our development process. + +### How to Fix Bugs +1. Identify which Github issue you are working on. Leave a comment on the issue to let us (and other contributors) know you're working on it. +2. Make sure you have a fork of this repo (see [Github's forking a repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) for details) +3. Switch to the `develop` branch, and pull down the latest changes from upstream +4. Run the code, and reproduce the problem +5. Create your branch from the `develop` branch +6. Make code changes to fix the problem +7. Run `npm test` to make sure that your changes pass our tests +8. Commit your changes +9. Push your branch to your fork +10. Create your pull request + 1. Make sure to follow the template in the PR description + 1. Remember to check the “[Allow edits from maintainers](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork)” box + +When submitting pull requests keep in mind: +* please be patient -- it can take a while to find time to review them +* try to change the least amount of code necessary to fix the bug +* the code can't be radically changed without significant coordination with the Scratch Team, so these types of changes should be avoided +* if you find yourself changing a substantial amount of code or considering radical changes, please ask for clarification -- we may have envisioned a different approach, or underestimated the amount of effort + +### Suggestions +![Block sketch](https://user-images.githubusercontent.com/3431616/77192550-1dcebe00-6ab3-11ea-9606-8ecd8500c958.png) + +Please note: **_we are unlikely to accept PRs with new features that haven't been thought through and discussed as a group_**. + +Why? Because we have a strong belief in the value of keeping things simple for new users. It's been said that the Scratch Team spends about one hour of design discussion for every pixel in Scratch. To learn more about our design philosophy, see [the Scratch Developers page](https://scratch.mit.edu/developers), or [this paper](http://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf). + +We welcome suggestions! If you want to suggest a feature, please post in our [suggestions forum](https://scratch.mit.edu/discuss/1/). Your suggestion will be helped if you include a mockup design; this can be simple, even hand-drawn. + +### Other resources Beyond this repo, there are also some other resources that you might want to take a look at: * [Community Guidelines](https://github.com/LLK/scratch-www/wiki/Community-Guidelines) (we find it important to maintain a constructive and welcoming community, just like on Scratch) * [Open Source forum](https://scratch.mit.edu/discuss/49/) on Scratch diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml new file mode 100644 index 00000000000..1fbc029dec7 --- /dev/null +++ b/.github/workflows/ci-cd.yml @@ -0,0 +1,93 @@ +name: CI/CD + +on: + pull_request: # Runs whenever a pull request is created or updated (including from another fork) + push: # Runs whenever a commit is pushed to the repository... + branches: [master, develop, hotfix/*] # ...on any of these branches + workflow_dispatch: # Allows you to run this workflow manually from the Actions tab +concurrency: + group: "${{ github.workflow }} @ ${{ github.head_ref || github.ref }}" + cancel-in-progress: true + +permissions: + contents: write # publish a GitHub release + pages: write # deploy to GitHub Pages + issues: write # comment on released issues + pull-requests: write # comment on released pull requests + +jobs: + ci-cd: + runs-on: ubuntu-latest + env: + DETECT_CHROMEDRIVER_VERSION: "true" + JEST_JUNIT_OUTPUT_DIR: test-results + NODE_OPTIONS: --max-old-space-size=4000 + steps: + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/setup-node@26961cf329f22f6837d5f54c3efd76b480300ace # v4 + with: + cache: "npm" + node-version-file: ".nvmrc" + - name: Info + run: | + cat < - if [ -z "$BEFORE_DEPLOY_RAN" ]; then - npm --no-git-tag-version version $RELEASE_VERSION - if [ "$TRAVIS_BRANCH" == "master" ]; then export NPM_TAG=stable; fi - if [[ "$TRAVIS_BRANCH" == hotfix/* ]]; then export NPM_TAG=hotfix; fi # double brackets are important for matching the wildcard - git config --global user.email $(git log --pretty=format:"%ae" -n1) - git config --global user.name $(git log --pretty=format:"%an" -n1) - export BEFORE_DEPLOY_RAN=true - fi -deploy: -- provider: npm - on: - branch: - - master - - develop - - hotfix/* - condition: $TRAVIS_EVENT_TYPE != cron - skip_cleanup: true - email: $NPM_EMAIL - api_key: $NPM_TOKEN - tag: $NPM_TAG -- provider: script - on: - branch: - - master - - develop - - smoke - - hotfix/* - condition: $TRAVIS_EVENT_TYPE != cron - skip_cleanup: true - script: if npm info scratch-gui | grep -q $RELEASE_VERSION; then git tag $RELEASE_VERSION && git push https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git $RELEASE_VERSION; fi -- provider: script - on: - all_branches: true - condition: $TRAVIS_EVENT_TYPE != cron && ! $TRAVIS_BRANCH =~ ^greenkeeper/ - tags: false # Don't push tags to gh-pages - skip_cleanup: true - script: npm run deploy -- -x -e $TRAVIS_BRANCH -r https://${GH_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git -- provider: script - on: - branch: develop - condition: $TRAVIS_EVENT_TYPE == cron - skip_cleanup: true - script: npm run i18n:src && npm run i18n:push diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000000..15aa50d3e19 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6796 @@ +# Changelog + +All notable changes to this project will be documented in this file. See +[Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [5.2.15](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.14...v5.2.15) (2025-11-15) + + +### Bug Fixes + +* **deps:** lock file maintenance ([175e2ad](https://github.com/scratchfoundation/scratch-gui/commit/175e2adfe11672e543cca18c862cd78eedbd8e63)) + +## [5.2.14](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.13...v5.2.14) (2025-11-10) + + +### Bug Fixes + +* **deps:** lock file maintenance ([8afff5c](https://github.com/scratchfoundation/scratch-gui/commit/8afff5cb793ec2a2ccc57b26b57354c5f73dca92)) + +## [5.2.13](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.12...v5.2.13) (2025-11-07) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c7a7dad](https://github.com/scratchfoundation/scratch-gui/commit/c7a7dadee6f5927ee1db12143ad5f11e6cc34522)) + +## [5.2.12](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.11...v5.2.12) (2025-11-03) + + +### Bug Fixes + +* **deps:** lock file maintenance ([79d2d2b](https://github.com/scratchfoundation/scratch-gui/commit/79d2d2b67d5a4c659c1e4bbf975eca64f1fdfd99)) + +## [5.2.11](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.10...v5.2.11) (2025-11-02) + + +### Bug Fixes + +* **deps:** lock file maintenance ([9550c3f](https://github.com/scratchfoundation/scratch-gui/commit/9550c3f8569e6557c6472d21f45b00bef57d2b3d)) + +## [5.2.10](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.9...v5.2.10) (2025-10-31) + + +### Bug Fixes + +* **deps:** lock file maintenance ([1338fe2](https://github.com/scratchfoundation/scratch-gui/commit/1338fe287f568261840fef612c79794ae6a95500)) + +## [5.2.9](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.8...v5.2.9) (2025-10-29) + + +### Bug Fixes + +* **deps:** lock file maintenance ([00064cb](https://github.com/scratchfoundation/scratch-gui/commit/00064cbb30d799aa25c4d04982f7df088215a6cd)) + +## [5.2.8](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.7...v5.2.8) (2025-10-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c792d4f](https://github.com/scratchfoundation/scratch-gui/commit/c792d4f9e4bc528ee9ab85c7e6a1dbb4ef4f5d51)) + +## [5.2.7](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.6...v5.2.7) (2025-10-23) + + +### Bug Fixes + +* **deps:** lock file maintenance ([ee73c7a](https://github.com/scratchfoundation/scratch-gui/commit/ee73c7a862d203cdade04fa19f7e24990b29e342)) +* **deps:** lock file maintenance ([05eb360](https://github.com/scratchfoundation/scratch-gui/commit/05eb360ace158a93d1a5234b406b4513c5584cc3)) + +## [5.2.6](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.5...v5.2.6) (2025-10-16) + + +### Bug Fixes + +* **deps:** lock file maintenance ([46cc11b](https://github.com/scratchfoundation/scratch-gui/commit/46cc11b259b48657edb4a3aa976a78a680c77fba)) + +## [5.2.5](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.4...v5.2.5) (2025-10-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([8ca498a](https://github.com/scratchfoundation/scratch-gui/commit/8ca498abf4802e92c74d4166c85d70cde83fcb62)) + +## [5.2.4](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.3...v5.2.4) (2025-10-10) + + +### Bug Fixes + +* **deps:** lock file maintenance ([66482e4](https://github.com/scratchfoundation/scratch-gui/commit/66482e4c8a668256893e02b5ab8426c59570a486)) + +## [5.2.3](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.2...v5.2.3) (2025-10-08) + + +### Bug Fixes + +* **deps:** lock file maintenance ([81f80e0](https://github.com/scratchfoundation/scratch-gui/commit/81f80e045eeff3b7629be6bddee7556bb0c970ce)) + +## [5.2.2](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.1...v5.2.2) (2025-10-05) + + +### Bug Fixes + +* **deps:** lock file maintenance ([703caeb](https://github.com/scratchfoundation/scratch-gui/commit/703caeb14648768e7ee91b03d0423ab520b710f9)) + +## [5.2.1](https://github.com/scratchfoundation/scratch-gui/compare/v5.2.0...v5.2.1) (2025-10-02) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b29dc6b](https://github.com/scratchfoundation/scratch-gui/commit/b29dc6bbf207c74393edeada9c6202856aa13bb8)) + +# [5.2.0](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.112...v5.2.0) (2025-10-02) + + +### Features + +* **deps:** update dependency scratch-webpack-configuration to v3.1.0 ([6bbc02b](https://github.com/scratchfoundation/scratch-gui/commit/6bbc02ba4f73f544ba9bfea889afb2e382577eac)) + +## [5.1.112](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.111...v5.1.112) (2025-09-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([89d478f](https://github.com/scratchfoundation/scratch-gui/commit/89d478f51511c6004ea6886a650f32eec4c9c31f)) + +## [5.1.111](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.110...v5.1.111) (2025-09-23) + + +### Bug Fixes + +* **deps:** lock file maintenance ([f7c01f2](https://github.com/scratchfoundation/scratch-gui/commit/f7c01f251f60d8c47a022f260f4bfe896fa1ef41)) + +## [5.1.110](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.109...v5.1.110) (2025-09-20) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c9214f2](https://github.com/scratchfoundation/scratch-gui/commit/c9214f25becae8238366e12ba2222c24c5afc160)) + +## [5.1.109](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.108...v5.1.109) (2025-09-18) + + +### Bug Fixes + +* **deps:** lock file maintenance ([bb3f271](https://github.com/scratchfoundation/scratch-gui/commit/bb3f271fcd5ca9db7075e3e8b01f5e5f67129706)) + +## [5.1.108](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.107...v5.1.108) (2025-09-15) + + +### Bug Fixes + +* **deps:** lock file maintenance ([79849fe](https://github.com/scratchfoundation/scratch-gui/commit/79849fe596a8e1d1f35aedf24a2ac9ad09a57b90)) + +## [5.1.107](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.106...v5.1.107) (2025-09-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([0c76c60](https://github.com/scratchfoundation/scratch-gui/commit/0c76c60e9338f52afe7a06d821bea0e48e030cfc)) + +## [5.1.106](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.105...v5.1.106) (2025-09-06) + + +### Bug Fixes + +* **deps:** lock file maintenance ([eaa3199](https://github.com/scratchfoundation/scratch-gui/commit/eaa3199a31c9451fe5f2341d4abf68856c34f465)) + +## [5.1.105](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.104...v5.1.105) (2025-09-03) + + +### Bug Fixes + +* **deps:** lock file maintenance ([ec3dcb0](https://github.com/scratchfoundation/scratch-gui/commit/ec3dcb03a1f17dfefa29f8d5b6d6d4fe4042d0e4)) + +## [5.1.104](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.103...v5.1.104) (2025-08-28) + + +### Bug Fixes + +* **deps:** lock file maintenance ([642f2ab](https://github.com/scratchfoundation/scratch-gui/commit/642f2ab545d20ce866ecedc9b90a0ebbd05c7062)) + +## [5.1.103](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.102...v5.1.103) (2025-08-24) + + +### Bug Fixes + +* **deps:** lock file maintenance ([49d5b5a](https://github.com/scratchfoundation/scratch-gui/commit/49d5b5a021a3135efca7aa93ca83e8b19bc677d8)) + +## [5.1.102](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.101...v5.1.102) (2025-08-19) + + +### Bug Fixes + +* **deps:** lock file maintenance ([1cdcac5](https://github.com/scratchfoundation/scratch-gui/commit/1cdcac5b8a8db72cb98a4ff404f906d27e5f3f64)) + +## [5.1.101](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.100...v5.1.101) (2025-08-14) + + +### Bug Fixes + +* **deps:** lock file maintenance ([bd34af2](https://github.com/scratchfoundation/scratch-gui/commit/bd34af224197f2d6717a92279c3bcb98ee954a3f)) + +## [5.1.100](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.99...v5.1.100) (2025-08-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([19782be](https://github.com/scratchfoundation/scratch-gui/commit/19782be878818cd8c7aa1beeef6f5162b1d8ddd4)) + +## [5.1.99](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.98...v5.1.99) (2025-08-10) + + +### Bug Fixes + +* **deps:** lock file maintenance ([85919e0](https://github.com/scratchfoundation/scratch-gui/commit/85919e0bd6d08163edcaccd0fa440e138dac4e58)) + +## [5.1.98](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.97...v5.1.98) (2025-08-08) + + +### Bug Fixes + +* **deps:** lock file maintenance ([07597c7](https://github.com/scratchfoundation/scratch-gui/commit/07597c75b395500333d6d1ffb63240f9dadd4529)) + +## [5.1.97](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.96...v5.1.97) (2025-08-06) + + +### Bug Fixes + +* **deps:** lock file maintenance ([ab4c949](https://github.com/scratchfoundation/scratch-gui/commit/ab4c949c8232cef0d4c66c4082f5cc68ceb66e01)) + +## [5.1.96](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.95...v5.1.96) (2025-08-03) + + +### Bug Fixes + +* **deps:** lock file maintenance ([7ffa702](https://github.com/scratchfoundation/scratch-gui/commit/7ffa702ac3f012e8fa98db430eddccde2a7e2adc)) + +## [5.1.95](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.94...v5.1.95) (2025-07-30) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c1349f0](https://github.com/scratchfoundation/scratch-gui/commit/c1349f083f8eb082698decedd4e8f661e134d432)) + +## [5.1.94](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.93...v5.1.94) (2025-07-27) + + +### Bug Fixes + +* **deps:** lock file maintenance ([23f9245](https://github.com/scratchfoundation/scratch-gui/commit/23f92451160cdcdb8396a7e5834a073acd3e46de)) + +## [5.1.93](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.92...v5.1.93) (2025-07-25) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b655d33](https://github.com/scratchfoundation/scratch-gui/commit/b655d33b6acf1da21af05542d57eebb96b437c8d)) + +## [5.1.92](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.91...v5.1.92) (2025-07-23) + + +### Bug Fixes + +* **deps:** lock file maintenance ([59e270c](https://github.com/scratchfoundation/scratch-gui/commit/59e270ca8e566769daca833e234722eab40314ad)) + +## [5.1.91](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.90...v5.1.91) (2025-07-20) + + +### Bug Fixes + +* **deps:** lock file maintenance ([ea5c7e5](https://github.com/scratchfoundation/scratch-gui/commit/ea5c7e51849ae46d4f0ce5beae143b0241b1fc5d)) + +## [5.1.90](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.89...v5.1.90) (2025-07-17) + + +### Bug Fixes + +* **deps:** lock file maintenance ([3268738](https://github.com/scratchfoundation/scratch-gui/commit/3268738c8d3a2ed2ea6536173c52e6a1f0eb31b1)) + +## [5.1.89](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.88...v5.1.89) (2025-07-15) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b54f914](https://github.com/scratchfoundation/scratch-gui/commit/b54f9145e6e2f49f9acf5984579870de0ba7b494)) + +## [5.1.88](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.87...v5.1.88) (2025-07-11) + + +### Bug Fixes + +* **deps:** lock file maintenance ([d01f3c7](https://github.com/scratchfoundation/scratch-gui/commit/d01f3c709421c2d9c3f761b65244752674c3aba9)) + +## [5.1.87](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.86...v5.1.87) (2025-07-08) + + +### Bug Fixes + +* **deps:** lock file maintenance ([1684657](https://github.com/scratchfoundation/scratch-gui/commit/1684657bba242ecc872b6a5b708839c0ba912171)) + +## [5.1.86](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.85...v5.1.86) (2025-07-05) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b2d6639](https://github.com/scratchfoundation/scratch-gui/commit/b2d6639bd5a43243dd30fb440e2533d571be0911)) + +## [5.1.85](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.84...v5.1.85) (2025-07-02) + + +### Bug Fixes + +* **deps:** lock file maintenance ([77608cd](https://github.com/scratchfoundation/scratch-gui/commit/77608cd79be8478c313ab8e0d6f5ee45545dabc7)) + +## [5.1.84](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.83...v5.1.84) (2025-06-28) + + +### Bug Fixes + +* **deps:** lock file maintenance ([08e7ef7](https://github.com/scratchfoundation/scratch-gui/commit/08e7ef7a87a96b83cd606f89db6576d851c324f5)) + +## [5.1.83](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.82...v5.1.83) (2025-06-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([03a3c16](https://github.com/scratchfoundation/scratch-gui/commit/03a3c16945ae85ed5157669c3495686a4b463426)) + +## [5.1.82](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.81...v5.1.82) (2025-06-24) + + +### Bug Fixes + +* **deps:** lock file maintenance ([eefa2ee](https://github.com/scratchfoundation/scratch-gui/commit/eefa2ee8bfd6eda78accde243463430bd0099bc5)) + +## [5.1.81](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.80...v5.1.81) (2025-06-19) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c115874](https://github.com/scratchfoundation/scratch-gui/commit/c115874bf1c4c4db189703b4ffccac4381e917ff)) + +## [5.1.80](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.79...v5.1.80) (2025-06-17) + + +### Bug Fixes + +* **deps:** lock file maintenance ([8b02491](https://github.com/scratchfoundation/scratch-gui/commit/8b02491f89d9b1ece24f2f47280f5cf0ab5c7e57)) + +## [5.1.79](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.78...v5.1.79) (2025-06-14) + + +### Bug Fixes + +* **deps:** lock file maintenance ([7864940](https://github.com/scratchfoundation/scratch-gui/commit/7864940db266ebda6d65ab02b53f66c4ff5e0632)) + +## [5.1.78](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.77...v5.1.78) (2025-06-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([9d2bc41](https://github.com/scratchfoundation/scratch-gui/commit/9d2bc417970fc901e485666a68b7bfbcdde51c16)) + +## [5.1.77](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.76...v5.1.77) (2025-06-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([cc1ca08](https://github.com/scratchfoundation/scratch-gui/commit/cc1ca08ec6a4de8f1e057eaf1b6e50b651412230)) + +## [5.1.76](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.75...v5.1.76) (2025-06-07) + + +### Bug Fixes + +* **deps:** lock file maintenance ([dfa39cc](https://github.com/scratchfoundation/scratch-gui/commit/dfa39cc9f2d30afb666646273349fa02a4d8cd14)) + +## [5.1.75](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.74...v5.1.75) (2025-06-01) + + +### Bug Fixes + +* **deps:** lock file maintenance ([0953301](https://github.com/scratchfoundation/scratch-gui/commit/095330190fcf422ef2a5f702ab9c507f43600e05)) + +## [5.1.74](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.73...v5.1.74) (2025-05-29) + + +### Bug Fixes + +* **deps:** lock file maintenance ([f762d3e](https://github.com/scratchfoundation/scratch-gui/commit/f762d3e4135229af818ee2d1e9bb8788940752c3)) + +## [5.1.73](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.72...v5.1.73) (2025-05-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b24d592](https://github.com/scratchfoundation/scratch-gui/commit/b24d592dcbce171a48adb1a5af851e319e68646e)) + +## [5.1.72](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.71...v5.1.72) (2025-05-23) + + +### Bug Fixes + +* **deps:** lock file maintenance ([fe25cf0](https://github.com/scratchfoundation/scratch-gui/commit/fe25cf093d857b505a4c168e0ea3dc46aa41b1a0)) + +## [5.1.71](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.70...v5.1.71) (2025-05-20) + + +### Bug Fixes + +* **deps:** lock file maintenance ([0af6509](https://github.com/scratchfoundation/scratch-gui/commit/0af6509b68d2fa97d57f6d545b59791222a7df94)) + +## [5.1.70](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.69...v5.1.70) (2025-05-17) + + +### Bug Fixes + +* **deps:** lock file maintenance ([834c955](https://github.com/scratchfoundation/scratch-gui/commit/834c955ddc1a0d316dfa3777ffe3388fbe957ad0)) + +## [5.1.69](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.68...v5.1.69) (2025-05-15) + + +### Bug Fixes + +* **deps:** lock file maintenance ([7bd7604](https://github.com/scratchfoundation/scratch-gui/commit/7bd76046ab517430ab67a63ef2da605a0d79697f)) + +## [5.1.68](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.67...v5.1.68) (2025-05-13) + + +### Bug Fixes + +* **deps:** lock file maintenance ([9646b84](https://github.com/scratchfoundation/scratch-gui/commit/9646b84e7c1bd7f72ea4ec29255dbee75e43609e)) + +## [5.1.67](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.66...v5.1.67) (2025-05-10) + + +### Bug Fixes + +* **deps:** lock file maintenance ([ce1374d](https://github.com/scratchfoundation/scratch-gui/commit/ce1374d68dad143ca8e967b14c9abadd88f33873)) + +## [5.1.66](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.65...v5.1.66) (2025-05-08) + + +### Bug Fixes + +* **deps:** lock file maintenance ([2a8dab6](https://github.com/scratchfoundation/scratch-gui/commit/2a8dab65d809e7e80969412dd62d947288d54dde)) + +## [5.1.65](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.64...v5.1.65) (2025-05-06) + + +### Bug Fixes + +* **deps:** lock file maintenance ([a331ead](https://github.com/scratchfoundation/scratch-gui/commit/a331eadb9b579a99b1ca0d2b88790dfaa29d9cd6)) + +## [5.1.64](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.63...v5.1.64) (2025-05-02) + + +### Bug Fixes + +* **deps:** lock file maintenance ([6d8a681](https://github.com/scratchfoundation/scratch-gui/commit/6d8a681a05e2dcbee52d3f2239c31c8ceb5c3d1e)) + +## [5.1.63](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.62...v5.1.63) (2025-04-29) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b12d4d0](https://github.com/scratchfoundation/scratch-gui/commit/b12d4d0dac60471583e697e61df37bd0a28ba35c)) + +## [5.1.62](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.61...v5.1.62) (2025-04-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([17db4e5](https://github.com/scratchfoundation/scratch-gui/commit/17db4e53a9d8b124ba4a23815641f9d32ce1aa2b)) + +## [5.1.61](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.60...v5.1.61) (2025-04-24) + + +### Bug Fixes + +* **deps:** lock file maintenance ([d71e4b2](https://github.com/scratchfoundation/scratch-gui/commit/d71e4b2a715943788fa59d46995451b1a3935100)) + +## [5.1.60](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.59...v5.1.60) (2025-04-22) + + +### Bug Fixes + +* **deps:** lock file maintenance ([65e83e5](https://github.com/scratchfoundation/scratch-gui/commit/65e83e5eb66a310a8e90c17eab8f40e473ef30f3)) + +## [5.1.59](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.58...v5.1.59) (2025-04-20) + + +### Bug Fixes + +* **deps:** lock file maintenance ([422aa95](https://github.com/scratchfoundation/scratch-gui/commit/422aa9540dedd2959692a6ba8af141853c67792f)) + +## [5.1.58](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.57...v5.1.58) (2025-04-18) + + +### Bug Fixes + +* **deps:** lock file maintenance ([242ea34](https://github.com/scratchfoundation/scratch-gui/commit/242ea34547e3768f787b220dd34f12cd21241c64)) + +## [5.1.57](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.56...v5.1.57) (2025-04-15) + + +### Bug Fixes + +* **deps:** lock file maintenance ([80a6744](https://github.com/scratchfoundation/scratch-gui/commit/80a67442979def00b6c1f326c852fbe47df0ae91)) + +## [5.1.56](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.55...v5.1.56) (2025-04-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([f17cca0](https://github.com/scratchfoundation/scratch-gui/commit/f17cca0b7022cb2a78a25e4d313d74397ce5a33c)) + +## [5.1.55](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.54...v5.1.55) (2025-04-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b5ed9a1](https://github.com/scratchfoundation/scratch-gui/commit/b5ed9a13648d195fe2248251d4e0a5a4aaa9e92a)) + +## [5.1.54](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.53...v5.1.54) (2025-04-06) + + +### Bug Fixes + +* **deps:** lock file maintenance ([d7818f3](https://github.com/scratchfoundation/scratch-gui/commit/d7818f3f47c53a3e33656211e77bea90cf8fd939)) + +## [5.1.53](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.52...v5.1.53) (2025-04-03) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c1ac99e](https://github.com/scratchfoundation/scratch-gui/commit/c1ac99e854b62b233ecd83e6c9836e6b4832d8ed)) + +## [5.1.52](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.51...v5.1.52) (2025-03-29) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b120dc9](https://github.com/scratchfoundation/scratch-gui/commit/b120dc9a1896b8cd6a339a0c113712b4e2a46abd)) + +## [5.1.51](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.50...v5.1.51) (2025-03-27) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b609a42](https://github.com/scratchfoundation/scratch-gui/commit/b609a42bdf2042906859d66dfc4cb4ab9a3d98b0)) + +## [5.1.50](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.49...v5.1.50) (2025-03-24) + + +### Bug Fixes + +* **deps:** lock file maintenance ([42d3c55](https://github.com/scratchfoundation/scratch-gui/commit/42d3c5531c94afe973aa7b6da718baf88ce2dcdb)) + +## [5.1.49](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.48...v5.1.49) (2025-03-22) + + +### Bug Fixes + +* **deps:** lock file maintenance ([1390fb6](https://github.com/scratchfoundation/scratch-gui/commit/1390fb6c15dd7d64a5abf8c37d35f065256e2511)) + +## [5.1.48](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.47...v5.1.48) (2025-03-20) + + +### Bug Fixes + +* **deps:** lock file maintenance ([991e20e](https://github.com/scratchfoundation/scratch-gui/commit/991e20e98260e7bca15bfd78e395df4a67731674)) + +## [5.1.47](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.46...v5.1.47) (2025-03-17) + + +### Bug Fixes + +* **deps:** lock file maintenance ([a788a3b](https://github.com/scratchfoundation/scratch-gui/commit/a788a3b6f66b29723de3a15ff2ee3bae6b9fbce7)) + +## [5.1.46](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.45...v5.1.46) (2025-03-15) + + +### Bug Fixes + +* **deps:** lock file maintenance ([33f2504](https://github.com/scratchfoundation/scratch-gui/commit/33f2504e43d55bc4064815b8dac20802c591172b)) + +## [5.1.45](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.44...v5.1.45) (2025-03-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([20c3e0f](https://github.com/scratchfoundation/scratch-gui/commit/20c3e0fc85597c5294c0afa2d2e6f080ca66f008)) + +## [5.1.44](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.43...v5.1.44) (2025-03-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([48e2e26](https://github.com/scratchfoundation/scratch-gui/commit/48e2e265c0d761751c1dc620627b04269583ec71)) +* **deps:** lock file maintenance ([fdbc578](https://github.com/scratchfoundation/scratch-gui/commit/fdbc57879f59e1df8995b12901d03762cb140688)) + +## [5.1.43](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.42...v5.1.43) (2025-03-05) + + +### Bug Fixes + +* **deps:** lock file maintenance ([356d9a5](https://github.com/scratchfoundation/scratch-gui/commit/356d9a5a79bfbe016c80bfc332d14b74d513d2b5)) + +## [5.1.42](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.41...v5.1.42) (2025-03-02) + + +### Bug Fixes + +* **deps:** lock file maintenance ([de356bd](https://github.com/scratchfoundation/scratch-gui/commit/de356bd19e31b294caea728f5eaaacd42b2ce958)) +* **deps:** lock file maintenance ([ade52f4](https://github.com/scratchfoundation/scratch-gui/commit/ade52f4e64ba4e76983963897f4b1b24fe32c34c)) + +## [5.1.41](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.40...v5.1.41) (2025-02-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([9ec4521](https://github.com/scratchfoundation/scratch-gui/commit/9ec452121c6254470dc2609131787dc5e97f2fcf)) + +## [5.1.40](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.39...v5.1.40) (2025-02-22) + + +### Bug Fixes + +* **deps:** lock file maintenance ([adf32b7](https://github.com/scratchfoundation/scratch-gui/commit/adf32b7a72e9a57b522640ef0ebf61dec3e8434c)) + +## [5.1.39](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.38...v5.1.39) (2025-02-18) + + +### Bug Fixes + +* **deps:** lock file maintenance ([931bad4](https://github.com/scratchfoundation/scratch-gui/commit/931bad49f1e375102e8d4ef9ede111943af631a3)) + +## [5.1.38](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.37...v5.1.38) (2025-02-15) + + +### Bug Fixes + +* **deps:** lock file maintenance ([eabfa84](https://github.com/scratchfoundation/scratch-gui/commit/eabfa84e35a44cf2794471573973848eca55b162)) + +## [5.1.37](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.36...v5.1.37) (2025-02-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([d678954](https://github.com/scratchfoundation/scratch-gui/commit/d6789549b6ccbd4437bc5b467762574e88c11717)) + +## [5.1.36](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.35...v5.1.36) (2025-02-07) + + +### Bug Fixes + +* **deps:** lock file maintenance ([9bc8005](https://github.com/scratchfoundation/scratch-gui/commit/9bc80055bce1ae4c076bf16df312cad9b1b6183e)) + +## [5.1.35](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.34...v5.1.35) (2025-02-03) + + +### Bug Fixes + +* **deps:** lock file maintenance ([10b2661](https://github.com/scratchfoundation/scratch-gui/commit/10b266115b75c93366db4fbd5e8a8626e4067c8a)) + +## [5.1.34](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.33...v5.1.34) (2025-01-29) + + +### Bug Fixes + +* **deps:** lock file maintenance ([a45121e](https://github.com/scratchfoundation/scratch-gui/commit/a45121e82db4c2ddd56751c3277d44bfe058cb85)) + +## [5.1.33](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.32...v5.1.33) (2025-01-27) + + +### Bug Fixes + +* **deps:** lock file maintenance ([61fcee5](https://github.com/scratchfoundation/scratch-gui/commit/61fcee5c8c665cc7277707f2d933b8cef7f288b1)) + +## [5.1.32](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.31...v5.1.32) (2025-01-23) + + +### Bug Fixes + +* **deps:** lock file maintenance ([0d8689e](https://github.com/scratchfoundation/scratch-gui/commit/0d8689e0c05bbf12e53130ac94201ac90a23375f)) + +## [5.1.31](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.30...v5.1.31) (2025-01-20) + + +### Bug Fixes + +* **deps:** lock file maintenance ([dfb09b8](https://github.com/scratchfoundation/scratch-gui/commit/dfb09b8d02a0bfa1f6dfef70cc13bfa8c57fbe27)) + +## [5.1.30](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.29...v5.1.30) (2025-01-17) + + +### Bug Fixes + +* **deps:** lock file maintenance ([d36d995](https://github.com/scratchfoundation/scratch-gui/commit/d36d99524bbf02d77cb0e02c79d0fab92f5f2e27)) + +## [5.1.29](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.28...v5.1.29) (2025-01-14) + + +### Bug Fixes + +* **deps:** lock file maintenance ([5dcc87c](https://github.com/scratchfoundation/scratch-gui/commit/5dcc87cde3c807e8e4549fbaa1fc3c77f1207d0f)) + +## [5.1.28](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.27...v5.1.28) (2025-01-11) + + +### Bug Fixes + +* **deps:** lock file maintenance ([fc58754](https://github.com/scratchfoundation/scratch-gui/commit/fc58754c8f59c6c1e308b06692db08afc4622492)) + +## [5.1.27](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.26...v5.1.27) (2025-01-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([fc16efd](https://github.com/scratchfoundation/scratch-gui/commit/fc16efd61e2d011285ea5db2356cefd8f8772495)) + +## [5.1.26](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.25...v5.1.26) (2025-01-05) + + +### Bug Fixes + +* **deps:** lock file maintenance ([41be2b8](https://github.com/scratchfoundation/scratch-gui/commit/41be2b81520f9aa4ad12c1ad807eaac52e440271)) + +## [5.1.25](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.24...v5.1.25) (2025-01-03) + + +### Bug Fixes + +* **deps:** lock file maintenance ([58f150c](https://github.com/scratchfoundation/scratch-gui/commit/58f150c12fd15d1089980f5d46ed380e09994b3f)) + +## [5.1.24](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.23...v5.1.24) (2025-01-02) + + +### Bug Fixes + +* adapt to new scratch-storage@>=3 API ([f46c620](https://github.com/scratchfoundation/scratch-gui/commit/f46c62007a3da152c9b30628ac7b702ae8a34e94)) +* **deps:** update dependency scratch-storage to v4 ([c2078af](https://github.com/scratchfoundation/scratch-gui/commit/c2078af4cca55f3affa59b0c22c01e23683ea3ea)) + +## [5.1.23](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.22...v5.1.23) (2025-01-01) + + +### Bug Fixes + +* **deps:** lock file maintenance ([f607e0b](https://github.com/scratchfoundation/scratch-gui/commit/f607e0b05059fecec40131c4c9317381afd634fc)) + +## [5.1.22](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.21...v5.1.22) (2024-12-30) + + +### Bug Fixes + +* **deps:** lock file maintenance ([b343257](https://github.com/scratchfoundation/scratch-gui/commit/b343257cf9bf3ebee70b9de902cd8cfc68deb963)) + +## [5.1.21](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.20...v5.1.21) (2024-12-28) + + +### Bug Fixes + +* **deps:** lock file maintenance ([17a9a4d](https://github.com/scratchfoundation/scratch-gui/commit/17a9a4da7f745d33e7572cb5eec4969e349d5e30)) + +## [5.1.20](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.19...v5.1.20) (2024-12-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([6f410d4](https://github.com/scratchfoundation/scratch-gui/commit/6f410d462a38da1f60f86fabd304eef88a99b308)) + +## [5.1.19](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.18...v5.1.19) (2024-12-24) + + +### Bug Fixes + +* **deps:** lock file maintenance ([7c945ee](https://github.com/scratchfoundation/scratch-gui/commit/7c945ee6249557cb8de3ffcfcde94a809b24f0a5)) + +## [5.1.18](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.17...v5.1.18) (2024-12-22) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c6ea971](https://github.com/scratchfoundation/scratch-gui/commit/c6ea97151470e4fdc9489e807d5dc459cbd43a54)) + +## [5.1.17](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.16...v5.1.17) (2024-12-20) + + +### Bug Fixes + +* **deps:** lock file maintenance ([19179b5](https://github.com/scratchfoundation/scratch-gui/commit/19179b57485bd4a43e2009acf19e0c96248e6fc6)) + +## [5.1.16](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.15...v5.1.16) (2024-12-18) + + +### Bug Fixes + +* **deps:** lock file maintenance ([2e77ff4](https://github.com/scratchfoundation/scratch-gui/commit/2e77ff419c3d197d3673a0f4a728e9df956a412b)) + +## [5.1.15](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.14...v5.1.15) (2024-12-16) + + +### Bug Fixes + +* return menu bar padding ([d4044c5](https://github.com/scratchfoundation/scratch-gui/commit/d4044c5803f58821faafc9b2f45b955dee53d111)) + +## [5.1.14](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.13...v5.1.14) (2024-12-16) + + +### Bug Fixes + +* **deps:** lock file maintenance ([abef4f2](https://github.com/scratchfoundation/scratch-gui/commit/abef4f2b07a6e3603f23eccee466aca304de189a)) + +## [5.1.13](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.12...v5.1.13) (2024-12-14) + + +### Bug Fixes + +* **deps:** lock file maintenance ([fabad7e](https://github.com/scratchfoundation/scratch-gui/commit/fabad7ef550fb1c3f1e47e9cceaa94447070febd)) + +## [5.1.12](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.11...v5.1.12) (2024-12-12) + + +### Bug Fixes + +* spacing on debug modal description ([6855d2b](https://github.com/scratchfoundation/scratch-gui/commit/6855d2bce3077969681f231dec4f9fdf853ebbaa)) +* update debug modal icons to newest version ([adc9842](https://github.com/scratchfoundation/scratch-gui/commit/adc98423af081ba7fede673e903d0b53e6878b2b)) + +## [5.1.11](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.10...v5.1.11) (2024-12-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([1041db3](https://github.com/scratchfoundation/scratch-gui/commit/1041db385b95a2349d85b529fbfc4de8cb66c306)) + +## [5.1.10](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.9...v5.1.10) (2024-12-11) + + +### Bug Fixes + +* trigger version update ([eb5f676](https://github.com/scratchfoundation/scratch-gui/commit/eb5f6766678af3ca2e19051da7e7625b13473dab)) + +## [5.1.9](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.8...v5.1.9) (2024-12-10) + + +### Bug Fixes + +* uepr-38: update debug modal image ([face25a](https://github.com/scratchfoundation/scratch-gui/commit/face25a17921400a4418ea6633b5fbd59df1405e)) + +## [5.1.8](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.7...v5.1.8) (2024-12-10) + + +### Bug Fixes + +* **deps:** lock file maintenance ([cece7dc](https://github.com/scratchfoundation/scratch-gui/commit/cece7dc1e70863f33617352d2dade3ae6ad6546b)) + +## [5.1.7](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.6...v5.1.7) (2024-12-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([32871b4](https://github.com/scratchfoundation/scratch-gui/commit/32871b4d3645887b5968d7d54585fb3cc60ae791)) + +## [5.1.6](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.5...v5.1.6) (2024-12-07) + + +### Bug Fixes + +* **deps:** lock file maintenance ([7835a01](https://github.com/scratchfoundation/scratch-gui/commit/7835a01a36abe5dd1c7555b00a4d2d5fffc67f03)) + +## [5.1.5](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.4...v5.1.5) (2024-12-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-svg-renderer to v3 ([a665bac](https://github.com/scratchfoundation/scratch-gui/commit/a665bacc04e67548505de557e607a7700ef4b30a)) + +## [5.1.4](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.3...v5.1.4) (2024-12-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v3 ([fc15866](https://github.com/scratchfoundation/scratch-gui/commit/fc15866fe112655f0403429e8ef8de6e3ac0cd78)) +* **deps:** update dependency scratch-vm to v5 ([66bcdef](https://github.com/scratchfoundation/scratch-gui/commit/66bcdefd2072a0ebc89994e413a62ae81e1358eb)) + +## [5.1.3](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.2...v5.1.3) (2024-12-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v2 ([6c8bd09](https://github.com/scratchfoundation/scratch-gui/commit/6c8bd09000d5efcca43b491664d80cb91a1308fe)) + +## [5.1.2](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.1...v5.1.2) (2024-12-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-audio to v2 ([1099233](https://github.com/scratchfoundation/scratch-gui/commit/1099233320bea21fc2e4f22c0f47c0808743d5d6)) +* **deps:** update dependency scratch-l10n to v5 ([9a9e814](https://github.com/scratchfoundation/scratch-gui/commit/9a9e8148b6f74468d19cb0ca1ef7bbe8acd26e34)) + +## [5.1.1](https://github.com/scratchfoundation/scratch-gui/compare/v5.1.0...v5.1.1) (2024-12-05) + + +### Bug Fixes + +* set publicPath to 'auto' ([853caca](https://github.com/scratchfoundation/scratch-gui/commit/853caca41ac07b76298b8d371f7066311d95588e)) +* use react from external source when building dist ([ab1f65d](https://github.com/scratchfoundation/scratch-gui/commit/ab1f65d8c414873ca32b0961bc7846fd6f1f9c5f)) + +# [5.1.0](https://github.com/scratchfoundation/scratch-gui/compare/v5.0.5...v5.1.0) (2024-12-04) + + +### Bug Fixes + +* uepr-38: debug modal description and image preload ([703907f](https://github.com/scratchfoundation/scratch-gui/commit/703907f92cb5b1076b8f4bc445369c2dd7843dd8)) +* uepr-38: fix imports ([f561493](https://github.com/scratchfoundation/scratch-gui/commit/f56149337c2ebe2525199ddd1d390fdf73f145c6)) +* uepr-38: style fixes ([6e4c051](https://github.com/scratchfoundation/scratch-gui/commit/6e4c0514e1591698dfd050156b953adb9a914140)) +* uepr-38: style updates ([3c7f153](https://github.com/scratchfoundation/scratch-gui/commit/3c7f15354a93f9da2369e5cc927ca8ecc26e9426)) + + +### Features + +* uepr-38: debug modal changes ([f2adf68](https://github.com/scratchfoundation/scratch-gui/commit/f2adf68789d35b29c44acf971d1b4c9f294dfb9b)) + +## [5.0.5](https://github.com/scratchfoundation/scratch-gui/compare/v5.0.4...v5.0.5) (2024-12-04) + + +### Bug Fixes + +* **deps:** lock file maintenance ([ee72988](https://github.com/scratchfoundation/scratch-gui/commit/ee729886c8a0aab374ed694dd7c1ddbffedb9cb4)) + +## [5.0.4](https://github.com/scratchfoundation/scratch-gui/compare/v5.0.3...v5.0.4) (2024-12-03) + + +### Bug Fixes + +* **deps:** lock file maintenance ([fd0557f](https://github.com/scratchfoundation/scratch-gui/commit/fd0557fb938ddac591daa6ec9243d166fd8bac5e)) + +## [5.0.3](https://github.com/scratchfoundation/scratch-gui/compare/v5.0.2...v5.0.3) (2024-11-30) + + +### Bug Fixes + +* **deps:** lock file maintenance ([ebb05da](https://github.com/scratchfoundation/scratch-gui/commit/ebb05da244a77f739e83864af39bcd841b2fc4da)) + +## [5.0.2](https://github.com/scratchfoundation/scratch-gui/compare/v5.0.1...v5.0.2) (2024-11-28) + + +### Bug Fixes + +* **deps:** lock file maintenance ([49657ea](https://github.com/scratchfoundation/scratch-gui/commit/49657ea675661f70847e25fd0fef92671681167c)) + +## [5.0.1](https://github.com/scratchfoundation/scratch-gui/compare/v5.0.0...v5.0.1) (2024-11-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([9d8e74d](https://github.com/scratchfoundation/scratch-gui/commit/9d8e74d615f3b44fdb3c5d0ce5e57d796224e949)) + +# [5.0.0](https://github.com/scratchfoundation/scratch-gui/compare/v4.1.7...v5.0.0) (2024-11-25) + + +* chore!: set license to AGPL-3.0-only ([3de24da](https://github.com/scratchfoundation/scratch-gui/commit/3de24da0f9e46307903a74695a6183d4a6035d9c)) + + +### BREAKING CHANGES + +* This project is now licensed under the AGPL version 3.0 + +See https://www.scratchfoundation.org/open-source-license + +## [4.1.7](https://github.com/scratchfoundation/scratch-gui/compare/v4.1.6...v4.1.7) (2024-11-23) + + +### Bug Fixes + +* **deps:** lock file maintenance ([88192de](https://github.com/scratchfoundation/scratch-gui/commit/88192dedb27a516130e63f67d23f70f4177d972c)) + +## [4.1.6](https://github.com/scratchfoundation/scratch-gui/compare/v4.1.5...v4.1.6) (2024-11-21) + + +### Bug Fixes + +* **deps:** lock file maintenance ([a5b6abf](https://github.com/scratchfoundation/scratch-gui/commit/a5b6abf9fd6a98c7fbeb9e5e72d8d8a65ef22b4f)) + +## [4.1.5](https://github.com/scratchfoundation/scratch-gui/compare/v4.1.4...v4.1.5) (2024-11-19) + + +### Bug Fixes + +* **deps:** lock file maintenance ([e7f17f9](https://github.com/scratchfoundation/scratch-gui/commit/e7f17f9fba7c047e2c4185b5f4c6b579cd7a2415)) + +## [4.1.4](https://github.com/scratchfoundation/scratch-gui/compare/v4.1.3...v4.1.4) (2024-11-16) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c73db8d](https://github.com/scratchfoundation/scratch-gui/commit/c73db8da1cd6a693a8106212ec922c63aa09595d)) + +## [4.1.3](https://github.com/scratchfoundation/scratch-gui/compare/v4.1.2...v4.1.3) (2024-11-14) + + +### Bug Fixes + +* **deps:** lock file maintenance ([8a528fd](https://github.com/scratchfoundation/scratch-gui/commit/8a528fdee434bc48ff17d630452395da1ba29101)) + +## [4.1.2](https://github.com/scratchfoundation/scratch-gui/compare/v4.1.1...v4.1.2) (2024-11-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([08346d5](https://github.com/scratchfoundation/scratch-gui/commit/08346d597c17396d79719c17c26cd9854503832f)) + +## [4.1.1](https://github.com/scratchfoundation/scratch-gui/compare/v4.1.0...v4.1.1) (2024-11-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([62f69aa](https://github.com/scratchfoundation/scratch-gui/commit/62f69aaa734a7342bcde4cd084d0cfcde168a540)) + +# [4.1.0](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.45...v4.1.0) (2024-11-08) + + +### Features + +* [UEPR-44] added ability to stop project when playing ([3ede51f](https://github.com/scratchfoundation/scratch-gui/commit/3ede51f0f38e072093d31c3d24913ccd456e01be)) +* [UEPR-44] exported redux action and added additional class to tutorials button ([01f493f](https://github.com/scratchfoundation/scratch-gui/commit/01f493f4db34b9f0875657eda8accbd25bf70d6e)) + +## [4.0.45](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.44...v4.0.45) (2024-11-07) + + +### Bug Fixes + +* **deps:** lock file maintenance ([e7cc56c](https://github.com/scratchfoundation/scratch-gui/commit/e7cc56c200af86add3982ad28d290d16df3d1802)) + +## [4.0.44](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.43...v4.0.44) (2024-11-05) + + +### Bug Fixes + +* **deps:** lock file maintenance ([910199a](https://github.com/scratchfoundation/scratch-gui/commit/910199a11e3ec8f3b45c52bb4e27597459905938)) + +## [4.0.43](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.42...v4.0.43) (2024-11-02) + + +### Bug Fixes + +* **deps:** lock file maintenance ([4293ed6](https://github.com/scratchfoundation/scratch-gui/commit/4293ed6ae9c53fa9a464734e17eee53d3f4de64e)) + +## [4.0.42](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.41...v4.0.42) (2024-11-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v4 ([648ab47](https://github.com/scratchfoundation/scratch-gui/commit/648ab47d6b7a2cdc882a96f0d69e120635e04f7c)) + +## [4.0.41](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.40...v4.0.41) (2024-10-21) + + +### Bug Fixes + +* uepr-8: fix library item selection ([c84caa2](https://github.com/scratchfoundation/scratch-gui/commit/c84caa24f137579610ce2fc1d92e7d6ec0f8c07a)) +* uepr-8: Fix test ([533f6f7](https://github.com/scratchfoundation/scratch-gui/commit/533f6f76165c8a9d27af52dad0ec4ad4e3658885)) + +## [4.0.40](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.39...v4.0.40) (2024-10-21) + + +### Bug Fixes + +* **deps:** lock file maintenance ([368497a](https://github.com/scratchfoundation/scratch-gui/commit/368497a46e6dee35c6045900d1ad5fb2f6aec74a)) + +## [4.0.39](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.38...v4.0.39) (2024-10-19) + + +### Bug Fixes + +* **deps:** lock file maintenance ([40788c8](https://github.com/scratchfoundation/scratch-gui/commit/40788c8ff3ab105540a17a33649ba4df4132e354)) + +## [4.0.38](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.37...v4.0.38) (2024-10-15) + + +### Bug Fixes + +* **deps:** lock file maintenance ([ac3aec9](https://github.com/scratchfoundation/scratch-gui/commit/ac3aec93c35178efb03917944db81589cde32826)) + +## [4.0.37](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.36...v4.0.37) (2024-10-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([58c1696](https://github.com/scratchfoundation/scratch-gui/commit/58c1696d2d0a2d0cb9e7d7e48457ce08fcf660e0)) + +## [4.0.36](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.35...v4.0.36) (2024-10-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c406036](https://github.com/scratchfoundation/scratch-gui/commit/c406036a80afca7035b08b04e943a63e7b46b677)) + +## [4.0.35](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.34...v4.0.35) (2024-10-07) + + +### Bug Fixes + +* **deps:** lock file maintenance ([a6fd209](https://github.com/scratchfoundation/scratch-gui/commit/a6fd209a3229e472057ee8f5bce42d6a25587d86)) + +## [4.0.34](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.33...v4.0.34) (2024-10-05) + + +### Bug Fixes + +* **deps:** lock file maintenance ([1d097df](https://github.com/scratchfoundation/scratch-gui/commit/1d097df53198c7919d1b6a5090d5db5a6aa77af1)) + +## [4.0.33](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.32...v4.0.33) (2024-10-02) + + +### Bug Fixes + +* **deps:** lock file maintenance ([91c6117](https://github.com/scratchfoundation/scratch-gui/commit/91c611775597f02400a93e5594de1fd32712f782)) + +## [4.0.32](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.31...v4.0.32) (2024-09-29) + + +### Bug Fixes + +* **deps:** lock file maintenance ([bd90616](https://github.com/scratchfoundation/scratch-gui/commit/bd906165dc9ad190032d6d212636c8078da6c2a7)) + +## [4.0.31](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.30...v4.0.31) (2024-09-27) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c6b3e7f](https://github.com/scratchfoundation/scratch-gui/commit/c6b3e7f52ebe9957652604b70014ffe7bfef5a87)) + +## [4.0.30](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.29...v4.0.30) (2024-09-24) + + +### Bug Fixes + +* **deps:** lock file maintenance ([8c3e709](https://github.com/scratchfoundation/scratch-gui/commit/8c3e7096d66dcacd5430f284f3a4848b05272162)) + +## [4.0.29](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.28...v4.0.29) (2024-09-21) + + +### Bug Fixes + +* **deps:** lock file maintenance ([14dea16](https://github.com/scratchfoundation/scratch-gui/commit/14dea16973f37150fb8de38f03153a03cef49b3c)) + +## [4.0.28](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.27...v4.0.28) (2024-09-18) + + +### Bug Fixes + +* **deps:** lock file maintenance ([d2e8559](https://github.com/scratchfoundation/scratch-gui/commit/d2e85590c744f2177fb2a768c9ed7e38fcfccbc4)) + +## [4.0.27](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.26...v4.0.27) (2024-09-16) + + +### Bug Fixes + +* **deps:** lock file maintenance ([d76341f](https://github.com/scratchfoundation/scratch-gui/commit/d76341fceeab9a8da79138b5d492fcbbe60cea90)) + +## [4.0.26](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.25...v4.0.26) (2024-09-14) + + +### Bug Fixes + +* **deps:** lock file maintenance ([61b8d36](https://github.com/scratchfoundation/scratch-gui/commit/61b8d36957834389c79474bef85e6a49e44c894e)) + +## [4.0.25](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.24...v4.0.25) (2024-09-12) + + +### Bug Fixes + +* **deps:** lock file maintenance ([47c5977](https://github.com/scratchfoundation/scratch-gui/commit/47c5977c87274233623ead7f5bbeb01ee91a7036)) + +## [4.0.24](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.23...v4.0.24) (2024-09-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-webpack-configuration to v1.5.1 ([1d3ad9f](https://github.com/scratchfoundation/scratch-gui/commit/1d3ad9f2c525192532c652130db4e3853283f2d5)) + +## [4.0.23](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.22...v4.0.23) (2024-09-11) + + +### Bug Fixes + +* **deps:** lock file maintenance ([bdab885](https://github.com/scratchfoundation/scratch-gui/commit/bdab88566d3b78427843508f14682210b3a7ffc5)) + +## [4.0.22](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.21...v4.0.22) (2024-09-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.16 ([11a0a8e](https://github.com/scratchfoundation/scratch-gui/commit/11a0a8ec76dbf3f57f0685ce6e9f9662f5743bff)) + +## [4.0.21](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.20...v4.0.21) (2024-09-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.15 ([92aa296](https://github.com/scratchfoundation/scratch-gui/commit/92aa29662c2320c9b2487cdd6a8ae226526f52e7)) + +## [4.0.20](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.19...v4.0.20) (2024-09-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([7e65def](https://github.com/scratchfoundation/scratch-gui/commit/7e65def0d98ae59ba7207912e77071206b3636b6)) + +## [4.0.19](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.18...v4.0.19) (2024-09-07) + + +### Bug Fixes + +* update scratch-{vm,webpack-configuration} to fix music extension ([0741369](https://github.com/scratchfoundation/scratch-gui/commit/07413690bc334c670512cac33a6a74da9c94c38f)) + +## [4.0.18](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.17...v4.0.18) (2024-09-05) + + +### Bug Fixes + +* **deps:** lock file maintenance ([9e11cb7](https://github.com/scratchfoundation/scratch-gui/commit/9e11cb7bac8a477d8fbebed27a642ae646610edf)) + +## [4.0.17](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.16...v4.0.17) (2024-09-02) + + +### Bug Fixes + +* **deps:** lock file maintenance ([e59686e](https://github.com/scratchfoundation/scratch-gui/commit/e59686ebd619e53e5b928c82f3c4749f2076666d)) + +## [4.0.16](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.15...v4.0.16) (2024-09-01) + + +### Bug Fixes + +* **deps:** lock file maintenance ([cbfffa2](https://github.com/scratchfoundation/scratch-gui/commit/cbfffa2dfb918492559987a05fc807ba39b996eb)) + +## [4.0.15](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.14...v4.0.15) (2024-08-29) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c518b32](https://github.com/scratchfoundation/scratch-gui/commit/c518b32de59f3afa29712c32d7192c8cb7698d0d)) + +## [4.0.14](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.13...v4.0.14) (2024-08-28) + + +### Bug Fixes + +* **deps:** lock file maintenance ([8df385f](https://github.com/scratchfoundation/scratch-gui/commit/8df385f7abe85282a169991bec5aaee76cd3ee95)) + +## [4.0.13](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.12...v4.0.13) (2024-08-27) + + +### Bug Fixes + +* **deps:** lock file maintenance ([c704c18](https://github.com/scratchfoundation/scratch-gui/commit/c704c18d4dc8b7d82576a6d8b87510ea48c836ec)) + +## [4.0.12](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.11...v4.0.12) (2024-08-27) + + +### Bug Fixes + +* **deps:** lock file maintenance ([67246f8](https://github.com/scratchfoundation/scratch-gui/commit/67246f81a55539652d31ce4c5e638143c366659c)) + +## [4.0.11](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.10...v4.0.11) (2024-08-26) + + +### Bug Fixes + +* **deps:** lock file maintenance ([6753315](https://github.com/scratchfoundation/scratch-gui/commit/6753315a25f528515989a6a91ee2614dc47b68b9)) +* pin cheerio to 1.0.0-rc.3 for now ([ac9a6e5](https://github.com/scratchfoundation/scratch-gui/commit/ac9a6e5d99dd35dcf3cece9f55b606a38a8cc659)) + +## [4.0.10](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.9...v4.0.10) (2024-08-10) + + +### Bug Fixes + +* **deps:** lock file maintenance ([6078482](https://github.com/scratchfoundation/scratch-gui/commit/6078482752df1fc3e7e7c3a4a23b397a6ea626f7)) + +## [4.0.9](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.8...v4.0.9) (2024-08-09) + + +### Bug Fixes + +* **deps:** lock file maintenance ([1868ae9](https://github.com/scratchfoundation/scratch-gui/commit/1868ae902256f89f3d597e54d72f8c0763191972)) + +## [4.0.8](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.7...v4.0.8) (2024-08-08) + + +### Bug Fixes + +* **deps:** lock file maintenance ([145cfd3](https://github.com/scratchfoundation/scratch-gui/commit/145cfd3d583b18e4504bbbeec0ad4119f79cc2a1)) + +## [4.0.7](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.6...v4.0.7) (2024-08-08) + + +### Bug Fixes + +* **deps:** lock file maintenance ([68c2da0](https://github.com/scratchfoundation/scratch-gui/commit/68c2da0402443421d2ea45e63a6c9e1155db2107)) + +## [4.0.6](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.5...v4.0.6) (2024-08-01) + + +### Reverts + +* Revert "ci: reduce package size" ([1054259](https://github.com/scratchfoundation/scratch-gui/commit/105425909c92cb5c162be2d03434e4338ec8cfa5)) +* Revert "fix(package): don't omit src" ([d7c5f60](https://github.com/scratchfoundation/scratch-gui/commit/d7c5f60f808b5658457c9af2a3fe124d791aff9f)) + +## [4.0.5](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.4...v4.0.5) (2024-07-31) + + +### Bug Fixes + +* [UEPR-27] Updated the css loader and added libraries to the build ([b7808e8](https://github.com/scratchfoundation/scratch-gui/commit/b7808e8d523ec48ddfb43e4de6ba1843a10f39be)) +* [UEPR-30] Updated style-loader version to fix component not rendering ([509d294](https://github.com/scratchfoundation/scratch-gui/commit/509d294132dd27316049f98fbc2e842da2681969)) + +## [4.0.4](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.3...v4.0.4) (2024-04-24) + + +### Bug Fixes + +* **deps:** bump scratch-paint from 2.2.2 to 2.2.151 ([898bbfd](https://github.com/scratchfoundation/scratch-gui/commit/898bbfdc445dae4a716c2cc9bf6cdb68594f8886)) +* **deps:** update dependency react-tooltip to v4 ([3c2afd1](https://github.com/scratchfoundation/scratch-gui/commit/3c2afd102a5c74c0b83f3b9654b926de235c31fc)) + +## [4.0.3](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.2...v4.0.3) (2024-04-12) + + +### Bug Fixes + +* force publish ([dbc8f1d](https://github.com/scratchfoundation/scratch-gui/commit/dbc8f1d6d116e51f6c39e65bc276b24901aa4e57)) + +## [4.0.2](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.1...v4.0.2) (2024-04-10) + + +### Bug Fixes + +* **package:** don't omit src ([8ffff71](https://github.com/scratchfoundation/scratch-gui/commit/8ffff71a5ea86c25e906f5c51024e3ca0aba6c9b)) + +## [4.0.1](https://github.com/scratchfoundation/scratch-gui/compare/v4.0.0...v4.0.1) (2024-04-10) + + +### Bug Fixes + +* **deps:** update dependency cookie to ^0.6.0 ([ebb4b6f](https://github.com/scratchfoundation/scratch-gui/commit/ebb4b6f89f36fc714ad5f54b2c2a338a97d5dd97)) + +# [4.0.0](https://github.com/scratchfoundation/scratch-gui/compare/v3.6.18...v4.0.0) (2024-03-29) + + +### Bug Fixes + +* **build:** add exports field to package.json ([43a1e8f](https://github.com/scratchfoundation/scratch-gui/commit/43a1e8f0c32c5e188209521bd20c67fa1a75e47d)) +* **build:** bring back BUILD_MODE now that the dust is settling ([3b89677](https://github.com/scratchfoundation/scratch-gui/commit/3b8967756c6ef650749b1c005be987e5832d167f)) +* **deps:** update dependency scratch-vm to v4 ([bfb634d](https://github.com/scratchfoundation/scratch-gui/commit/bfb634d487df35d861aefe5223a5409a6e254f37)) +* **deps:** update scratch-{svg-renderer,vm,webpack-configuration} ([48fb28a](https://github.com/scratchfoundation/scratch-gui/commit/48fb28a685fd9427e1c2e256b25da1ac3ff1a0d2)) +* remove unnecessary babel-jest transform config ([df34896](https://github.com/scratchfoundation/scratch-gui/commit/df3489619af9918ca54172817d1c886205c2182f)) + + +* build!: use scratch-webpack-configuration ([f1438f7](https://github.com/scratchfoundation/scratch-gui/commit/f1438f73e3f7aa9fe423c0f01c0db12e76645026)) + + +### BREAKING CHANGES + +* changes layout of output files and browser compatibility + +## [3.6.18](https://github.com/scratchfoundation/scratch-gui/compare/v3.6.17...v3.6.18) (2024-03-12) + + +### Bug Fixes + +* **deps:** update dependency raw-loader to v4 ([a0ca82c](https://github.com/scratchfoundation/scratch-gui/commit/a0ca82ca1c4b3bc0749fa28f8135699ab037e35f)) + +## [3.6.17](https://github.com/scratchfoundation/scratch-gui/compare/v3.6.16...v3.6.17) (2024-03-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-svg-renderer to v2 ([fd12d64](https://github.com/scratchfoundation/scratch-gui/commit/fd12d64fd446ce5abf025c38c1401466a1758687)) + +## [3.6.16](https://github.com/scratchfoundation/scratch-gui/compare/v3.6.15...v3.6.16) (2024-03-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v3 ([28ab624](https://github.com/scratchfoundation/scratch-gui/commit/28ab62467e4b89c31d5ce1046a85700d88b48720)) + +## [3.6.15](https://github.com/scratchfoundation/scratch-gui/compare/v3.6.14...v3.6.15) (2024-02-28) + + +### Bug Fixes + +* **deps:** use terser-webpack-plugin instead of uglifyjs-webpack-plugin ([05b1266](https://github.com/scratchfoundation/scratch-gui/commit/05b126656f1ee71f25f489d3f179860a3f7a71cd)) + +## [3.6.14](https://github.com/scratchfoundation/scratch-gui/compare/v3.6.13...v3.6.14) (2024-02-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.14 ([6caf215](https://github.com/scratchfoundation/scratch-gui/commit/6caf2150a96e6c98a49ffe896a434f2bd3dae896)) + +## [3.6.13](https://github.com/scratchfoundation/scratch-gui/compare/v3.6.12...v3.6.13) (2024-02-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.13 ([e91c814](https://github.com/scratchfoundation/scratch-gui/commit/e91c814164ec3915ff0b7a487176f2dadc0b4d35)) + +## [3.6.12](https://github.com/LLK/scratch-gui/compare/v3.6.11...v3.6.12) (2024-02-22) + + +### Bug Fixes + +* **deps:** update dependency eslint-config-scratch to v9.0.6 ([2778e94](https://github.com/LLK/scratch-gui/commit/2778e94486c4cde8eeb10f4b228c2d77aaf8c5fe)) + +## [3.6.11](https://github.com/LLK/scratch-gui/compare/v3.6.10...v3.6.11) (2024-02-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.12 ([6f6415b](https://github.com/LLK/scratch-gui/commit/6f6415bdd9097b595391e76f6c2f07b4cc680bfc)) + +## [3.6.10](https://github.com/LLK/scratch-gui/compare/v3.6.9...v3.6.10) (2024-02-22) + + +### Bug Fixes + +* **deps:** update dependency eslint-config-scratch to v9.0.5 ([8c7e516](https://github.com/LLK/scratch-gui/commit/8c7e5168e7c13ec457d71f0305a0a7aec1fa299c)) + +## [3.6.9](https://github.com/LLK/scratch-gui/compare/v3.6.8...v3.6.9) (2024-02-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.11 ([41ad41c](https://github.com/LLK/scratch-gui/commit/41ad41c0f5fb0d91eb7be9769ce166420059cf9d)) + +## [3.6.8](https://github.com/LLK/scratch-gui/compare/v3.6.7...v3.6.8) (2024-02-21) + + +### Bug Fixes + +* **deps:** update dependency eslint-config-scratch to v9.0.4 ([02cf4db](https://github.com/LLK/scratch-gui/commit/02cf4db778b9a9792c4cb1021b64eadad08e09dd)) +* **deps:** update dependency scratch-render-fonts to ^1.0.2 ([4f2df45](https://github.com/LLK/scratch-gui/commit/4f2df45ceb893c87bfe2063d331be17244455d9a)) + +## [3.6.7](https://github.com/LLK/scratch-gui/compare/v3.6.6...v3.6.7) (2024-02-17) + + +### Bug Fixes + +* **deps:** don't use NPM chromedriver package ([9dd81cb](https://github.com/LLK/scratch-gui/commit/9dd81cb3946410943860ee6f2c82d78f21c64993)) +* **deps:** unpin non-dev dependencies ([f94b201](https://github.com/LLK/scratch-gui/commit/f94b20158ca9de96e36c3719dff0dd212b37273c)) +* **deps:** update dependency scratch-blocks to v1.1.6 ([a5f81a8](https://github.com/LLK/scratch-gui/commit/a5f81a884569a45b2968db03ba5db7e1eb0a803d)) + +## [3.6.6](https://github.com/LLK/scratch-gui/compare/v3.6.5...v3.6.6) (2024-01-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.2.2 ([bad999e](https://github.com/LLK/scratch-gui/commit/bad999e82d9b0545e8f1f781735cc4a72013a94a)) +* **deps:** update dependency scratch-vm to v2.3.4 ([6d3b950](https://github.com/LLK/scratch-gui/commit/6d3b950b0089985f74b3f3bc2e061910f3f29ad7)) + +## [3.6.5](https://github.com/LLK/scratch-gui/compare/v3.6.4...v3.6.5) (2024-01-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.1.2 ([19eb15d](https://github.com/LLK/scratch-gui/commit/19eb15de2724f3e5149a4f8510ab7db54b677d22)) + +## [3.6.4](https://github.com/LLK/scratch-gui/compare/v3.6.3...v3.6.4) (2024-01-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.18.3 ([2cbaa2c](https://github.com/LLK/scratch-gui/commit/2cbaa2c826f80669cc97999ea33a7b4f75591a5c)) + +## [3.6.3](https://github.com/LLK/scratch-gui/compare/v3.6.2...v3.6.3) (2024-01-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.1.1 ([09b7d0f](https://github.com/LLK/scratch-gui/commit/09b7d0f05a6d3a8a866015b49cf694e190fdc583)) +* **deps:** update dependency scratch-vm to v2.3.2 ([16029ab](https://github.com/LLK/scratch-gui/commit/16029ab41a0cb8b1bfe6fede85e4944c57dbecd5)) + +## [3.6.2](https://github.com/LLK/scratch-gui/compare/v3.6.1...v3.6.2) (2024-01-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.2.1 ([d03c14d](https://github.com/LLK/scratch-gui/commit/d03c14d23c3fe568951a40e56659313f322df3c7)) + +## [3.6.1](https://github.com/LLK/scratch-gui/compare/v3.6.0...v3.6.1) (2024-01-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.18.1 ([8ca07f5](https://github.com/LLK/scratch-gui/commit/8ca07f561c84e1453d4e6a69c7e185d3d629e675)) + +# [3.6.0](https://github.com/LLK/scratch-gui/compare/v3.5.1...v3.6.0) (2024-01-17) + + +### Features + +* **deps:** update dependency scratch-vm to v2.3.0 ([95833eb](https://github.com/LLK/scratch-gui/commit/95833ebf1258afb879c64d500ef9b9663acc28e1)) + +## [3.5.1](https://github.com/LLK/scratch-gui/compare/v3.5.0...v3.5.1) (2024-01-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v1 ([af47ad2](https://github.com/LLK/scratch-gui/commit/af47ad2e4325f1a5545dfc858bf733d4cca777f2)) + +# [3.5.0](https://github.com/LLK/scratch-gui/compare/v3.4.0...v3.5.0) (2024-01-17) + + +### Features + +* **deps:** update dependency scratch-paint to v2.2.0 ([ce02e90](https://github.com/LLK/scratch-gui/commit/ce02e90077124d2235266b5555354712d95be5dc)) + +# [3.4.0](https://github.com/LLK/scratch-gui/compare/v3.3.0...v3.4.0) (2024-01-17) + + +### Features + +* **deps:** update dependency scratch-blocks to v1.1.0 ([7891772](https://github.com/LLK/scratch-gui/commit/789177205f335ec4207e881bfbeafe0a046cc335)) + +# [3.3.0](https://github.com/LLK/scratch-gui/compare/v3.2.68...v3.3.0) (2024-01-17) + + +### Features + +* **deps:** update dependency scratch-l10n to v3.18.0 ([4dbda91](https://github.com/LLK/scratch-gui/commit/4dbda9121796d77a1d101b5ad7616db7090eb3ad)) + +## [3.2.68](https://github.com/LLK/scratch-gui/compare/v3.2.67...v3.2.68) (2024-01-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-audio to v1 ([c10aa11](https://github.com/LLK/scratch-gui/commit/c10aa11f9e809af4bb1c07b5fab53131a31851c2)) + +## [3.2.67](https://github.com/LLK/scratch-gui/compare/v3.2.66...v3.2.67) (2024-01-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.68 ([1cf93c3](https://github.com/LLK/scratch-gui/commit/1cf93c37cdb7484d1dd847d9fec601969d72dd21)) + +## [3.2.66](https://github.com/LLK/scratch-gui/compare/v3.2.65...v3.2.66) (2024-01-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.0.8 ([c22f95e](https://github.com/LLK/scratch-gui/commit/c22f95ec863a070f56076dfb9ff7c3ff73634dc3)) + +## [3.2.65](https://github.com/LLK/scratch-gui/compare/v3.2.64...v3.2.65) (2024-01-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.74 ([2a3e1a4](https://github.com/LLK/scratch-gui/commit/2a3e1a4fdae5646256deea1ea76e8d7a18568274)) + +## [3.2.64](https://github.com/LLK/scratch-gui/compare/v3.2.63...v3.2.64) (2024-01-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20240116031928 ([7951fc6](https://github.com/LLK/scratch-gui/commit/7951fc6e093bf051cf4dbd4561ed2190ded648d1)) + +## [3.2.63](https://github.com/LLK/scratch-gui/compare/v3.2.62...v3.2.63) (2024-01-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.66 ([306c3b5](https://github.com/LLK/scratch-gui/commit/306c3b5763674c4f6e12d411a0891415866bfe75)) + +## [3.2.62](https://github.com/LLK/scratch-gui/compare/v3.2.61...v3.2.62) (2024-01-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.73 ([4b7298c](https://github.com/LLK/scratch-gui/commit/4b7298c09a6b6c4bef2690d094677cff9bd8943f)) + +## [3.2.61](https://github.com/LLK/scratch-gui/compare/v3.2.60...v3.2.61) (2024-01-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.0.7 ([d8adfcf](https://github.com/LLK/scratch-gui/commit/d8adfcfbed44f9e636bb2196d98c95232e7fbb2f)) + +## [3.2.60](https://github.com/LLK/scratch-gui/compare/v3.2.59...v3.2.60) (2024-01-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20240114031932 ([3181502](https://github.com/LLK/scratch-gui/commit/3181502509c0d983017f99cc23e18a348035bf51)) + +## [3.2.59](https://github.com/LLK/scratch-gui/compare/v3.2.58...v3.2.59) (2024-01-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.64 ([11edc8a](https://github.com/LLK/scratch-gui/commit/11edc8a78ae4eaa0e9bf24693474d968e99ace65)) + +## [3.2.58](https://github.com/LLK/scratch-gui/compare/v3.2.57...v3.2.58) (2024-01-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.0.6 ([41c8a82](https://github.com/LLK/scratch-gui/commit/41c8a8212bb8b42c95b085a6572da4a9ad768545)) + +## [3.2.57](https://github.com/LLK/scratch-gui/compare/v3.2.56...v3.2.57) (2024-01-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.72 ([ef07547](https://github.com/LLK/scratch-gui/commit/ef075475cc70b27e055a04315470fe7b7aabccc4)) + +## [3.2.56](https://github.com/LLK/scratch-gui/compare/v3.2.55...v3.2.56) (2024-01-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20240113031958 ([6ae1459](https://github.com/LLK/scratch-gui/commit/6ae14595010bc2f23481bf9d8b39b33979ff9980)) + +## [3.2.55](https://github.com/LLK/scratch-gui/compare/v3.2.54...v3.2.55) (2024-01-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.62 ([a45a05d](https://github.com/LLK/scratch-gui/commit/a45a05d50fa75909a17b82d532f41e9fa2c62949)) + +## [3.2.54](https://github.com/LLK/scratch-gui/compare/v3.2.53...v3.2.54) (2024-01-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.71 ([a7bc6fd](https://github.com/LLK/scratch-gui/commit/a7bc6fd36b5e46d4d9804bcdb51efb08d4611e78)) + +## [3.2.53](https://github.com/LLK/scratch-gui/compare/v3.2.52...v3.2.53) (2024-01-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.0.5 ([705875b](https://github.com/LLK/scratch-gui/commit/705875bb5c9005bf65647c9fa4ef4cdecfbc996b)) + +## [3.2.52](https://github.com/LLK/scratch-gui/compare/v3.2.51...v3.2.52) (2024-01-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20240112032057 ([b93373e](https://github.com/LLK/scratch-gui/commit/b93373ec67aa68c2eb9cccfbad3d4484fe116fec)) + +## [3.2.51](https://github.com/LLK/scratch-gui/compare/v3.2.50...v3.2.51) (2024-01-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.0.4 ([9746610](https://github.com/LLK/scratch-gui/commit/974661063d81d69467c3c5169cb260655c7749a2)) + +## [3.2.50](https://github.com/LLK/scratch-gui/compare/v3.2.49...v3.2.50) (2024-01-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.58 ([6cda60e](https://github.com/LLK/scratch-gui/commit/6cda60e5f44154da810edc08aab497a77456b1e4)) + +## [3.2.49](https://github.com/LLK/scratch-gui/compare/v3.2.48...v3.2.49) (2024-01-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.69 ([ad2a5ed](https://github.com/LLK/scratch-gui/commit/ad2a5edd7334ae56df3e35106f00f0bd67dfb3df)) + +## [3.2.48](https://github.com/LLK/scratch-gui/compare/v3.2.47...v3.2.48) (2024-01-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.0.3 ([410c034](https://github.com/LLK/scratch-gui/commit/410c03459898d4b79ab2c092f0695e365917f98e)) + +## [3.2.47](https://github.com/LLK/scratch-gui/compare/v3.2.46...v3.2.47) (2024-01-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.57 ([a60ef48](https://github.com/LLK/scratch-gui/commit/a60ef4881c357f699544a77ae195b1770a032878)) + +## [3.2.46](https://github.com/LLK/scratch-gui/compare/v3.2.45...v3.2.46) (2024-01-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20240111031939 ([dc8d9ad](https://github.com/LLK/scratch-gui/commit/dc8d9ad455eaaf2f0c2399eee8341dd3591f714e)) + +## [3.2.45](https://github.com/LLK/scratch-gui/compare/v3.2.44...v3.2.45) (2024-01-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.56 ([1c020bc](https://github.com/LLK/scratch-gui/commit/1c020bc0a861b142b169b78cec4e112f7533f22c)) + +## [3.2.44](https://github.com/LLK/scratch-gui/compare/v3.2.43...v3.2.44) (2024-01-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.68 ([72d081d](https://github.com/LLK/scratch-gui/commit/72d081d30fe34ba7f5c0242c67f60c5ff7ad9149)) + +## [3.2.43](https://github.com/LLK/scratch-gui/compare/v3.2.42...v3.2.43) (2024-01-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.0.2 ([1fb36ca](https://github.com/LLK/scratch-gui/commit/1fb36cab5676c8bd3f6c103eaaba3fbba3b9f9cc)) + +## [3.2.42](https://github.com/LLK/scratch-gui/compare/v3.2.41...v3.2.42) (2024-01-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.55 ([f2a578d](https://github.com/LLK/scratch-gui/commit/f2a578d3098f747ef40e70aaabc97e9b25d75514)) + +## [3.2.41](https://github.com/LLK/scratch-gui/compare/v3.2.40...v3.2.41) (2024-01-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20240110032113 ([ad8d9b7](https://github.com/LLK/scratch-gui/commit/ad8d9b7a67b144c7e940bce15be7426fafd56286)) + +## [3.2.40](https://github.com/LLK/scratch-gui/compare/v3.2.39...v3.2.40) (2024-01-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.54 ([dfb0700](https://github.com/LLK/scratch-gui/commit/dfb0700d9d5599cd46dda5ba6398ecdd75cee857)) + +## [3.2.39](https://github.com/LLK/scratch-gui/compare/v3.2.38...v3.2.39) (2024-01-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v1.0.1 ([ba7affc](https://github.com/LLK/scratch-gui/commit/ba7affc46ec5807056c282863d6ea21e218ce0e5)) + +## [3.2.38](https://github.com/LLK/scratch-gui/compare/v3.2.37...v3.2.38) (2024-01-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-audio to v0.1.0-prerelease.20231215224619 ([6bfef0c](https://github.com/LLK/scratch-gui/commit/6bfef0c113c5aeadc8c0d8a84b2254f5bdac3b12)) +* **deps:** update dependency scratch-audio to v0.1.0-prerelease.20231221012053 ([6920a3c](https://github.com/LLK/scratch-gui/commit/6920a3c5b21de7d750df841ad22ecc99e983454d)) +* **deps:** update dependency scratch-blocks to v1 ([42c26df](https://github.com/LLK/scratch-gui/commit/42c26dff9e488ff6ce1cfc00b5bd3f2cfd4d8c3d)) +* **deps:** update dependency scratch-l10n to v3.16.20231122224019 ([b8d852a](https://github.com/LLK/scratch-gui/commit/b8d852a27b9a16219a3a8e4d07f6dc600e3c0642)) +* **deps:** update dependency scratch-l10n to v3.16.20231127215636 ([148ec3e](https://github.com/LLK/scratch-gui/commit/148ec3e69e59bfcbff013290489a094185d546c1)) +* **deps:** update dependency scratch-l10n to v3.16.20231128031858 ([fed5b03](https://github.com/LLK/scratch-gui/commit/fed5b037aa4b69b0644b86295f9489eccfc00a72)) +* **deps:** update dependency scratch-l10n to v3.16.20231129031855 ([fa9b517](https://github.com/LLK/scratch-gui/commit/fa9b51729cc463edfa854186725f1bcb70fb928e)) +* **deps:** update dependency scratch-l10n to v3.16.20231202032055 ([682b142](https://github.com/LLK/scratch-gui/commit/682b1421fa7c0deaa70632455ffa6f3fac4c60f3)) +* **deps:** update dependency scratch-l10n to v3.16.20231204031853 ([afecd39](https://github.com/LLK/scratch-gui/commit/afecd3916b6cfc5d5726c9c19c2e7a46d3783725)) +* **deps:** update dependency scratch-l10n to v3.16.20231206031906 ([474100c](https://github.com/LLK/scratch-gui/commit/474100c34d2b916e6c56d55b6f71b1ae502c5b27)) +* **deps:** update dependency scratch-l10n to v3.16.20231207031849 ([c2f254c](https://github.com/LLK/scratch-gui/commit/c2f254c60d4274b08261ccd050725b4b143db0d8)) +* **deps:** update dependency scratch-l10n to v3.16.20231208031914 ([873d685](https://github.com/LLK/scratch-gui/commit/873d685981d63aa72fcf8fc32ab6091f63c311e9)) +* **deps:** update dependency scratch-l10n to v3.16.20231209032032 ([48997b4](https://github.com/LLK/scratch-gui/commit/48997b49c932704eb9a2544a755e70ad83560f2f)) +* **deps:** update dependency scratch-l10n to v3.16.20231212031840 ([cbeb9de](https://github.com/LLK/scratch-gui/commit/cbeb9de32349d051f0a3525a6f0bf6d210496f25)) +* **deps:** update dependency scratch-l10n to v3.16.20231213032014 ([3a0ec36](https://github.com/LLK/scratch-gui/commit/3a0ec36cbbfbfd2e927aab783385e69f8ce4377b)) +* **deps:** update dependency scratch-l10n to v3.16.20231214031848 ([d32e009](https://github.com/LLK/scratch-gui/commit/d32e009ac27d228394179186164c3b3a8bb3a75d)) +* **deps:** update dependency scratch-l10n to v3.16.20231215032046 ([236df85](https://github.com/LLK/scratch-gui/commit/236df85bfbce9a3ddd075e36cca24cf3cb297842)) +* **deps:** update dependency scratch-l10n to v3.16.20231215210459 ([889c8ae](https://github.com/LLK/scratch-gui/commit/889c8aec56335b091c6f8371b25453ff80882817)) +* **deps:** update dependency scratch-l10n to v3.16.20231216031853 ([a136332](https://github.com/LLK/scratch-gui/commit/a13633203f7a4d97962c12acd84ea2f70a3a9f00)) +* **deps:** update dependency scratch-l10n to v3.16.20231216093345 ([284c13c](https://github.com/LLK/scratch-gui/commit/284c13cebcf1cd8479f9ddfe5f96b4a893550736)) +* **deps:** update dependency scratch-l10n to v3.16.20231216221734 ([7a0c4bd](https://github.com/LLK/scratch-gui/commit/7a0c4bde6589988339c9f3e03086b8d02078c9c2)) +* **deps:** update dependency scratch-l10n to v3.16.20231217064326 ([3c22eab](https://github.com/LLK/scratch-gui/commit/3c22eabec4901c24457076edd8ccac94471e320d)) +* **deps:** update dependency scratch-l10n to v3.16.20231217121130 ([b4e29fd](https://github.com/LLK/scratch-gui/commit/b4e29fd8e9e63ee575ad77b4b51008d9387d64d7)) +* **deps:** update dependency scratch-l10n to v3.16.20231217161719 ([d9f84d5](https://github.com/LLK/scratch-gui/commit/d9f84d533d8be28618d2500e2b92daee66990fa4)) +* **deps:** update dependency scratch-l10n to v3.16.20231217221331 ([6bc8b0f](https://github.com/LLK/scratch-gui/commit/6bc8b0f9270ed96fa0bde2a60f58a6b5dcfae5c7)) +* **deps:** update dependency scratch-l10n to v3.16.20231219031959 ([fbea273](https://github.com/LLK/scratch-gui/commit/fbea2737a3407c87990126a5e962e7ee6675b771)) +* **deps:** update dependency scratch-l10n to v3.16.20231220031946 ([8d895c2](https://github.com/LLK/scratch-gui/commit/8d895c2cafcde489388b7b8b996ee75b7e9d5be0)) +* **deps:** update dependency scratch-l10n to v3.16.20231222031921 ([ac0d457](https://github.com/LLK/scratch-gui/commit/ac0d45752b8d5c50a68378126b6fad3419aea2c6)) +* **deps:** update dependency scratch-l10n to v3.16.20231223032112 ([c32bb0d](https://github.com/LLK/scratch-gui/commit/c32bb0d3b195ee23518df22f1f455f51fa083fa8)) +* **deps:** update dependency scratch-l10n to v3.16.20231227032036 ([fe04566](https://github.com/LLK/scratch-gui/commit/fe04566584e04a48ba313bb190a30ebb45f6a6fc)) +* **deps:** update dependency scratch-l10n to v3.16.20231231031840 ([aacb475](https://github.com/LLK/scratch-gui/commit/aacb4758582958f8a042480c6f0e1b15c6292b3b)) +* **deps:** update dependency scratch-l10n to v3.16.20240102031923 ([a9d7827](https://github.com/LLK/scratch-gui/commit/a9d7827c00f015e3905d2a1d43fb20bca8cecb38)) +* **deps:** update dependency scratch-l10n to v3.16.20240106031902 ([fc947c9](https://github.com/LLK/scratch-gui/commit/fc947c9bc0a8c1feb5cb9e2219dd85c3692ab79e)) +* **deps:** update dependency scratch-l10n to v3.16.20240109031949 ([65768b6](https://github.com/LLK/scratch-gui/commit/65768b67d6a74a590abb5037d0fe28fb134fd917)) +* **deps:** update dependency scratch-paint to v2.1.38 ([824db6f](https://github.com/LLK/scratch-gui/commit/824db6f85b56da2d56193950b45e81cf9a11a878)) +* **deps:** update dependency scratch-paint to v2.1.39 ([7d785a9](https://github.com/LLK/scratch-gui/commit/7d785a9742c92febea90b989e7ef26a7fa8ea881)) +* **deps:** update dependency scratch-paint to v2.1.40 ([25c8e02](https://github.com/LLK/scratch-gui/commit/25c8e02b5482cc640309e9fd6b8403b235423e4e)) +* **deps:** update dependency scratch-paint to v2.1.41 ([8716191](https://github.com/LLK/scratch-gui/commit/871619182b450c6a25dc351411b3af5ea4497354)) +* **deps:** update dependency scratch-paint to v2.1.42 ([26a8142](https://github.com/LLK/scratch-gui/commit/26a814219122a194de4514bf744ef8477b5e9a4c)) +* **deps:** update dependency scratch-paint to v2.1.43 ([115be4e](https://github.com/LLK/scratch-gui/commit/115be4eb71821f27351fda0f3bef26318910f9cd)) +* **deps:** update dependency scratch-paint to v2.1.44 ([5a44c98](https://github.com/LLK/scratch-gui/commit/5a44c98431ec39884c743ca5173450bae1dbc166)) +* **deps:** update dependency scratch-paint to v2.1.45 ([2ff1c58](https://github.com/LLK/scratch-gui/commit/2ff1c58fb88296ff10f05eb26e561de63f41d113)) +* **deps:** update dependency scratch-paint to v2.1.46 ([430d76b](https://github.com/LLK/scratch-gui/commit/430d76b6f446d875c4cf443087011addab5c62c4)) +* **deps:** update dependency scratch-paint to v2.1.47 ([183cb66](https://github.com/LLK/scratch-gui/commit/183cb666e4976d304728b3ee9aa33e6dbf73ff15)) +* **deps:** update dependency scratch-paint to v2.1.49 ([f810758](https://github.com/LLK/scratch-gui/commit/f81075826333169b112ca6e1e74bb99ea5696daa)) +* **deps:** update dependency scratch-paint to v2.1.50 ([cf93e65](https://github.com/LLK/scratch-gui/commit/cf93e655c60b319d65c1c4edfb49e3244c1556bc)) +* **deps:** update dependency scratch-paint to v2.1.53 ([4492ee2](https://github.com/LLK/scratch-gui/commit/4492ee2aab6ab5a3e27e65e64439b39f7946d372)) +* **deps:** update dependency scratch-paint to v2.1.54 ([41d3398](https://github.com/LLK/scratch-gui/commit/41d3398e3ef2733dd6d327eddda8cc6c8b7c7ac4)) +* **deps:** update dependency scratch-paint to v2.1.55 ([d133a8b](https://github.com/LLK/scratch-gui/commit/d133a8b0d023e9cf3b213280e6920b9b7e1568ef)) +* **deps:** update dependency scratch-paint to v2.1.57 ([a619073](https://github.com/LLK/scratch-gui/commit/a6190733e0029bf773a55ba9b55b5ef97479c3e3)) +* **deps:** update dependency scratch-paint to v2.1.58 ([3216a19](https://github.com/LLK/scratch-gui/commit/3216a19addd5a78bf56812f4538fd2e999fd96d6)) +* **deps:** update dependency scratch-paint to v2.1.59 ([785d3b9](https://github.com/LLK/scratch-gui/commit/785d3b942366842e5d4c9c91a46b5c27711c6699)) +* **deps:** update dependency scratch-paint to v2.1.60 ([391d604](https://github.com/LLK/scratch-gui/commit/391d604ca024c54167999aca3f07d5a77fdb602f)) +* **deps:** update dependency scratch-paint to v2.1.61 ([665ce63](https://github.com/LLK/scratch-gui/commit/665ce63f63fcd9d7f54d511ecc59d683ee763b88)) +* **deps:** update dependency scratch-paint to v2.1.62 ([a5de075](https://github.com/LLK/scratch-gui/commit/a5de0758580a51affe9ef672ca5bb66225c32e3c)) +* **deps:** update dependency scratch-paint to v2.1.63 ([d31f8ae](https://github.com/LLK/scratch-gui/commit/d31f8aea2b38ca350cb535a12ed304e50d9de5c9)) +* **deps:** update dependency scratch-paint to v2.1.64 ([8256b98](https://github.com/LLK/scratch-gui/commit/8256b984c4ed7e3e5552e3260188630d689517b3)) +* **deps:** update dependency scratch-paint to v2.1.65 ([a1aeae0](https://github.com/LLK/scratch-gui/commit/a1aeae05bfc8f5b96e82a871f2db3ebfc69d8b04)) +* **deps:** update dependency scratch-paint to v2.1.66 ([93aa9dd](https://github.com/LLK/scratch-gui/commit/93aa9ddf5aa60ad4c049071867e795fa917c33aa)) +* **deps:** update dependency scratch-paint to v2.1.67 ([39d969f](https://github.com/LLK/scratch-gui/commit/39d969f099121e291705a206b4aff2b095573b05)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20231216003602 ([8cec377](https://github.com/LLK/scratch-gui/commit/8cec3771e543a1927736e25eff86ed415656602f)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20231216072918 ([1ea5068](https://github.com/LLK/scratch-gui/commit/1ea506889344d5374b646d7cc06a2a2394767d8d)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20231220210403 ([f765b55](https://github.com/LLK/scratch-gui/commit/f765b557a48b140d45267e8349bf6cb3f37011f0)) +* **deps:** update dependency scratch-svg-renderer to v0.2.0 ([cd0fa86](https://github.com/LLK/scratch-gui/commit/cd0fa86eeb073d933b6076765b60555e393e59a7)) +* **deps:** update dependency scratch-svg-renderer to v0.2.0-prerelease.20231216035817 ([14707e1](https://github.com/LLK/scratch-gui/commit/14707e11044e44aecfe9d5937e453f08961c30c9)) +* **deps:** update dependency scratch-vm to v2.1.18 ([70bc637](https://github.com/LLK/scratch-gui/commit/70bc637caa58beaac031b576f144856e878c5e8a)) +* **deps:** update dependency scratch-vm to v2.1.19 ([0d0a01d](https://github.com/LLK/scratch-gui/commit/0d0a01d72cf2882c2abae937c493e07d77a60c7f)) +* **deps:** update dependency scratch-vm to v2.1.20 ([cab035c](https://github.com/LLK/scratch-gui/commit/cab035c5a05d8904e0051d4628cb4a10e70934e1)) +* **deps:** update dependency scratch-vm to v2.1.21 ([a6f85b9](https://github.com/LLK/scratch-gui/commit/a6f85b96429ae34eb010b7da4c43cc661557b247)) +* **deps:** update dependency scratch-vm to v2.1.22 ([f3d189e](https://github.com/LLK/scratch-gui/commit/f3d189ea5d4be71d3b294cba943377b89d7c9e4d)) +* **deps:** update dependency scratch-vm to v2.1.23 ([6b81072](https://github.com/LLK/scratch-gui/commit/6b810725bb2a1af3be3ed256884db4f2782632ea)) +* **deps:** update dependency scratch-vm to v2.1.24 ([a89bc65](https://github.com/LLK/scratch-gui/commit/a89bc65d1c2652d9ae3b1313349619043bb2c55d)) +* **deps:** update dependency scratch-vm to v2.1.25 ([1e867a4](https://github.com/LLK/scratch-gui/commit/1e867a4a6299377db040428363c028e190b00285)) +* **deps:** update dependency scratch-vm to v2.1.26 ([6bfae03](https://github.com/LLK/scratch-gui/commit/6bfae03481c301e2cea4b162668e6d25998aba37)) +* **deps:** update dependency scratch-vm to v2.1.27 ([ecee2ac](https://github.com/LLK/scratch-gui/commit/ecee2ace8b93c7af45f91bc57d1614dc08864bea)) +* **deps:** update dependency scratch-vm to v2.1.28 ([36198f5](https://github.com/LLK/scratch-gui/commit/36198f5c614d86f4fede8c50fd6737338bd79b91)) +* **deps:** update dependency scratch-vm to v2.1.29 ([e772df7](https://github.com/LLK/scratch-gui/commit/e772df70645b3f33af84ad98958064cd0ac12962)) +* **deps:** update dependency scratch-vm to v2.1.30 ([982d56a](https://github.com/LLK/scratch-gui/commit/982d56ae29cfbca6e6d49e5be206b50009500051)) +* **deps:** update dependency scratch-vm to v2.1.31 ([034172e](https://github.com/LLK/scratch-gui/commit/034172e814d66dd1d473c784abbd9656bd5173e4)) +* **deps:** update dependency scratch-vm to v2.1.37 ([ad14b05](https://github.com/LLK/scratch-gui/commit/ad14b055ac885c8b271940c1e32f145120a4dbed)) +* **deps:** update dependency scratch-vm to v2.1.41 ([71bc1dc](https://github.com/LLK/scratch-gui/commit/71bc1dc800389499afbb4d5cf178d9789267c3b0)) +* **deps:** update dependency scratch-vm to v2.1.42 ([9905a00](https://github.com/LLK/scratch-gui/commit/9905a006bf546b1a818b68a575fd28dea3a68306)) +* **deps:** update dependency scratch-vm to v2.1.43 ([f432111](https://github.com/LLK/scratch-gui/commit/f432111ab9ad2153c0a550aa1af053dd521f25b0)) +* **deps:** update dependency scratch-vm to v2.1.45 ([51ebee4](https://github.com/LLK/scratch-gui/commit/51ebee49a737500256285280f6a543abd39da347)) +* **deps:** update dependency scratch-vm to v2.1.47 ([928feda](https://github.com/LLK/scratch-gui/commit/928fedaffac27881d6f0ddcaf918ec5793c2f9c3)) +* **deps:** update dependency scratch-vm to v2.1.48 ([a55ebaf](https://github.com/LLK/scratch-gui/commit/a55ebaf5a7e29d8997ddf30ed5ac8cc00abb0565)) +* **deps:** update dependency scratch-vm to v2.1.49 ([53fa9d4](https://github.com/LLK/scratch-gui/commit/53fa9d4faeca1a71da1817c2739b4ca0f8e93239)) +* **deps:** update dependency scratch-vm to v2.1.50 ([af7a8bd](https://github.com/LLK/scratch-gui/commit/af7a8bdb71e24e14f2aaa83d8e785c9fbb1511b3)) +* **deps:** update dependency scratch-vm to v2.1.51 ([565887d](https://github.com/LLK/scratch-gui/commit/565887db893e84c0bcce493ef5f09aa8f8b0748a)) +* **deps:** update dependency scratch-vm to v2.1.53 ([4985903](https://github.com/LLK/scratch-gui/commit/49859035025600782bde8ba67420ee0dd660a789)) + +## [3.2.37](https://github.com/LLK/scratch-gui/compare/v3.2.36...v3.2.37) (2023-10-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.14 ([c3e8194](https://github.com/LLK/scratch-gui/commit/c3e81945be23d2d3070f622e378b54cac8af1af2)) + +## [3.2.36](https://github.com/LLK/scratch-gui/compare/v3.2.35...v3.2.36) (2023-10-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.34 ([acc2275](https://github.com/LLK/scratch-gui/commit/acc22758ccdf3ebfebf8a745eda7c68596b6ed92)) + +## [3.2.35](https://github.com/LLK/scratch-gui/compare/v3.2.34...v3.2.35) (2023-10-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231024152916 ([8bcdc8e](https://github.com/LLK/scratch-gui/commit/8bcdc8e9def0bf28d1c9706f62e59196a99f3b58)) + +## [3.2.34](https://github.com/LLK/scratch-gui/compare/v3.2.33...v3.2.34) (2023-10-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.13 ([f55c4a3](https://github.com/LLK/scratch-gui/commit/f55c4a3f32a17b2630947bc7806e2a318087c148)) + +## [3.2.33](https://github.com/LLK/scratch-gui/compare/v3.2.32...v3.2.33) (2023-10-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.33 ([b0a0406](https://github.com/LLK/scratch-gui/commit/b0a040648c9105c09d1bda48552d045152940c3d)) + +## [3.2.32](https://github.com/LLK/scratch-gui/compare/v3.2.31...v3.2.32) (2023-10-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231024032150 ([bce3008](https://github.com/LLK/scratch-gui/commit/bce30082ec025821a4dd8b3dd10e51bf6f33b7e3)) + +## [3.2.31](https://github.com/LLK/scratch-gui/compare/v3.2.30...v3.2.31) (2023-10-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.12 ([a909129](https://github.com/LLK/scratch-gui/commit/a9091292466d8edf5671a7bd19ed8bfbbfcc26c8)) + +## [3.2.30](https://github.com/LLK/scratch-gui/compare/v3.2.29...v3.2.30) (2023-10-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.32 ([b33ff31](https://github.com/LLK/scratch-gui/commit/b33ff31676eb5bf381592b67dfd78da3e566d1a4)) + +## [3.2.29](https://github.com/LLK/scratch-gui/compare/v3.2.28...v3.2.29) (2023-10-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231023032150 ([ebbb41e](https://github.com/LLK/scratch-gui/commit/ebbb41e1f99117f852f8ac8562b40b6ee527b14a)) + +## [3.2.28](https://github.com/LLK/scratch-gui/compare/v3.2.27...v3.2.28) (2023-10-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.11 ([0ec81d3](https://github.com/LLK/scratch-gui/commit/0ec81d3cf8c7d4dbd979c2e886a1cff018526ffd)) + +## [3.2.27](https://github.com/LLK/scratch-gui/compare/v3.2.26...v3.2.27) (2023-10-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.31 ([d5c6c6c](https://github.com/LLK/scratch-gui/commit/d5c6c6c716e90c3de3255edd48b1c9020b728523)) + +## [3.2.26](https://github.com/LLK/scratch-gui/compare/v3.2.25...v3.2.26) (2023-10-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231022032157 ([cb6c042](https://github.com/LLK/scratch-gui/commit/cb6c0420519e9a0c1b1d7f19b544b56c1bef36a4)) + +## [3.2.25](https://github.com/LLK/scratch-gui/compare/v3.2.24...v3.2.25) (2023-10-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.10 ([da8e73c](https://github.com/LLK/scratch-gui/commit/da8e73ce61564ad829c723d61cb853df2ef77335)) + +## [3.2.24](https://github.com/LLK/scratch-gui/compare/v3.2.23...v3.2.24) (2023-10-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.30 ([b385310](https://github.com/LLK/scratch-gui/commit/b385310b669a99eac7d94a61a680f0ed5d78824b)) + +## [3.2.23](https://github.com/LLK/scratch-gui/compare/v3.2.22...v3.2.23) (2023-10-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231021032150 ([0f1e21c](https://github.com/LLK/scratch-gui/commit/0f1e21c533f83f6fc332a892cc4d88ddc17e5339)) + +## [3.2.22](https://github.com/LLK/scratch-gui/compare/v3.2.21...v3.2.22) (2023-10-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.9 ([0a2a323](https://github.com/LLK/scratch-gui/commit/0a2a32386cf41b14f32e20a425be79262c0100dc)) + +## [3.2.21](https://github.com/LLK/scratch-gui/compare/v3.2.20...v3.2.21) (2023-10-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.29 ([eb7b596](https://github.com/LLK/scratch-gui/commit/eb7b596c38dd4bd6f480d84f5f798c3d89e02c8f)) + +## [3.2.20](https://github.com/LLK/scratch-gui/compare/v3.2.19...v3.2.20) (2023-10-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231020032152 ([4f3bc5e](https://github.com/LLK/scratch-gui/commit/4f3bc5ee509c8b56294e887679fc17beccca888a)) + +## [3.2.19](https://github.com/LLK/scratch-gui/compare/v3.2.18...v3.2.19) (2023-10-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.8 ([be19724](https://github.com/LLK/scratch-gui/commit/be197244eb0b933bc7f6c0a231ed45458e1aa4e8)) + +## [3.2.18](https://github.com/LLK/scratch-gui/compare/v3.2.17...v3.2.18) (2023-10-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.28 ([ffcee83](https://github.com/LLK/scratch-gui/commit/ffcee83abb18d27af002ad024052a572a99d34a0)) + +## [3.2.17](https://github.com/LLK/scratch-gui/compare/v3.2.16...v3.2.17) (2023-10-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231019032205 ([09adcbf](https://github.com/LLK/scratch-gui/commit/09adcbf20b4fb37e4d2d6c8bb3420b30860c3faa)) + +## [3.2.16](https://github.com/LLK/scratch-gui/compare/v3.2.15...v3.2.16) (2023-10-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.27 ([0fc00ff](https://github.com/LLK/scratch-gui/commit/0fc00ff48efbb0db0d618c31b975d83a129d3965)) + +## [3.2.15](https://github.com/LLK/scratch-gui/compare/v3.2.14...v3.2.15) (2023-10-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.7 ([e3e6c9a](https://github.com/LLK/scratch-gui/commit/e3e6c9ae6cd920f3d62ec1a60e2f22e7bc88cc86)) + +## [3.2.14](https://github.com/LLK/scratch-gui/compare/v3.2.13...v3.2.14) (2023-10-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20231018030724 ([bd45855](https://github.com/LLK/scratch-gui/commit/bd45855e9d46fc93ce5191b176ab8db5e80bf748)) + +## [3.2.13](https://github.com/LLK/scratch-gui/compare/v3.2.12...v3.2.13) (2023-10-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231018032141 ([bad16e9](https://github.com/LLK/scratch-gui/commit/bad16e9788f3054c1de33dd14efb7c7aea732534)) + +## [3.2.12](https://github.com/LLK/scratch-gui/compare/v3.2.11...v3.2.12) (2023-10-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-render-fonts to v1.0.0-prerelease.20231017225105 ([e9b0ee6](https://github.com/LLK/scratch-gui/commit/e9b0ee63916379dde975a9c4158d5d8690e73a04)) + +## [3.2.11](https://github.com/LLK/scratch-gui/compare/v3.2.10...v3.2.11) (2023-10-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.4 ([3757326](https://github.com/LLK/scratch-gui/commit/3757326cb3f0c2092f829615d6e8fee7d20685a4)) + +## [3.2.10](https://github.com/LLK/scratch-gui/compare/v3.2.9...v3.2.10) (2023-10-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231017032149 ([a1643fd](https://github.com/LLK/scratch-gui/commit/a1643fd1305dcbb3fac3dd31eaca2375bfb51cde)) + +## [3.2.9](https://github.com/LLK/scratch-gui/compare/v3.2.8...v3.2.9) (2023-10-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.25 ([d174184](https://github.com/LLK/scratch-gui/commit/d17418439cb93c8839c27ebad155d5b73030b8d5)) + +## [3.2.8](https://github.com/LLK/scratch-gui/compare/v3.2.7...v3.2.8) (2023-10-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.3 ([71813c5](https://github.com/LLK/scratch-gui/commit/71813c50e4b0f355428d543f15eea71ca5a4da86)) + +## [3.2.7](https://github.com/LLK/scratch-gui/compare/v3.2.6...v3.2.7) (2023-10-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231016032141 ([efa9866](https://github.com/LLK/scratch-gui/commit/efa986619a7e543d325cd6ec4c2d6171f7bddd71)) + +## [3.2.6](https://github.com/LLK/scratch-gui/compare/v3.2.5...v3.2.6) (2023-10-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.2 ([be6568b](https://github.com/LLK/scratch-gui/commit/be6568b27c1b535ac7e5b893e17ed094a0c1429b)) + +## [3.2.5](https://github.com/LLK/scratch-gui/compare/v3.2.4...v3.2.5) (2023-10-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.24 ([2a7ff8a](https://github.com/LLK/scratch-gui/commit/2a7ff8ab79fcb8b07844d93d7561af0165fac04d)) + +## [3.2.4](https://github.com/LLK/scratch-gui/compare/v3.2.3...v3.2.4) (2023-10-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231015032136 ([9587946](https://github.com/LLK/scratch-gui/commit/95879461301de485e27633d3d1479acdf7441d9e)) + +## [3.2.3](https://github.com/LLK/scratch-gui/compare/v3.2.2...v3.2.3) (2023-10-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.1.1 ([d5c6ff3](https://github.com/LLK/scratch-gui/commit/d5c6ff36489a493e92a0dbf58bde4768dbd33527)) + +## [3.2.2](https://github.com/LLK/scratch-gui/compare/v3.2.1...v3.2.2) (2023-10-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.23 ([373380f](https://github.com/LLK/scratch-gui/commit/373380fefca2885a65e47abca3454427148fe7ea)) + +## [3.2.1](https://github.com/LLK/scratch-gui/compare/v3.2.0...v3.2.1) (2023-10-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231014032135 ([7515205](https://github.com/LLK/scratch-gui/commit/7515205283b703a09fbae518ee285c7cc73a9844)) + +# [3.2.0](https://github.com/LLK/scratch-gui/compare/v3.1.4...v3.2.0) (2023-10-14) + + +### Features + +* **deps:** update dependency scratch-vm to v2.1.0 ([960cf17](https://github.com/LLK/scratch-gui/commit/960cf17e7d3ebed028e2041b8cc7f1c6e1694fab)) + +## [3.1.4](https://github.com/LLK/scratch-gui/compare/v3.1.3...v3.1.4) (2023-10-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-svg-renderer to v0.2.0-prerelease.20231013154115 ([ea12eaf](https://github.com/LLK/scratch-gui/commit/ea12eaf063716b42fba1c40e8a5865e44e0ce385)) + +## [3.1.3](https://github.com/LLK/scratch-gui/compare/v3.1.2...v3.1.3) (2023-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20231013160004 ([1c743d5](https://github.com/LLK/scratch-gui/commit/1c743d5e89fcdd39dd94008a17052c81c32da0c7)) + +## [3.1.2](https://github.com/LLK/scratch-gui/compare/v3.1.1...v3.1.2) (2023-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.22 ([9412285](https://github.com/LLK/scratch-gui/commit/9412285daa8ae698983eaf9746e6c4d8c2292445)) + +## [3.1.1](https://github.com/LLK/scratch-gui/compare/v3.1.0...v3.1.1) (2023-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231013132110 ([474805e](https://github.com/LLK/scratch-gui/commit/474805e7ff5c25ca9d04a41497d77ea4f324e1ba)) + +# [3.1.0](https://github.com/LLK/scratch-gui/compare/v3.0.39...v3.1.0) (2023-10-13) + + +### Features + +* **deps:** update dependency scratch-storage to v2.3.1 ([c5dc88c](https://github.com/LLK/scratch-gui/commit/c5dc88cef9ff60bb8e83fa5cdccdd10987233f83)) + +## [3.0.39](https://github.com/LLK/scratch-gui/compare/v3.0.38...v3.0.39) (2023-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-audio to v0.1.0-prerelease.20231013154641 ([de5423a](https://github.com/LLK/scratch-gui/commit/de5423a114659a4aa9d72878cfbf8964c4edafbb)) + +## [3.0.38](https://github.com/LLK/scratch-gui/compare/v3.0.37...v3.0.38) (2023-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.13 ([a042276](https://github.com/LLK/scratch-gui/commit/a0422766a3662d2da4c6fd5d8ae576ba866b87bb)) + +## [3.0.37](https://github.com/LLK/scratch-gui/compare/v3.0.36...v3.0.37) (2023-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231013034330 ([5256c90](https://github.com/LLK/scratch-gui/commit/5256c90637e13ce08178f817b06c474d18ea81de)) + +## [3.0.36](https://github.com/LLK/scratch-gui/compare/v3.0.35...v3.0.36) (2023-10-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.12 ([a157620](https://github.com/LLK/scratch-gui/commit/a157620601da945e3b14f170793659761ad1a9d6)) + +## [3.0.35](https://github.com/LLK/scratch-gui/compare/v3.0.34...v3.0.35) (2023-10-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231012062555 ([6abb72c](https://github.com/LLK/scratch-gui/commit/6abb72c417e5d3925f6c3065ed64fbec7731bf83)) + +## [3.0.34](https://github.com/LLK/scratch-gui/compare/v3.0.33...v3.0.34) (2023-10-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231012032159 ([294b355](https://github.com/LLK/scratch-gui/commit/294b355d2755186132210235c0f07b55f3a63b37)) + +## [3.0.33](https://github.com/LLK/scratch-gui/compare/v3.0.32...v3.0.33) (2023-10-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.11 ([f268bfc](https://github.com/LLK/scratch-gui/commit/f268bfc2a95b9f7a5735292a67bef4b74b07c368)) + +## [3.0.32](https://github.com/LLK/scratch-gui/compare/v3.0.31...v3.0.32) (2023-10-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231011074624 ([8e3f037](https://github.com/LLK/scratch-gui/commit/8e3f037e4263ec079aee204d2167a815539a2184)) + +## [3.0.31](https://github.com/LLK/scratch-gui/compare/v3.0.30...v3.0.31) (2023-10-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231011032153 ([6af36e4](https://github.com/LLK/scratch-gui/commit/6af36e4e11794486a5bc0251c128c5efc65b0825)) + +## [3.0.30](https://github.com/LLK/scratch-gui/compare/v3.0.29...v3.0.30) (2023-10-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.10 ([a99c051](https://github.com/LLK/scratch-gui/commit/a99c051e5c88d6cc2f5891b8568b585cded1188e)) + +## [3.0.29](https://github.com/LLK/scratch-gui/compare/v3.0.28...v3.0.29) (2023-10-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231010063733 ([dea027b](https://github.com/LLK/scratch-gui/commit/dea027bd24866e123ba3dad33639402ebdba48fa)) + +## [3.0.28](https://github.com/LLK/scratch-gui/compare/v3.0.27...v3.0.28) (2023-10-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231010032152 ([099ca55](https://github.com/LLK/scratch-gui/commit/099ca553a2df79ee5812a3a29f70a35d654b66a0)) + +## [3.0.27](https://github.com/LLK/scratch-gui/compare/v3.0.26...v3.0.27) (2023-10-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.9 ([ade2f78](https://github.com/LLK/scratch-gui/commit/ade2f7884fcc85c7e6577f1eb716b541e99e42b0)) + +## [3.0.26](https://github.com/LLK/scratch-gui/compare/v3.0.25...v3.0.26) (2023-10-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231009062217 ([9214472](https://github.com/LLK/scratch-gui/commit/92144726752d67ae6d7256038717c8d54f995992)) + +## [3.0.25](https://github.com/LLK/scratch-gui/compare/v3.0.24...v3.0.25) (2023-10-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231009032206 ([c5d6a7c](https://github.com/LLK/scratch-gui/commit/c5d6a7c0a9646b2baeb6155d1dc01253bf989672)) + +## [3.0.24](https://github.com/LLK/scratch-gui/compare/v3.0.23...v3.0.24) (2023-10-08) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.8 ([b12c18e](https://github.com/LLK/scratch-gui/commit/b12c18eee587a0af505b10a98278000f7a5b46a4)) + +## [3.0.23](https://github.com/LLK/scratch-gui/compare/v3.0.22...v3.0.23) (2023-10-08) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231008074308 ([e46fc38](https://github.com/LLK/scratch-gui/commit/e46fc38ec023703a55b279778708e707f51194c1)) + +## [3.0.22](https://github.com/LLK/scratch-gui/compare/v3.0.21...v3.0.22) (2023-10-08) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231008032147 ([bf8d64c](https://github.com/LLK/scratch-gui/commit/bf8d64ca9e87b7ff6807fc848c43004b56d3687a)) + +## [3.0.21](https://github.com/LLK/scratch-gui/compare/v3.0.20...v3.0.21) (2023-10-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.7 ([1608eda](https://github.com/LLK/scratch-gui/commit/1608eda6eda93b1ce1081c1d94394389c0f00597)) + +## [3.0.20](https://github.com/LLK/scratch-gui/compare/v3.0.19...v3.0.20) (2023-10-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231007072849 ([f6c58cd](https://github.com/LLK/scratch-gui/commit/f6c58cd9ef9019c5542dddf2eb9554f12873514e)) + +## [3.0.19](https://github.com/LLK/scratch-gui/compare/v3.0.18...v3.0.19) (2023-10-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231007032752 ([4e888de](https://github.com/LLK/scratch-gui/commit/4e888de1e047bb50c9b6eb5f1d123b0e2073af52)) + +## [3.0.18](https://github.com/LLK/scratch-gui/compare/v3.0.17...v3.0.18) (2023-10-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231006080812 ([88b1bc4](https://github.com/LLK/scratch-gui/commit/88b1bc45e45fe14e529e87a1bb4bee06c1249b3d)) + +## [3.0.17](https://github.com/LLK/scratch-gui/compare/v3.0.16...v3.0.17) (2023-10-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231006032155 ([5d37312](https://github.com/LLK/scratch-gui/commit/5d373122474fc7098ae4e9ff0220651a15d4cf9b)) +* **deps:** update dependency scratch-vm to v2.0.6 ([e3265d9](https://github.com/LLK/scratch-gui/commit/e3265d9dffe66f271f557b4c5f7867e675626c73)) + +## [3.0.17](https://github.com/LLK/scratch-gui/compare/v3.0.16...v3.0.17) (2023-10-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231006032155 ([5d37312](https://github.com/LLK/scratch-gui/commit/5d373122474fc7098ae4e9ff0220651a15d4cf9b)) + +## [3.0.16](https://github.com/LLK/scratch-gui/compare/v3.0.15...v3.0.16) (2023-10-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.5 ([0c890ce](https://github.com/LLK/scratch-gui/commit/0c890ceef08becd8f2d38531451f890c1d09992b)) + +## [3.0.15](https://github.com/LLK/scratch-gui/compare/v3.0.14...v3.0.15) (2023-10-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.4 ([e6c5fe4](https://github.com/LLK/scratch-gui/commit/e6c5fe4eca3580deae3106b9a85bc264067c3c08)) + +## [3.0.14](https://github.com/LLK/scratch-gui/compare/v3.0.13...v3.0.14) (2023-10-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231003094735 ([8d452f3](https://github.com/LLK/scratch-gui/commit/8d452f356f92aeaffe61326fdd275d1c50bb2bef)) + +## [3.0.13](https://github.com/LLK/scratch-gui/compare/v3.0.12...v3.0.13) (2023-10-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.21 ([c9339c2](https://github.com/LLK/scratch-gui/commit/c9339c24140e87d616a4fcdf1905f6fc422b374c)) + +## [3.0.12](https://github.com/LLK/scratch-gui/compare/v3.0.11...v3.0.12) (2023-10-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20231003032155 ([f4e6344](https://github.com/LLK/scratch-gui/commit/f4e63443927113336493f18d30474a8d444abb93)) + +## [3.0.11](https://github.com/LLK/scratch-gui/compare/v3.0.10...v3.0.11) (2023-10-03) + + +### Bug Fixes + +* disable metadata for now ([3c8d816](https://github.com/LLK/scratch-gui/commit/3c8d81695cc218d153b99910698ae68e2c6947cc)) + +## [3.0.10](https://github.com/LLK/scratch-gui/compare/v3.0.9...v3.0.10) (2023-10-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231001225312 ([a348c13](https://github.com/LLK/scratch-gui/commit/a348c13c0e11a3ca2572b74a97368308fb4483f4)) + +## [3.0.9](https://github.com/LLK/scratch-gui/compare/v3.0.8...v3.0.9) (2023-10-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20231001181518 ([06b45ad](https://github.com/LLK/scratch-gui/commit/06b45ada26032e46c90f30e242cefbc15a4bb82c)) + +## [3.0.8](https://github.com/LLK/scratch-gui/compare/v3.0.7...v3.0.8) (2023-09-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2.0.3 ([2f4abdb](https://github.com/LLK/scratch-gui/commit/2f4abdb710bef4a2da5b8456c395a73809921d34)) + +## [3.0.7](https://github.com/LLK/scratch-gui/compare/v3.0.6...v3.0.7) (2023-09-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v2 ([51f2a9d](https://github.com/LLK/scratch-gui/commit/51f2a9d503e0d47c9e17beb372a51e6bcf47bdf8)) + +## [3.0.6](https://github.com/LLK/scratch-gui/compare/v3.0.5...v3.0.6) (2023-09-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.20 ([77b0a78](https://github.com/LLK/scratch-gui/commit/77b0a78c0687ed11e4722b755610122ae9aa4cd2)) + +## [3.0.5](https://github.com/LLK/scratch-gui/compare/v3.0.4...v3.0.5) (2023-09-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230929032140 ([fe1d021](https://github.com/LLK/scratch-gui/commit/fe1d0215f00df80c10ea6e941ed87ce68d431047)) + +## [3.0.4](https://github.com/LLK/scratch-gui/compare/v3.0.3...v3.0.4) (2023-09-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.19 ([3bbcc82](https://github.com/LLK/scratch-gui/commit/3bbcc821cc06d9d0c2f2ae1603c4d8ccfdad8244)) + +## [3.0.3](https://github.com/LLK/scratch-gui/compare/v3.0.2...v3.0.3) (2023-09-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230928032154 ([98f801e](https://github.com/LLK/scratch-gui/commit/98f801e8361c9787d91bddd123628b8c89cdec17)) + +## [3.0.2](https://github.com/LLK/scratch-gui/compare/v3.0.1...v3.0.2) (2023-09-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.18 ([a802f7c](https://github.com/LLK/scratch-gui/commit/a802f7c7a38cf4f4cfb02544c8620865e606e100)) + +## [3.0.1](https://github.com/LLK/scratch-gui/compare/v3.0.0...v3.0.1) (2023-09-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230927032214 ([a9248bf](https://github.com/LLK/scratch-gui/commit/a9248bf4533aad2816e536b2012951afa3c82e4f)) + +# [3.0.0](https://github.com/LLK/scratch-gui/compare/v2.3.74...v3.0.0) (2023-09-26) + + +### Features + +* use scratchFetch ([76f869b](https://github.com/LLK/scratch-gui/commit/76f869b7a2ee927cbbd04939904e8fa281aa35e0)) + + +### BREAKING CHANGES + +* servers must accept new header x-projectid + +## [2.3.74](https://github.com/LLK/scratch-gui/compare/v2.3.73...v2.3.74) (2023-09-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.19 ([f3153c2](https://github.com/LLK/scratch-gui/commit/f3153c2d43ba23cae094cb2f231458a2bc04b914)) + +## [2.3.73](https://github.com/LLK/scratch-gui/compare/v2.3.72...v2.3.73) (2023-09-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.17 ([f509f37](https://github.com/LLK/scratch-gui/commit/f509f377dfb34ea9de29919181af2f58e5b0cdd9)) + +## [2.3.72](https://github.com/LLK/scratch-gui/compare/v2.3.71...v2.3.72) (2023-09-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230925032211 ([a051f6d](https://github.com/LLK/scratch-gui/commit/a051f6ddb54ef1a4e63b2a450bea11e0ff74362b)) + +## [2.3.71](https://github.com/LLK/scratch-gui/compare/v2.3.70...v2.3.71) (2023-09-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.18 ([2022464](https://github.com/LLK/scratch-gui/commit/20224643061d8f161531b1e672e4559671d64439)) + +## [2.3.70](https://github.com/LLK/scratch-gui/compare/v2.3.69...v2.3.70) (2023-09-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.16 ([bfc6e29](https://github.com/LLK/scratch-gui/commit/bfc6e2913d6bf2c1618e2fd0a388e0311d43eb01)) + +## [2.3.69](https://github.com/LLK/scratch-gui/compare/v2.3.68...v2.3.69) (2023-09-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230922032223 ([5f76fbf](https://github.com/LLK/scratch-gui/commit/5f76fbff39370b8615f81a61a3f58ce3e3b6d3fc)) + +## [2.3.68](https://github.com/LLK/scratch-gui/compare/v2.3.67...v2.3.68) (2023-09-22) + + +### Bug Fixes + +* **deps:** update react monorepo to v16.14.0 ([f71c7e6](https://github.com/LLK/scratch-gui/commit/f71c7e63b50f16b8d915863ea698c28ce0eafad7)) + +## [2.3.67](https://github.com/LLK/scratch-gui/compare/v2.3.66...v2.3.67) (2023-09-21) + + +### Bug Fixes + +* **deps:** update dependency autoprefixer to v9.8.8 ([fff426e](https://github.com/LLK/scratch-gui/commit/fff426e9ffdd0e9846f5544ce7c45818994ed16f)) + +## [2.3.66](https://github.com/LLK/scratch-gui/compare/v2.3.65...v2.3.66) (2023-09-21) + + +### Bug Fixes + +* **deps:** update dependency arraybuffer-loader to v1.0.8 ([acc4924](https://github.com/LLK/scratch-gui/commit/acc49242e92be09647172a2674559e0a8f502707)) + +## [2.3.65](https://github.com/LLK/scratch-gui/compare/v2.3.64...v2.3.65) (2023-09-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.17 ([a6a3fe6](https://github.com/LLK/scratch-gui/commit/a6a3fe6c28bb8465ccadefc396b510df43db8d0e)) + +## [2.3.64](https://github.com/LLK/scratch-gui/compare/v2.3.63...v2.3.64) (2023-09-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.15 ([6780205](https://github.com/LLK/scratch-gui/commit/67802058b7d1a0d1d5d99b5bf1391fb936c9161c)) + +## [2.3.63](https://github.com/LLK/scratch-gui/compare/v2.3.62...v2.3.63) (2023-09-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230920032206 ([87db034](https://github.com/LLK/scratch-gui/commit/87db03497151c2fe205591ad8b360d5302b88155)) + +## [2.3.62](https://github.com/LLK/scratch-gui/compare/v2.3.61...v2.3.62) (2023-09-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.16 ([03554a3](https://github.com/LLK/scratch-gui/commit/03554a3743eadd800fb771b8a6c848635c65ab17)) + +## [2.3.61](https://github.com/LLK/scratch-gui/compare/v2.3.60...v2.3.61) (2023-09-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.14 ([f71ccc3](https://github.com/LLK/scratch-gui/commit/f71ccc3de76329c6eaf2f7c809b4cf09fcf5f3d6)) + +## [2.3.60](https://github.com/LLK/scratch-gui/compare/v2.3.59...v2.3.60) (2023-09-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230919070150 ([ae25d02](https://github.com/LLK/scratch-gui/commit/ae25d023a30db1e1e21d010417a80489539879cf)) + +## [2.3.59](https://github.com/LLK/scratch-gui/compare/v2.3.58...v2.3.59) (2023-09-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230919032227 ([8dc2608](https://github.com/LLK/scratch-gui/commit/8dc2608af699e88f0f982942ed2a9528f174f1c0)) + +## [2.3.58](https://github.com/LLK/scratch-gui/compare/v2.3.57...v2.3.58) (2023-09-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.15 ([59a9d11](https://github.com/LLK/scratch-gui/commit/59a9d11c0e6faa753d5fd292174d454969a98b1d)) + +## [2.3.57](https://github.com/LLK/scratch-gui/compare/v2.3.56...v2.3.57) (2023-09-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.13 ([590b3c7](https://github.com/LLK/scratch-gui/commit/590b3c732c6c909d8fa51e7f89a812251361b7a0)) + +## [2.3.56](https://github.com/LLK/scratch-gui/compare/v2.3.55...v2.3.56) (2023-09-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230918061920 ([2160099](https://github.com/LLK/scratch-gui/commit/21600999e81b79bbc47d902c46751b9ee90cabd3)) + +## [2.3.55](https://github.com/LLK/scratch-gui/compare/v2.3.54...v2.3.55) (2023-09-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230918032214 ([501651e](https://github.com/LLK/scratch-gui/commit/501651ee3fd898a1392dc5b66e4ebfceaf5b7636)) + +## [2.3.54](https://github.com/LLK/scratch-gui/compare/v2.3.53...v2.3.54) (2023-09-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230917072819 ([c2b4463](https://github.com/LLK/scratch-gui/commit/c2b4463c9ba1923501c533293c31d0b227fdcb90)) + +## [2.3.53](https://github.com/LLK/scratch-gui/compare/v2.3.52...v2.3.53) (2023-09-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.14 ([a359dcd](https://github.com/LLK/scratch-gui/commit/a359dcd1e28995c65ea4e761dfe1be67206ebc55)) + +## [2.3.52](https://github.com/LLK/scratch-gui/compare/v2.3.51...v2.3.52) (2023-09-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.12 ([4a01a85](https://github.com/LLK/scratch-gui/commit/4a01a850ace9387276445c3c4d0a27efe336463c)) + +## [2.3.51](https://github.com/LLK/scratch-gui/compare/v2.3.50...v2.3.51) (2023-09-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230917032211 ([4d4d36b](https://github.com/LLK/scratch-gui/commit/4d4d36babf64124e9365ed3c9f7986a99e4d36fb)) + +## [2.3.50](https://github.com/LLK/scratch-gui/compare/v2.3.49...v2.3.50) (2023-09-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.11 ([c54d39a](https://github.com/LLK/scratch-gui/commit/c54d39a03b4fa2ad3d19aa9234459eac8953dfea)) + +## [2.3.49](https://github.com/LLK/scratch-gui/compare/v2.3.48...v2.3.49) (2023-09-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230916082436 ([b0f0595](https://github.com/LLK/scratch-gui/commit/b0f059542ad16e45d44703be2e984ed35a830fa7)) + +## [2.3.48](https://github.com/LLK/scratch-gui/compare/v2.3.47...v2.3.48) (2023-09-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.13 ([bf81aad](https://github.com/LLK/scratch-gui/commit/bf81aad082ea33f04f0409d0b7dd44812bbedf3c)) + +## [2.3.47](https://github.com/LLK/scratch-gui/compare/v2.3.46...v2.3.47) (2023-09-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230916032206 ([66b982d](https://github.com/LLK/scratch-gui/commit/66b982db0dad44368a3b40efb5932b4b7cb4b4a5)) + +## [2.3.46](https://github.com/LLK/scratch-gui/compare/v2.3.45...v2.3.46) (2023-09-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.12 ([3134986](https://github.com/LLK/scratch-gui/commit/3134986c2fa58a3aafd115cf46cbbb8e42160f95)) + +## [2.3.45](https://github.com/LLK/scratch-gui/compare/v2.3.44...v2.3.45) (2023-09-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.10 ([36ddc97](https://github.com/LLK/scratch-gui/commit/36ddc97af91f1ba62171ec14abd258d06487c097)) + +## [2.3.44](https://github.com/LLK/scratch-gui/compare/v2.3.43...v2.3.44) (2023-09-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230915062155 ([d3f98ec](https://github.com/LLK/scratch-gui/commit/d3f98ecb78fa9b5a3c935ec91dcf8a82f056c13d)) + +## [2.3.43](https://github.com/LLK/scratch-gui/compare/v2.3.42...v2.3.43) (2023-09-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230915032152 ([f72711e](https://github.com/LLK/scratch-gui/commit/f72711e10f5aa3e6f192acd1a9da5a70f0d04686)) + +## [2.3.42](https://github.com/LLK/scratch-gui/compare/v2.3.41...v2.3.42) (2023-09-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.11 ([6c9e4d5](https://github.com/LLK/scratch-gui/commit/6c9e4d5f2bec909e417813357f0c932ca19f9e25)) + +## [2.3.41](https://github.com/LLK/scratch-gui/compare/v2.3.40...v2.3.41) (2023-09-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.9 ([6639e2b](https://github.com/LLK/scratch-gui/commit/6639e2b49e6d073c0850993abb383392a478280d)) + +## [2.3.40](https://github.com/LLK/scratch-gui/compare/v2.3.39...v2.3.40) (2023-09-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230914060440 ([f7b63b8](https://github.com/LLK/scratch-gui/commit/f7b63b8d93ed2ff413e768944414f15815d34773)) + +## [2.3.39](https://github.com/LLK/scratch-gui/compare/v2.3.38...v2.3.39) (2023-09-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230914032225 ([70973cf](https://github.com/LLK/scratch-gui/commit/70973cfb4841ab2eb32e519a3dde52d86eebaa4d)) + +## [2.3.38](https://github.com/LLK/scratch-gui/compare/v2.3.37...v2.3.38) (2023-09-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.10 ([5fb4e78](https://github.com/LLK/scratch-gui/commit/5fb4e78eeda90164e99e62879c000c9ef0904c89)) + +## [2.3.37](https://github.com/LLK/scratch-gui/compare/v2.3.36...v2.3.37) (2023-09-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20230913153807 ([0ac856c](https://github.com/LLK/scratch-gui/commit/0ac856c9db08bd9767ca87fa44c3526b4221fd6c)) + +## [2.3.36](https://github.com/LLK/scratch-gui/compare/v2.3.35...v2.3.36) (2023-09-13) + + +### Bug Fixes + +* adjust autosave interval ([9d4c5aa](https://github.com/LLK/scratch-gui/commit/9d4c5aa66cc356f8c29431a6145bdc7d1c59aace)) + +## [2.3.35](https://github.com/LLK/scratch-gui/compare/v2.3.34...v2.3.35) (2023-09-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230909213745 ([d23ebb1](https://github.com/LLK/scratch-gui/commit/d23ebb1868c55a2c623daa9b2a063463e81f3a75)) + +## [2.3.34](https://github.com/LLK/scratch-gui/compare/v2.3.33...v2.3.34) (2023-09-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.9 ([8f6a4fe](https://github.com/LLK/scratch-gui/commit/8f6a4fe39b9e57bde59a9897568d21e61aa6b6c0)) + +## [2.3.33](https://github.com/LLK/scratch-gui/compare/v2.3.32...v2.3.33) (2023-09-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.8 ([18724a0](https://github.com/LLK/scratch-gui/commit/18724a026bd22d1a0b1a2a6185e2bbd1172eea1c)) + +## [2.3.32](https://github.com/LLK/scratch-gui/compare/v2.3.31...v2.3.32) (2023-09-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230909062904 ([d8f2c63](https://github.com/LLK/scratch-gui/commit/d8f2c6300f8d425d15d1bd0a8f0c91fd71980fe1)) + +## [2.3.31](https://github.com/LLK/scratch-gui/compare/v2.3.30...v2.3.31) (2023-09-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230909032442 ([7acb9d6](https://github.com/LLK/scratch-gui/commit/7acb9d6c89cbfef4eb3e1c3e5cc2caf3a134cc14)) + +## [2.3.30](https://github.com/LLK/scratch-gui/compare/v2.3.29...v2.3.30) (2023-09-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230904004241 ([4779242](https://github.com/LLK/scratch-gui/commit/47792428188361354cb09249c6493403040ce21c)) + +## [2.3.29](https://github.com/LLK/scratch-gui/compare/v2.3.28...v2.3.29) (2023-09-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.7 ([6007b18](https://github.com/LLK/scratch-gui/commit/6007b18af916b2a63caa5dc4c7ab935a6bd7e3b6)) + +## [2.3.28](https://github.com/LLK/scratch-gui/compare/v2.3.27...v2.3.28) (2023-09-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.8 ([ab69bd7](https://github.com/LLK/scratch-gui/commit/ab69bd7949c5abcc9967522c9828d8ae5fa4266c)) + +## [2.3.27](https://github.com/LLK/scratch-gui/compare/v2.3.26...v2.3.27) (2023-09-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230902064105 ([74a6562](https://github.com/LLK/scratch-gui/commit/74a656272ac94879729ef0c344f860bf1a2a5418)) + +## [2.3.26](https://github.com/LLK/scratch-gui/compare/v2.3.25...v2.3.26) (2023-09-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230902032236 ([5dfbd36](https://github.com/LLK/scratch-gui/commit/5dfbd3693965286c0095012fe03bbc93705d12ad)) + +## [2.3.25](https://github.com/LLK/scratch-gui/compare/v2.3.24...v2.3.25) (2023-09-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.7 ([3a1fce1](https://github.com/LLK/scratch-gui/commit/3a1fce1811387824e1bfb55aa5362ace3a59bfc9)) + +## [2.3.24](https://github.com/LLK/scratch-gui/compare/v2.3.23...v2.3.24) (2023-09-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.6 ([b7a5bb7](https://github.com/LLK/scratch-gui/commit/b7a5bb78e5de62bd73be319b5e6bc6caa0fb17e7)) + +## [2.3.23](https://github.com/LLK/scratch-gui/compare/v2.3.22...v2.3.23) (2023-09-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230830071505 ([f9d9803](https://github.com/LLK/scratch-gui/commit/f9d98037e3746dc620e95b6b3738fc77e0d03270)) + +## [2.3.22](https://github.com/LLK/scratch-gui/compare/v2.3.21...v2.3.22) (2023-09-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230830032256 ([8524a51](https://github.com/LLK/scratch-gui/commit/8524a517dd05daece673afdcd4fe49ba01b9f984)) + +## [2.3.21](https://github.com/LLK/scratch-gui/compare/v2.3.20...v2.3.21) (2023-08-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.5 ([29f8d2f](https://github.com/LLK/scratch-gui/commit/29f8d2fc05b2b626040b6e76fe3db0c5fd32e96a)) + +## [2.3.20](https://github.com/LLK/scratch-gui/compare/v2.3.19...v2.3.20) (2023-08-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.6 ([0c12060](https://github.com/LLK/scratch-gui/commit/0c1206008a4692cf81173218ab4e54b3d635db8e)) + +## [2.3.19](https://github.com/LLK/scratch-gui/compare/v2.3.18...v2.3.19) (2023-08-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230828081054 ([928f2c0](https://github.com/LLK/scratch-gui/commit/928f2c0d53695974e0e35b21b71938c306b89788)) + +## [2.3.18](https://github.com/LLK/scratch-gui/compare/v2.3.17...v2.3.18) (2023-08-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230828032247 ([0d133a7](https://github.com/LLK/scratch-gui/commit/0d133a75a0ef7a3ba490fc4a35cf5efd5b6cae41)) + +## [2.3.17](https://github.com/LLK/scratch-gui/compare/v2.3.16...v2.3.17) (2023-08-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.5 ([3d2dc03](https://github.com/LLK/scratch-gui/commit/3d2dc03e6a550177f6874b469b632a885cd38df4)) + +## [2.3.16](https://github.com/LLK/scratch-gui/compare/v2.3.15...v2.3.16) (2023-08-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.4 ([0efa087](https://github.com/LLK/scratch-gui/commit/0efa0878aec7c3c3a7831b371471e10729c08ceb)) + +## [2.3.15](https://github.com/LLK/scratch-gui/compare/v2.3.14...v2.3.15) (2023-08-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230827072038 ([35bcc88](https://github.com/LLK/scratch-gui/commit/35bcc88c2ca9963c87b671d2e76318e68bce47ea)) + +## [2.3.14](https://github.com/LLK/scratch-gui/compare/v2.3.13...v2.3.14) (2023-08-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230827032235 ([bfd4c78](https://github.com/LLK/scratch-gui/commit/bfd4c7813d3d29ffba3a573623b959559c3402b5)) + +## [2.3.13](https://github.com/LLK/scratch-gui/compare/v2.3.12...v2.3.13) (2023-08-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.4 ([17390d2](https://github.com/LLK/scratch-gui/commit/17390d24b61400bea62ea186516c728fb77487be)) + +## [2.3.12](https://github.com/LLK/scratch-gui/compare/v2.3.11...v2.3.12) (2023-08-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230823100116 ([268ea15](https://github.com/LLK/scratch-gui/commit/268ea153138bd17a919b0fa0eb46ddf345319c98)) + +## [2.3.11](https://github.com/LLK/scratch-gui/compare/v2.3.10...v2.3.11) (2023-08-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.3 ([0c9c6ea](https://github.com/LLK/scratch-gui/commit/0c9c6ea83b0453b745aadb76396bc747b1b92794)) + +## [2.3.10](https://github.com/LLK/scratch-gui/compare/v2.3.9...v2.3.10) (2023-08-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230823032242 ([9098051](https://github.com/LLK/scratch-gui/commit/909805196d249f17b0c9a123c1ceac362ada40cd)) + +## [2.3.9](https://github.com/LLK/scratch-gui/compare/v2.3.8...v2.3.9) (2023-08-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.3 ([365ea0b](https://github.com/LLK/scratch-gui/commit/365ea0bca25b4a01e124affb877cba67ee04e6e2)) + +## [2.3.8](https://github.com/LLK/scratch-gui/compare/v2.3.7...v2.3.8) (2023-08-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20230817222155 ([c888c7f](https://github.com/LLK/scratch-gui/commit/c888c7fb41af6b7fa74b162a18f6651c448b1869)) + +## [2.3.7](https://github.com/LLK/scratch-gui/compare/v2.3.6...v2.3.7) (2023-08-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.2 ([1fbdb12](https://github.com/LLK/scratch-gui/commit/1fbdb12ef44c3baaee35f4423739dc145ea46bb6)) + +## [2.3.6](https://github.com/LLK/scratch-gui/compare/v2.3.5...v2.3.6) (2023-08-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230818064858 ([310aa98](https://github.com/LLK/scratch-gui/commit/310aa981fc2504d922f3b0af3d31d5be231fbcc3)) + +## [2.3.5](https://github.com/LLK/scratch-gui/compare/v2.3.4...v2.3.5) (2023-08-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230818032229 ([1168f0b](https://github.com/LLK/scratch-gui/commit/1168f0b97b1a387f620e72242b1af7e0e9b3a638)) + +## [2.3.4](https://github.com/LLK/scratch-gui/compare/v2.3.3...v2.3.4) (2023-08-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230818003646 ([abd5d8a](https://github.com/LLK/scratch-gui/commit/abd5d8af874e9ae358f6de4323cb81017f469fb0)) +* **deps:** update dependency scratch-l10n to v3.16.20230811032222 ([9a23720](https://github.com/LLK/scratch-gui/commit/9a23720eea36eaf899d4f03e66516b3684df4ada)) +* **deps:** update dependency scratch-l10n to v3.16.20230812032208 ([95b75cd](https://github.com/LLK/scratch-gui/commit/95b75cd6fbc688a793f7a93b1f5f82982a6efeb4)) +* **deps:** update dependency scratch-l10n to v3.16.20230815032213 ([ba5732d](https://github.com/LLK/scratch-gui/commit/ba5732ddf68669293311b47ea1e6a13956f6042e)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20230816202402 ([620b296](https://github.com/LLK/scratch-gui/commit/620b296c6136e77e47fa10bac026fda88ad1fe3e)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20230817150231 ([ba28055](https://github.com/LLK/scratch-gui/commit/ba28055851ba151b8ab4f70cd553e85586e1cd43)) + +## [2.3.3](https://github.com/LLK/scratch-gui/compare/v2.3.2...v2.3.3) (2023-08-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.6.1 ([a19d379](https://github.com/LLK/scratch-gui/commit/a19d379bac33ac0e6e82e6d3436b4fcd85479120)) + +## [2.3.2](https://github.com/LLK/scratch-gui/compare/v2.3.1...v2.3.2) (2023-08-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.1.1 ([13b2c0d](https://github.com/LLK/scratch-gui/commit/13b2c0d9a318a4383f3fd07b4180551b6dae6279)) + +## [2.3.1](https://github.com/LLK/scratch-gui/compare/v2.3.0...v2.3.1) (2023-08-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.16.20230809032258 ([40129c7](https://github.com/LLK/scratch-gui/commit/40129c7912e5cf600ce35df4380925c2ccdcfe09)) + +# [2.3.0](https://github.com/LLK/scratch-gui/compare/v2.2.0...v2.3.0) (2023-08-08) + + +### Features + +* **deps:** update dependency scratch-vm to v1.6.0 ([836aad6](https://github.com/LLK/scratch-gui/commit/836aad68ab7053239cb58adcb2dbe30b79072082)) + +# [2.2.0](https://github.com/LLK/scratch-gui/compare/v2.1.0...v2.2.0) (2023-08-08) + + +### Features + +* **deps:** update dependency scratch-paint to v2.1.0 ([d532182](https://github.com/LLK/scratch-gui/commit/d532182db42d135543461e8b06ae92a19924b6ec)) + +# [2.1.0](https://github.com/LLK/scratch-gui/compare/v2.0.96...v2.1.0) (2023-08-08) + + +### Features + +* **deps:** update dependency scratch-l10n to v3.16.20230808032252 ([59ce6c1](https://github.com/LLK/scratch-gui/commit/59ce6c192d431eb6c3db9c94d3718fad135faac2)) + +## [2.0.96](https://github.com/LLK/scratch-gui/compare/v2.0.95...v2.0.96) (2023-08-08) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.98 ([8b62367](https://github.com/LLK/scratch-gui/commit/8b623673e6e280d3ad1a3053d615a2defaaf53a1)) + +## [2.0.95](https://github.com/LLK/scratch-gui/compare/v2.0.94...v2.0.95) (2023-08-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.28 ([ce4eaa8](https://github.com/LLK/scratch-gui/commit/ce4eaa8ee4d0904d2c8541a098276e88d9d94444)) + +## [2.0.94](https://github.com/LLK/scratch-gui/compare/v2.0.93...v2.0.94) (2023-08-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.97 ([b6064c9](https://github.com/LLK/scratch-gui/commit/b6064c93d7ccf43f35a050d1de7e430ec7b72af3)) + +## [2.0.93](https://github.com/LLK/scratch-gui/compare/v2.0.92...v2.0.93) (2023-08-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230806032218 ([d0ca40e](https://github.com/LLK/scratch-gui/commit/d0ca40ebda58e85b61a666149350d7ae6fb41ef0)) + +## [2.0.92](https://github.com/LLK/scratch-gui/compare/v2.0.91...v2.0.92) (2023-08-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.96 ([3ac46ee](https://github.com/LLK/scratch-gui/commit/3ac46ee7c981a62de7e00f93ba9ee510e3163aaf)) + +## [2.0.91](https://github.com/LLK/scratch-gui/compare/v2.0.90...v2.0.91) (2023-08-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.27 ([c432ca2](https://github.com/LLK/scratch-gui/commit/c432ca24746a360f428554d2dfc1f040fc59ba50)) + +## [2.0.90](https://github.com/LLK/scratch-gui/compare/v2.0.89...v2.0.90) (2023-08-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230805033815 ([714b99c](https://github.com/LLK/scratch-gui/commit/714b99c596ee1ee716450c3fc4187369d06a8baa)) + +## [2.0.89](https://github.com/LLK/scratch-gui/compare/v2.0.88...v2.0.89) (2023-08-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.95 ([cf2b910](https://github.com/LLK/scratch-gui/commit/cf2b91023db283c01c834b64c96be43703be69b9)) + +## [2.0.88](https://github.com/LLK/scratch-gui/compare/v2.0.87...v2.0.88) (2023-08-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.26 ([2691265](https://github.com/LLK/scratch-gui/commit/2691265a2222fb6bb28fbe7349d51cf6fac7ae44)) + +## [2.0.87](https://github.com/LLK/scratch-gui/compare/v2.0.86...v2.0.87) (2023-08-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230804032241 ([be9ab44](https://github.com/LLK/scratch-gui/commit/be9ab444dff346bb11b2f755c160dffd9d56faab)) + +## [2.0.86](https://github.com/LLK/scratch-gui/compare/v2.0.85...v2.0.86) (2023-08-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.25 ([58d1fa8](https://github.com/LLK/scratch-gui/commit/58d1fa8ee9f7004cd492a9a9ab5700b44bfd33b3)) + +## [2.0.85](https://github.com/LLK/scratch-gui/compare/v2.0.84...v2.0.85) (2023-08-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.94 ([d5d46a5](https://github.com/LLK/scratch-gui/commit/d5d46a52be87a0a2c762d4cf9b3f75b1dcc20d88)) + +## [2.0.84](https://github.com/LLK/scratch-gui/compare/v2.0.83...v2.0.84) (2023-08-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230803032217 ([ca96050](https://github.com/LLK/scratch-gui/commit/ca96050b97544b774fd774fdca37d63d363e152d)) + +## [2.0.83](https://github.com/LLK/scratch-gui/compare/v2.0.82...v2.0.83) (2023-08-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.93 ([16224e9](https://github.com/LLK/scratch-gui/commit/16224e9fb73cdeaef3730ddbb9a7651410ce5d1d)) + +## [2.0.82](https://github.com/LLK/scratch-gui/compare/v2.0.81...v2.0.82) (2023-08-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.24 ([5639afb](https://github.com/LLK/scratch-gui/commit/5639afbad2108a7bb0790171d9a9f3ab0d88b57d)) + +## [2.0.81](https://github.com/LLK/scratch-gui/compare/v2.0.80...v2.0.81) (2023-08-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230802032213 ([8b4f1d0](https://github.com/LLK/scratch-gui/commit/8b4f1d0392e71c62cbfc310c93256e2e4e374070)) + +## [2.0.80](https://github.com/LLK/scratch-gui/compare/v2.0.79...v2.0.80) (2023-08-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230801032207 ([3d0f575](https://github.com/LLK/scratch-gui/commit/3d0f5750431e084edf86ba2d9cb8a6761ab018f1)) +* **deps:** update dependency scratch-paint to v2.0.23 ([669d58a](https://github.com/LLK/scratch-gui/commit/669d58a04f013ba87d9e7bda4fa7327b78f8e342)) +* **deps:** update dependency scratch-vm to v1.5.92 ([bbfefa8](https://github.com/LLK/scratch-gui/commit/bbfefa8b77ebd0bf9c2e02f5dd013cc46c0fc5c0)) + +## [2.0.79](https://github.com/LLK/scratch-gui/compare/v2.0.78...v2.0.79) (2023-08-01) + + +### Bug Fixes + +* attempt to fix semantic-release hotfix handling ([d9518c6](https://github.com/LLK/scratch-gui/commit/d9518c6841ba45d11dce7ecb177fac1ed5db6543)) +* **deps:** update dependency scratch-vm to v1.5.91 ([a816d8c](https://github.com/LLK/scratch-gui/commit/a816d8c0bec05edbff2d5238cb32f98176a58e72)) +* support both addListener and addEventListener ([aeb7617](https://github.com/LLK/scratch-gui/commit/aeb7617fdfa971027f78039b1694355f71463dfa)) +* support browsers that don't implement 'prefers-contrast' media query ([f21814b](https://github.com/LLK/scratch-gui/commit/f21814b11ea31c8b74d01dc9564bb504a987c71e)) +* update prepublish script to use correct path separator ([216beb0](https://github.com/LLK/scratch-gui/commit/216beb02da36e0883cf118fdbf68c65b5bd50799)) + +## [2.0.78](https://github.com/LLK/scratch-gui/compare/v2.0.77...v2.0.78) (2023-07-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.22 ([3369e7c](https://github.com/LLK/scratch-gui/commit/3369e7c1f86f5578e274d4b4145a90ff7e08b287)) + +## [2.0.77](https://github.com/LLK/scratch-gui/compare/v2.0.76...v2.0.77) (2023-07-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230718081157 ([c3d4adb](https://github.com/LLK/scratch-gui/commit/c3d4adbd4aa6ada4a2f3759e9c5753f1201fe37e)) + +## [2.0.76](https://github.com/LLK/scratch-gui/compare/v2.0.75...v2.0.76) (2023-07-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230718032211 ([8091436](https://github.com/LLK/scratch-gui/commit/8091436df164b47fd37392759494627d6d4b1d79)) + +## [2.0.75](https://github.com/LLK/scratch-gui/compare/v2.0.74...v2.0.75) (2023-07-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.21 ([9ecc654](https://github.com/LLK/scratch-gui/commit/9ecc65412bf40366a2b7b5c22c1b849ee77c67a8)) + +## [2.0.74](https://github.com/LLK/scratch-gui/compare/v2.0.73...v2.0.74) (2023-07-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230717081644 ([9d8ebd6](https://github.com/LLK/scratch-gui/commit/9d8ebd62a96a60977e3658a55d698388d1342f4a)) + +## [2.0.73](https://github.com/LLK/scratch-gui/compare/v2.0.72...v2.0.73) (2023-07-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.90 ([e0aedff](https://github.com/LLK/scratch-gui/commit/e0aedff9471e684570d094f0f5f0f4a1579fbf25)) + +## [2.0.72](https://github.com/LLK/scratch-gui/compare/v2.0.71...v2.0.72) (2023-07-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230717032228 ([bf1b178](https://github.com/LLK/scratch-gui/commit/bf1b178a8d7781b65e8966cf2c5d0b90b53cfcd9)) + +## [2.0.71](https://github.com/LLK/scratch-gui/compare/v2.0.70...v2.0.71) (2023-07-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.89 ([064114e](https://github.com/LLK/scratch-gui/commit/064114e834266c7e3d4aabc4e508ce8dc9d311e9)) + +## [2.0.70](https://github.com/LLK/scratch-gui/compare/v2.0.69...v2.0.70) (2023-07-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.20 ([72ba8ec](https://github.com/LLK/scratch-gui/commit/72ba8ec4ba248c3c714d4ca271e4c6863d0192fb)) + +## [2.0.69](https://github.com/LLK/scratch-gui/compare/v2.0.68...v2.0.69) (2023-07-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230714070613 ([aad0cc8](https://github.com/LLK/scratch-gui/commit/aad0cc8c73f10807a1e9a0b9579621a1cd409645)) + +## [2.0.68](https://github.com/LLK/scratch-gui/compare/v2.0.67...v2.0.68) (2023-07-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230714032252 ([c06999b](https://github.com/LLK/scratch-gui/commit/c06999b12cc23a027a97e7e5068c0710b6cf27b6)) + +## [2.0.67](https://github.com/LLK/scratch-gui/compare/v2.0.66...v2.0.67) (2023-07-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.88 ([e600dd8](https://github.com/LLK/scratch-gui/commit/e600dd8bb9ff2016a4e1d3328c35cf4c9ba85474)) + +## [2.0.66](https://github.com/LLK/scratch-gui/compare/v2.0.65...v2.0.66) (2023-07-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.19 ([ccd48ee](https://github.com/LLK/scratch-gui/commit/ccd48ee5160b6838ec9350f941195f81e6c836a2)) + +## [2.0.65](https://github.com/LLK/scratch-gui/compare/v2.0.64...v2.0.65) (2023-07-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230713071047 ([2a52b49](https://github.com/LLK/scratch-gui/commit/2a52b496224103dd832575eb841e047b97632b95)) + +## [2.0.64](https://github.com/LLK/scratch-gui/compare/v2.0.63...v2.0.64) (2023-07-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230713032224 ([a59d1ae](https://github.com/LLK/scratch-gui/commit/a59d1ae155975b7d28aab9300f827ea3fdbfd2fc)) + +## [2.0.63](https://github.com/LLK/scratch-gui/compare/v2.0.62...v2.0.63) (2023-07-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.18 ([28e45de](https://github.com/LLK/scratch-gui/commit/28e45de1d3e2f8a20e716bc2275e541813f8e202)) + +## [2.0.62](https://github.com/LLK/scratch-gui/compare/v2.0.61...v2.0.62) (2023-07-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230712084522 ([c58cf19](https://github.com/LLK/scratch-gui/commit/c58cf193036cc88e8cc1671b6a7fb9f23359af3d)) + +## [2.0.61](https://github.com/LLK/scratch-gui/compare/v2.0.60...v2.0.61) (2023-07-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230712032154 ([ee2dd7b](https://github.com/LLK/scratch-gui/commit/ee2dd7b5de1a465724086f4b5bd350edb944b0f1)) + +## [2.0.60](https://github.com/LLK/scratch-gui/compare/v2.0.59...v2.0.60) (2023-07-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.86 ([b8724f2](https://github.com/LLK/scratch-gui/commit/b8724f2dac2ebdc024031b6324594157f035695b)) + +## [2.0.59](https://github.com/LLK/scratch-gui/compare/v2.0.58...v2.0.59) (2023-07-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.17 ([67ad841](https://github.com/LLK/scratch-gui/commit/67ad841aed8a5726c2a47c498263db49be762a4a)) + +## [2.0.58](https://github.com/LLK/scratch-gui/compare/v2.0.57...v2.0.58) (2023-07-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230711032212 ([b5ec179](https://github.com/LLK/scratch-gui/commit/b5ec179ec7d46f6822807fed12d7bd3d11288bbd)) + +## [2.0.57](https://github.com/LLK/scratch-gui/compare/v2.0.56...v2.0.57) (2023-07-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230711063109 ([5f6f239](https://github.com/LLK/scratch-gui/commit/5f6f23955972903391dc3557591308fdab88f481)) + +## [2.0.56](https://github.com/LLK/scratch-gui/compare/v2.0.55...v2.0.56) (2023-07-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.85 ([23677ca](https://github.com/LLK/scratch-gui/commit/23677ca4055f9a55b6062fd6a7902c32421f0361)) + +## [2.0.55](https://github.com/LLK/scratch-gui/compare/v2.0.54...v2.0.55) (2023-07-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20230710194419 ([1852705](https://github.com/LLK/scratch-gui/commit/185270566025298945964735f547a6d195601789)) + +## [2.0.54](https://github.com/LLK/scratch-gui/compare/v2.0.53...v2.0.54) (2023-07-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-svg-renderer to v0.2.0-prerelease.20230710144521 ([14711cd](https://github.com/LLK/scratch-gui/commit/14711cd73dcfc55bf8a7cb499bb3ece22302aa86)) + +## [2.0.53](https://github.com/LLK/scratch-gui/compare/v2.0.52...v2.0.53) (2023-07-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.84 ([83468a3](https://github.com/LLK/scratch-gui/commit/83468a37226330acf4720c82e9a6c81bc4e54854)) + +## [2.0.52](https://github.com/LLK/scratch-gui/compare/v2.0.51...v2.0.52) (2023-07-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.16 ([04bb2ab](https://github.com/LLK/scratch-gui/commit/04bb2abe334cb5dd3da5b9ccf1f5f3f70bb5df96)) + +## [2.0.51](https://github.com/LLK/scratch-gui/compare/v2.0.50...v2.0.51) (2023-07-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230709073927 ([95b3977](https://github.com/LLK/scratch-gui/commit/95b39773dc081dec229f3a93c1440375932b493e)) + +## [2.0.50](https://github.com/LLK/scratch-gui/compare/v2.0.49...v2.0.50) (2023-07-09) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230709032152 ([d3f9f17](https://github.com/LLK/scratch-gui/commit/d3f9f17fc3b6b7a39541b3aa849d681ff616259e)) + +## [2.0.49](https://github.com/LLK/scratch-gui/compare/v2.0.48...v2.0.49) (2023-07-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.83 ([410f342](https://github.com/LLK/scratch-gui/commit/410f3426e817b25dec5bc14e7c3e55ebd71e3546)) + +## [2.0.48](https://github.com/LLK/scratch-gui/compare/v2.0.47...v2.0.48) (2023-07-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.15 ([9fd1f3e](https://github.com/LLK/scratch-gui/commit/9fd1f3e32441f32daf428254c2641211ea0a81fa)) + +## [2.0.47](https://github.com/LLK/scratch-gui/compare/v2.0.46...v2.0.47) (2023-07-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230707073425 ([7cac753](https://github.com/LLK/scratch-gui/commit/7cac75304b0b262fcdb7af34dd0f5ffc19278464)) + +## [2.0.46](https://github.com/LLK/scratch-gui/compare/v2.0.45...v2.0.46) (2023-07-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230707032150 ([aae8366](https://github.com/LLK/scratch-gui/commit/aae83666961f26a56ec65dbc6b23405dcb61dc1b)) + +## [2.0.45](https://github.com/LLK/scratch-gui/compare/v2.0.44...v2.0.45) (2023-07-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.82 ([88a8b94](https://github.com/LLK/scratch-gui/commit/88a8b944911869c0a9e1aca8c8aec19b42e2124a)) + +## [2.0.44](https://github.com/LLK/scratch-gui/compare/v2.0.43...v2.0.44) (2023-07-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.14 ([c55997e](https://github.com/LLK/scratch-gui/commit/c55997efb6e5afc219ec6d04f42d5c569f34ffe2)) + +## [2.0.43](https://github.com/LLK/scratch-gui/compare/v2.0.42...v2.0.43) (2023-07-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230706063438 ([a74d8ef](https://github.com/LLK/scratch-gui/commit/a74d8ef74bc838feb69bfe162aa7696da7ee0ef4)) + +## [2.0.42](https://github.com/LLK/scratch-gui/compare/v2.0.41...v2.0.42) (2023-07-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230706032213 ([5da2ed3](https://github.com/LLK/scratch-gui/commit/5da2ed3dd7594e82f7f88a87cf777c334a9343e1)) + +## [2.0.41](https://github.com/LLK/scratch-gui/compare/v2.0.40...v2.0.41) (2023-07-05) + + +### Bug Fixes + +* support browsers that don't implement 'prefers-contrast' media query ([04a8de2](https://github.com/LLK/scratch-gui/commit/04a8de21bb895d3b5515939d4da5475b2c3fdb3d)) + +## [2.0.40](https://github.com/LLK/scratch-gui/compare/v2.0.39...v2.0.40) (2023-07-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.81 ([0396c54](https://github.com/LLK/scratch-gui/commit/0396c54b64e28ca9ff328ce097ef706cb5a47a2c)) + +## [2.0.39](https://github.com/LLK/scratch-gui/compare/v2.0.38...v2.0.39) (2023-07-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.13 ([428eaa1](https://github.com/LLK/scratch-gui/commit/428eaa1996fcb186763fcecc0bff512d71fb9b98)) + +## [2.0.38](https://github.com/LLK/scratch-gui/compare/v2.0.37...v2.0.38) (2023-07-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230704074535 ([8ee0717](https://github.com/LLK/scratch-gui/commit/8ee071741836d46df3e02498231b50859a86a9af)) + +## [2.0.37](https://github.com/LLK/scratch-gui/compare/v2.0.36...v2.0.37) (2023-07-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230704032156 ([e8f74cc](https://github.com/LLK/scratch-gui/commit/e8f74cc21b83b1a9a2ee91fa78d426db224586dd)) + +## [2.0.36](https://github.com/LLK/scratch-gui/compare/v2.0.35...v2.0.36) (2023-07-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.12 ([c9164c2](https://github.com/LLK/scratch-gui/commit/c9164c2f227655a7b9c325ab3c14bf6fdb839981)) + +## [2.0.35](https://github.com/LLK/scratch-gui/compare/v2.0.34...v2.0.35) (2023-07-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.80 ([6c38eb6](https://github.com/LLK/scratch-gui/commit/6c38eb645da81a1231dfe58cd23dd4814a3a06b6)) + +## [2.0.34](https://github.com/LLK/scratch-gui/compare/v2.0.33...v2.0.34) (2023-07-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230703063654 ([eb2d272](https://github.com/LLK/scratch-gui/commit/eb2d272b2cd624869e0e13413d83e7c4d6121fc2)) + +## [2.0.33](https://github.com/LLK/scratch-gui/compare/v2.0.32...v2.0.33) (2023-07-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230703032155 ([4b35160](https://github.com/LLK/scratch-gui/commit/4b351603aaab8616b5f7a36eac199fa5652368a8)) + +## [2.0.32](https://github.com/LLK/scratch-gui/compare/v2.0.31...v2.0.32) (2023-07-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.79 ([74bb771](https://github.com/LLK/scratch-gui/commit/74bb771004cac53080c43260b7393009d3f58b74)) + +## [2.0.31](https://github.com/LLK/scratch-gui/compare/v2.0.30...v2.0.31) (2023-07-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230702074136 ([0411bd1](https://github.com/LLK/scratch-gui/commit/0411bd13df51d6f2ba6f908b0716edab6228d769)) + +## [2.0.30](https://github.com/LLK/scratch-gui/compare/v2.0.29...v2.0.30) (2023-07-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.11 ([21f121a](https://github.com/LLK/scratch-gui/commit/21f121a2bec9a9bf27f396ae4eab727313a280ed)) + +## [2.0.29](https://github.com/LLK/scratch-gui/compare/v2.0.28...v2.0.29) (2023-07-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230702032144 ([04cb0c7](https://github.com/LLK/scratch-gui/commit/04cb0c7d9b97db10e0f100e180dcd9db3117276b)) + +## [2.0.28](https://github.com/LLK/scratch-gui/compare/v2.0.27...v2.0.28) (2023-07-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.78 ([fb82d80](https://github.com/LLK/scratch-gui/commit/fb82d80e828958483ea7093fe4d4bc06c84f1f80)) + +## [2.0.27](https://github.com/LLK/scratch-gui/compare/v2.0.26...v2.0.27) (2023-07-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.8 ([d3d8a92](https://github.com/LLK/scratch-gui/commit/d3d8a92b8671e93005e3b4a339b45e0d7c1c3024)) + +## [2.0.26](https://github.com/LLK/scratch-gui/compare/v2.0.25...v2.0.26) (2023-07-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.10 ([c1262d0](https://github.com/LLK/scratch-gui/commit/c1262d07541431006c49b3e75b1f20a5379bc838)) + +## [2.0.25](https://github.com/LLK/scratch-gui/compare/v2.0.24...v2.0.25) (2023-07-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230701032155 ([6c9a52c](https://github.com/LLK/scratch-gui/commit/6c9a52cf071673f97851f99c35535f5128dfd2c3)) + +## [2.0.24](https://github.com/LLK/scratch-gui/compare/v2.0.23...v2.0.24) (2023-07-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230701102434 ([2622414](https://github.com/LLK/scratch-gui/commit/26224146d23ee738f54ba9c27fc361ab449f3f6f)) + +## [2.0.23](https://github.com/LLK/scratch-gui/compare/v2.0.22...v2.0.23) (2023-06-30) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.8 ([d6779f7](https://github.com/LLK/scratch-gui/commit/d6779f7da3758dff217f6d75f8b7e41b8a66a9db)) + +## [2.0.23-hotfix.2](https://github.com/LLK/scratch-gui/compare/v2.0.23-hotfix.1...v2.0.23-hotfix.2) (2023-07-05) + + +### Bug Fixes + +* support both addListener and addEventListener ([aeb7617](https://github.com/LLK/scratch-gui/commit/aeb7617fdfa971027f78039b1694355f71463dfa)) + +## [2.0.23-hotfix.1](https://github.com/LLK/scratch-gui/compare/v2.0.22...v2.0.23-hotfix.1) (2023-07-05) + + +### Bug Fixes + +* attempt to fix semantic-release hotfix handling ([d9518c6](https://github.com/LLK/scratch-gui/commit/d9518c6841ba45d11dce7ecb177fac1ed5db6543)) +* support browsers that don't implement 'prefers-contrast' media query ([f21814b](https://github.com/LLK/scratch-gui/commit/f21814b11ea31c8b74d01dc9564bb504a987c71e)) + +## [2.0.22](https://github.com/LLK/scratch-gui/compare/v2.0.21...v2.0.22) (2023-06-30) + + +### Bug Fixes + +* trigger release for GA4 ([c023fe7](https://github.com/LLK/scratch-gui/commit/c023fe77b49110ff6dec5aacf57c7a3c8e215526)) + +## [2.0.21](https://github.com/LLK/scratch-gui/compare/v2.0.20...v2.0.21) (2023-06-30) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230630075614 ([eaddcc9](https://github.com/LLK/scratch-gui/commit/eaddcc926db9e4c140939d8c305c4f9194bf7cb3)) + +## [2.0.20](https://github.com/LLK/scratch-gui/compare/v2.0.19...v2.0.20) (2023-06-30) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230630032209 ([c10f478](https://github.com/LLK/scratch-gui/commit/c10f478c9668cd15693573245891d44d8c46d829)) + +## [2.0.19](https://github.com/LLK/scratch-gui/compare/v2.0.18...v2.0.19) (2023-06-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.7 ([25c5e69](https://github.com/LLK/scratch-gui/commit/25c5e695a3d7bc5fb920a5adccb04eaf860348ca)) + +## [2.0.18](https://github.com/LLK/scratch-gui/compare/v2.0.17...v2.0.18) (2023-06-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230629085902 ([480ae6d](https://github.com/LLK/scratch-gui/commit/480ae6d6139209086f5d46585d69ecf03147054e)) + +## [2.0.17](https://github.com/LLK/scratch-gui/compare/v2.0.16...v2.0.17) (2023-06-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230629032156 ([fc9a485](https://github.com/LLK/scratch-gui/commit/fc9a485cb05e829d3b607120b3b75429601975ce)) + +## [2.0.16](https://github.com/LLK/scratch-gui/compare/v2.0.15...v2.0.16) (2023-06-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.6 ([566fc01](https://github.com/LLK/scratch-gui/commit/566fc01c8c028553138d7ba08306986fd10200af)) + +## [2.0.15](https://github.com/LLK/scratch-gui/compare/v2.0.14...v2.0.15) (2023-06-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230628075940 ([cd12371](https://github.com/LLK/scratch-gui/commit/cd123717ee4bdc19cc235941a61ddf8655642e0a)) + +## [2.0.14](https://github.com/LLK/scratch-gui/compare/v2.0.13...v2.0.14) (2023-06-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230628032227 ([433e280](https://github.com/LLK/scratch-gui/commit/433e28008993461aabd555deac85a4d1bc2c370c)) + +## [2.0.13](https://github.com/LLK/scratch-gui/compare/v2.0.12...v2.0.13) (2023-06-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.5 ([656a334](https://github.com/LLK/scratch-gui/commit/656a334cc54d2a82a9e6d720e51b95806b465b84)) + +## [2.0.12](https://github.com/LLK/scratch-gui/compare/v2.0.11...v2.0.12) (2023-06-27) + + +### Bug Fixes + +* correct localization integration test due to translated label ([f74bdeb](https://github.com/LLK/scratch-gui/commit/f74bdeb233ffbb3cbdef4f7d141c4398429b48f1)) +* **deps:** update dependency scratch-l10n to v3.15.20230627032203 ([d93806e](https://github.com/LLK/scratch-gui/commit/d93806e72602ec17abcdccc03f5abb86dedfe04d)) + +## [2.0.11](https://github.com/LLK/scratch-gui/compare/v2.0.10...v2.0.11) (2023-06-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230627082243 ([2ac680f](https://github.com/LLK/scratch-gui/commit/2ac680f03b7702ab4cd5334ef329dfc3b274f038)) + +## [2.0.10](https://github.com/LLK/scratch-gui/compare/v2.0.9...v2.0.10) (2023-06-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230626121902 ([c491f2d](https://github.com/LLK/scratch-gui/commit/c491f2d7e3f511dd508c0a9d726e3f7e65cef767)) + +## [2.0.9](https://github.com/LLK/scratch-gui/compare/v2.0.8...v2.0.9) (2023-06-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.4 ([207200f](https://github.com/LLK/scratch-gui/commit/207200fde822de5ad478c46875da023dac8fe8ce)) + +## [2.0.8](https://github.com/LLK/scratch-gui/compare/v2.0.7...v2.0.8) (2023-06-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.3 ([df2b60e](https://github.com/LLK/scratch-gui/commit/df2b60ed846421a66003ce2b41e5894a4e5a7937)) + +## [2.0.7](https://github.com/LLK/scratch-gui/compare/v2.0.6...v2.0.7) (2023-06-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230623102553 ([cae68c1](https://github.com/LLK/scratch-gui/commit/cae68c1ddb1aa7582db190df2d44289d4c04c01f)) + +## [2.0.6](https://github.com/LLK/scratch-gui/compare/v2.0.5...v2.0.6) (2023-06-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.2 ([0c10d76](https://github.com/LLK/scratch-gui/commit/0c10d76e6b823f74cd97f1f0c8d5a1b119ce1068)) + +## [2.0.5](https://github.com/LLK/scratch-gui/compare/v2.0.4...v2.0.5) (2023-06-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230622090140 ([76e44ac](https://github.com/LLK/scratch-gui/commit/76e44ac89ca3a043a100973ba1fbe03bf2f56e5b)) + +## [2.0.4](https://github.com/LLK/scratch-gui/compare/v2.0.3...v2.0.4) (2023-06-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v2.0.1 ([650f06a](https://github.com/LLK/scratch-gui/commit/650f06ad16411c39694a368f3eb1df2b39704cc1)) + +## [2.0.3](https://github.com/LLK/scratch-gui/compare/v2.0.2...v2.0.3) (2023-06-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230621061613 ([b62e64b](https://github.com/LLK/scratch-gui/commit/b62e64bb487b9f785e44ce01bfdd415102bfb057)) + +## [2.0.2](https://github.com/LLK/scratch-gui/compare/v2.0.1...v2.0.2) (2023-06-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230621032221 ([359e7d5](https://github.com/LLK/scratch-gui/commit/359e7d55e812bcb79b9db0fc5b1a326494dd86de)) + +## [2.0.1](https://github.com/LLK/scratch-gui/compare/v2.0.0...v2.0.1) (2023-06-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.2.0-prerelease.20230620212954 ([af53a4c](https://github.com/LLK/scratch-gui/commit/af53a4cd96e4f4e8df97d073b07520f09ffb4471)) + +# [2.0.0](https://github.com/LLK/scratch-gui/compare/v1.9.11...v2.0.0) (2023-06-20) + + +### Bug Fixes + +* expire theme cookie in 1 year ([44eb578](https://github.com/LLK/scratch-gui/commit/44eb5781cde3a4d7a304e24f1b6591f2cbab7d50)) +* fix broken account menu ([aaab5d6](https://github.com/LLK/scratch-gui/commit/aaab5d62ad5a4a5e1ad9c1e33004e4b698752d00)) +* update extension title bar color ([4a348d0](https://github.com/LLK/scratch-gui/commit/4a348d0d1adde60e4fd4320dc290a6944f2126b5)) +* use looks secondary rather than tertiary for purple accent ([068e249](https://github.com/LLK/scratch-gui/commit/068e24989ead3a23e6bad18bbd8d47e4d6e30787)) + + +### Features + +* apply color theme to extension categories and blocks ([63d43fb](https://github.com/LLK/scratch-gui/commit/63d43fbc7865bb943f299d15d43dc8b4a1a30549)) +* color theming for monitors based on block category ([563dffb](https://github.com/LLK/scratch-gui/commit/563dffb34ae831c8cfaeed1dbbf27644c520aca8)) +* move language and theme to submenu ([dd8b6fa](https://github.com/LLK/scratch-gui/commit/dd8b6faf6601783e6db853683e5eb33300e5f062)) +* prepare for color theme beta release ([cfab4a2](https://github.com/LLK/scratch-gui/commit/cfab4a2c9eb1fbbc3aecd4422b027b773246cecd)) +* show theme picker in menu ([11560b8](https://github.com/LLK/scratch-gui/commit/11560b84376e9803713684f4bf5399bbda3908f1)) +* store color theme in state ([b2d4021](https://github.com/LLK/scratch-gui/commit/b2d4021455dedc85eb222f323c086f293fd6998b)) +* switch color theme based on operating system preferences ([5b6903c](https://github.com/LLK/scratch-gui/commit/5b6903c7f03d8d3775b51e758e7cfc7c118e94d1)) +* update button styles ([bb00935](https://github.com/LLK/scratch-gui/commit/bb00935e14169e936212d08be5ae3b4b6f26dc32)) +* update to purple accent color ([4139974](https://github.com/LLK/scratch-gui/commit/413997483ffc794a81970af7376b04e816ab7610)) +* use high contrast icons ([0dca3bf](https://github.com/LLK/scratch-gui/commit/0dca3bfe28676158202044947a7f8f6896a7a06e)) +* use updated names for text colors ([9af1272](https://github.com/LLK/scratch-gui/commit/9af1272530147d6b009182ca8fc4c5b6d00617b1)) + + +### BREAKING CHANGES + +* use purple as accent color across the editor + +# [2.0.0-beta.5](https://github.com/LLK/scratch-gui/compare/v2.0.0-beta.4...v2.0.0-beta.5) (2023-06-08) + + +### Bug Fixes + +* update extension title bar color ([4a348d0](https://github.com/LLK/scratch-gui/commit/4a348d0d1adde60e4fd4320dc290a6944f2126b5)) + +# [2.0.0-beta.4](https://github.com/LLK/scratch-gui/compare/v2.0.0-beta.3...v2.0.0-beta.4) (2023-05-31) + + +### Bug Fixes + +* expire theme cookie in 1 year ([44eb578](https://github.com/LLK/scratch-gui/commit/44eb5781cde3a4d7a304e24f1b6591f2cbab7d50)) + +# [2.0.0-beta.3](https://github.com/LLK/scratch-gui/compare/v2.0.0-beta.2...v2.0.0-beta.3) (2023-05-24) + + +### Bug Fixes + +* fix broken account menu ([aaab5d6](https://github.com/LLK/scratch-gui/commit/aaab5d62ad5a4a5e1ad9c1e33004e4b698752d00)) + +# [2.0.0-beta.2](https://github.com/LLK/scratch-gui/compare/v2.0.0-beta.1...v2.0.0-beta.2) (2023-05-22) + + +### Features + +* move language and theme to submenu ([dd8b6fa](https://github.com/LLK/scratch-gui/commit/dd8b6faf6601783e6db853683e5eb33300e5f062)) + +# [2.0.0-beta.1](https://github.com/LLK/scratch-gui/compare/v1.8.53...v2.0.0-beta.1) (2023-05-09) + + +### Bug Fixes + +* use looks secondary rather than tertiary for purple accent ([068e249](https://github.com/LLK/scratch-gui/commit/068e24989ead3a23e6bad18bbd8d47e4d6e30787)) + + +### Features + +* apply color theme to extension categories and blocks ([63d43fb](https://github.com/LLK/scratch-gui/commit/63d43fbc7865bb943f299d15d43dc8b4a1a30549)) +* color theming for monitors based on block category ([563dffb](https://github.com/LLK/scratch-gui/commit/563dffb34ae831c8cfaeed1dbbf27644c520aca8)) +* prepare for color theme beta release ([cfab4a2](https://github.com/LLK/scratch-gui/commit/cfab4a2c9eb1fbbc3aecd4422b027b773246cecd)) +* show theme picker in menu ([11560b8](https://github.com/LLK/scratch-gui/commit/11560b84376e9803713684f4bf5399bbda3908f1)) +* store color theme in state ([b2d4021](https://github.com/LLK/scratch-gui/commit/b2d4021455dedc85eb222f323c086f293fd6998b)) +* switch color theme based on operating system preferences ([5b6903c](https://github.com/LLK/scratch-gui/commit/5b6903c7f03d8d3775b51e758e7cfc7c118e94d1)) +* update button styles ([bb00935](https://github.com/LLK/scratch-gui/commit/bb00935e14169e936212d08be5ae3b4b6f26dc32)) +* update to purple accent color ([4139974](https://github.com/LLK/scratch-gui/commit/413997483ffc794a81970af7376b04e816ab7610)) +* use high contrast icons ([0dca3bf](https://github.com/LLK/scratch-gui/commit/0dca3bfe28676158202044947a7f8f6896a7a06e)) +* use updated names for text colors ([9af1272](https://github.com/LLK/scratch-gui/commit/9af1272530147d6b009182ca8fc4c5b6d00617b1)) + + +### BREAKING CHANGES + +* use purple as accent color across the editor + +## [1.9.11](https://github.com/LLK/scratch-gui/compare/v1.9.10...v1.9.11) (2023-06-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.73 ([477b3e4](https://github.com/LLK/scratch-gui/commit/477b3e44806764f9b34f410e837b8efb4892232c)) + +## [1.9.10](https://github.com/LLK/scratch-gui/compare/v1.9.9...v1.9.10) (2023-06-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230620032154 ([a5aea68](https://github.com/LLK/scratch-gui/commit/a5aea680472f8361bd7bbb50206c20c3ed35d9ac)) + +## [1.9.9](https://github.com/LLK/scratch-gui/compare/v1.9.8...v1.9.9) (2023-06-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.72 ([c8ac375](https://github.com/LLK/scratch-gui/commit/c8ac37541059d8998522410980a3895006b5e296)) + +## [1.9.8](https://github.com/LLK/scratch-gui/compare/v1.9.7...v1.9.8) (2023-06-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230618032152 ([1db6714](https://github.com/LLK/scratch-gui/commit/1db67142461fffaa6d9ccf35dc479e674b3d87ba)) + +## [1.9.7](https://github.com/LLK/scratch-gui/compare/v1.9.6...v1.9.7) (2023-06-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.71 ([dfb72de](https://github.com/LLK/scratch-gui/commit/dfb72de19b7e9450b8e21edb322785879c5d5c21)) + +## [1.9.6](https://github.com/LLK/scratch-gui/compare/v1.9.5...v1.9.6) (2023-06-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230617032419 ([48d69be](https://github.com/LLK/scratch-gui/commit/48d69be1dd5830f5b629f311c7de535c5b241960)) + +## [1.9.5](https://github.com/LLK/scratch-gui/compare/v1.9.4...v1.9.5) (2023-06-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.70 ([47d5114](https://github.com/LLK/scratch-gui/commit/47d5114ed889ce150ab37daa0159d62964cf7f8a)) + +## [1.9.4](https://github.com/LLK/scratch-gui/compare/v1.9.3...v1.9.4) (2023-06-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230616032229 ([b94800e](https://github.com/LLK/scratch-gui/commit/b94800e463731ec9e24d2c40e2ff624ff20d505e)) + +## [1.9.3](https://github.com/LLK/scratch-gui/compare/v1.9.2...v1.9.3) (2023-06-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.69 ([655636c](https://github.com/LLK/scratch-gui/commit/655636c30326b6eee623c28a474fe31502cd8369)) + +## [1.9.2](https://github.com/LLK/scratch-gui/compare/v1.9.1...v1.9.2) (2023-06-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230615032202 ([b043e6b](https://github.com/LLK/scratch-gui/commit/b043e6bbf06f1c581954e41a3afe90714c40ca1e)) + +## [1.9.1](https://github.com/LLK/scratch-gui/compare/v1.9.0...v1.9.1) (2023-06-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230614032217 ([e0a6d0c](https://github.com/LLK/scratch-gui/commit/e0a6d0c384ae76abdaa14e9b4181f651b3eff039)) + +# [1.9.0](https://github.com/LLK/scratch-gui/compare/v1.8.109...v1.9.0) (2023-06-14) + + +### Bug Fixes + +* balance wrapped text where appropriate in connection flow ([369b483](https://github.com/LLK/scratch-gui/commit/369b483356fc23333c615c642017c3b9ee38fe07)) +* implement the majority of the micro:bit update UX design ([b6c2c9f](https://github.com/LLK/scratch-gui/commit/b6c2c9ffdfe65b52b8e4c46396ef7b066bc3bf86)) +* increase distance between lines of text in the connection modal ([b4ebe87](https://github.com/LLK/scratch-gui/commit/b4ebe8746c876cb9cbf8f754e8fd3ea3542b945a)) +* reduced svg files ([90850e8](https://github.com/LLK/scratch-gui/commit/90850e849b3df0d14e1903b2ecbd1ca8d9e5a6e2)) + + +### Features + +* actually update micro:bit, avoid 'firmware' term ([7a94d61](https://github.com/LLK/scratch-gui/commit/7a94d619a4fe2b30bf3a5535540f140f8d185872)) +* handle errors during micro:bit update ([9c323bf](https://github.com/LLK/scratch-gui/commit/9c323bf8ffdee63ec8ddf9c323fcf7c460fbb25c)) +* rough in a firmware update flow ([3b2b013](https://github.com/LLK/scratch-gui/commit/3b2b013cacc8cb979e353d07a3459695db6fb7d7)) + +## [1.8.109](https://github.com/LLK/scratch-gui/compare/v1.8.108...v1.8.109) (2023-06-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230607032205 ([72a45e5](https://github.com/LLK/scratch-gui/commit/72a45e5d504511af30ad50327e2502e3d7956b0c)) + +## [1.8.108](https://github.com/LLK/scratch-gui/compare/v1.8.107...v1.8.108) (2023-06-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230606032220 ([1765964](https://github.com/LLK/scratch-gui/commit/1765964ece6db736e8426f899421086205990c58)) + +## [1.8.107](https://github.com/LLK/scratch-gui/compare/v1.8.106...v1.8.107) (2023-06-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230605032207 ([8665a46](https://github.com/LLK/scratch-gui/commit/8665a465fba114b45e9bc6af871255023d77eb41)) + +## [1.8.106](https://github.com/LLK/scratch-gui/compare/v1.8.105...v1.8.106) (2023-05-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.76 ([6400f2c](https://github.com/LLK/scratch-gui/commit/6400f2c114e1d5c609dbdf434cfb5bc2d1394d90)) + +## [1.8.105](https://github.com/LLK/scratch-gui/compare/v1.8.104...v1.8.105) (2023-05-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.68 ([3aa658e](https://github.com/LLK/scratch-gui/commit/3aa658ea433798678edce1f5255d72dc47a3e706)) + +## [1.8.104](https://github.com/LLK/scratch-gui/compare/v1.8.103...v1.8.104) (2023-05-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230527085947 ([042e5d2](https://github.com/LLK/scratch-gui/commit/042e5d2f72aafa8a1cefd0f731ceb66b0fadf76b)) + +## [1.8.103](https://github.com/LLK/scratch-gui/compare/v1.8.102...v1.8.103) (2023-05-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.75 ([934d534](https://github.com/LLK/scratch-gui/commit/934d534d3202ce394c0ef5f8978b9c5a66bdb368)) + +## [1.8.102](https://github.com/LLK/scratch-gui/compare/v1.8.101...v1.8.102) (2023-05-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230527032201 ([e9a079a](https://github.com/LLK/scratch-gui/commit/e9a079adeb20ed517f0bb135a6dfa36ad0fad2de)) + +## [1.8.101](https://github.com/LLK/scratch-gui/compare/v1.8.100...v1.8.101) (2023-05-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.67 ([c071eff](https://github.com/LLK/scratch-gui/commit/c071eff2dd755c330c26fe0992808c4c11c2d5b9)) + +## [1.8.100](https://github.com/LLK/scratch-gui/compare/v1.8.99...v1.8.100) (2023-05-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230526065222 ([07971dd](https://github.com/LLK/scratch-gui/commit/07971dd81fad37cad0b805ba95bda2549c4cb6d6)) + +## [1.8.99](https://github.com/LLK/scratch-gui/compare/v1.8.98...v1.8.99) (2023-05-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230526032224 ([4c21024](https://github.com/LLK/scratch-gui/commit/4c210246c98da9079daafc401faa5b2b4e78d05b)) + +## [1.8.98](https://github.com/LLK/scratch-gui/compare/v1.8.97...v1.8.98) (2023-05-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.72 ([f55d5ef](https://github.com/LLK/scratch-gui/commit/f55d5ef790ddd6ad1d01f91c4a6208fdf5775a69)) + +## [1.8.97](https://github.com/LLK/scratch-gui/compare/v1.8.96...v1.8.97) (2023-05-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.66 ([f04f180](https://github.com/LLK/scratch-gui/commit/f04f1809de3d312060627f89657946b380f7738b)) + +## [1.8.96](https://github.com/LLK/scratch-gui/compare/v1.8.95...v1.8.96) (2023-05-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230524032205 ([83781df](https://github.com/LLK/scratch-gui/commit/83781df578db461610a038978eaafe2db294811d)) + +## [1.8.95](https://github.com/LLK/scratch-gui/compare/v1.8.94...v1.8.95) (2023-05-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230524083459 ([79965db](https://github.com/LLK/scratch-gui/commit/79965db0246c22209eaa1437bad8051307dac183)) + +## [1.8.94](https://github.com/LLK/scratch-gui/compare/v1.8.93...v1.8.94) (2023-05-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.70 ([b5712b3](https://github.com/LLK/scratch-gui/commit/b5712b38a451f76ac8a4b7f7948b95d8799631e7)) + +## [1.8.93](https://github.com/LLK/scratch-gui/compare/v1.8.92...v1.8.93) (2023-05-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230523084423 ([deecc72](https://github.com/LLK/scratch-gui/commit/deecc7241e0d2ecae6fcc653140a288b412139bf)) + +## [1.8.92](https://github.com/LLK/scratch-gui/compare/v1.8.91...v1.8.92) (2023-05-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.65 ([92e7707](https://github.com/LLK/scratch-gui/commit/92e770700cb45d8b1eb14f9e6935fc7d3554c638)) + +## [1.8.91](https://github.com/LLK/scratch-gui/compare/v1.8.90...v1.8.91) (2023-05-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230523032203 ([c7c87e8](https://github.com/LLK/scratch-gui/commit/c7c87e85f6fd7ce34c5c5cd30ea2dc8327a00f57)) + +## [1.8.90](https://github.com/LLK/scratch-gui/compare/v1.8.89...v1.8.90) (2023-05-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.68 ([685e23d](https://github.com/LLK/scratch-gui/commit/685e23d6e2cd155c335afc468109caba2abca1da)) + +## [1.8.89](https://github.com/LLK/scratch-gui/compare/v1.8.88...v1.8.89) (2023-05-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.64 ([77b1ff4](https://github.com/LLK/scratch-gui/commit/77b1ff4f618608f5970bc0503f227eabaaba77f5)) + +## [1.8.88](https://github.com/LLK/scratch-gui/compare/v1.8.87...v1.8.88) (2023-05-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230521064828 ([9fa142c](https://github.com/LLK/scratch-gui/commit/9fa142c8d58c30e55261cb1fce0772af2b59c456)) + +## [1.8.87](https://github.com/LLK/scratch-gui/compare/v1.8.86...v1.8.87) (2023-05-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230521032145 ([8872f25](https://github.com/LLK/scratch-gui/commit/8872f25c2d9368c6867324a10cb2628649bac67a)) + +## [1.8.86](https://github.com/LLK/scratch-gui/compare/v1.8.85...v1.8.86) (2023-05-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.66 ([66e5c01](https://github.com/LLK/scratch-gui/commit/66e5c0125f54128798e8f60bf2c493246c4aad71)) + +## [1.8.85](https://github.com/LLK/scratch-gui/compare/v1.8.84...v1.8.85) (2023-05-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.63 ([13d3b4a](https://github.com/LLK/scratch-gui/commit/13d3b4a53b5a8ea9bc84cfe21b116e5690ed7847)) + +## [1.8.84](https://github.com/LLK/scratch-gui/compare/v1.8.83...v1.8.84) (2023-05-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230520100114 ([b64422a](https://github.com/LLK/scratch-gui/commit/b64422a1885128b546b2f811977ea31c038e1543)) + +## [1.8.83](https://github.com/LLK/scratch-gui/compare/v1.8.82...v1.8.83) (2023-05-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230520032146 ([f663ea6](https://github.com/LLK/scratch-gui/commit/f663ea694cc413d94a387297174a2a9024719e04)) + +## [1.8.82](https://github.com/LLK/scratch-gui/compare/v1.8.81...v1.8.82) (2023-05-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.62 ([b00d289](https://github.com/LLK/scratch-gui/commit/b00d2894d85edf7444d3243bc2823578019bc383)) + +## [1.8.81](https://github.com/LLK/scratch-gui/compare/v1.8.80...v1.8.81) (2023-05-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230519074923 ([f8b20a1](https://github.com/LLK/scratch-gui/commit/f8b20a1a0403794a5c60a3d66f12d42a87426cd0)) + +## [1.8.80](https://github.com/LLK/scratch-gui/compare/v1.8.79...v1.8.80) (2023-05-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230519032230 ([c19f6e3](https://github.com/LLK/scratch-gui/commit/c19f6e33ecf4f6f73afb3b7018714096dca385d4)) + +## [1.8.79](https://github.com/LLK/scratch-gui/compare/v1.8.78...v1.8.79) (2023-05-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.62 ([11b8b72](https://github.com/LLK/scratch-gui/commit/11b8b72d65654fcdfe4acf44961a4dd0c7ce1d9c)) + +## [1.8.78](https://github.com/LLK/scratch-gui/compare/v1.8.77...v1.8.78) (2023-05-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230518061912 ([9b7584c](https://github.com/LLK/scratch-gui/commit/9b7584c1d977c9ddb9167215707458c99a72c08e)) + +## [1.8.77](https://github.com/LLK/scratch-gui/compare/v1.8.76...v1.8.77) (2023-05-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.61 ([fcac42a](https://github.com/LLK/scratch-gui/commit/fcac42a5d40f10634abc1de5a081fd27d1bd326f)) + +## [1.8.76](https://github.com/LLK/scratch-gui/compare/v1.8.75...v1.8.76) (2023-05-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230518032217 ([5aa676b](https://github.com/LLK/scratch-gui/commit/5aa676b87090e6bf97db8fe788ec2f1094448512)) + +## [1.8.75](https://github.com/LLK/scratch-gui/compare/v1.8.74...v1.8.75) (2023-05-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.60 ([af32bd2](https://github.com/LLK/scratch-gui/commit/af32bd22f89180fbb8f0c5f1ef54a503551d154a)) + +## [1.8.74](https://github.com/LLK/scratch-gui/compare/v1.8.73...v1.8.74) (2023-05-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.60 ([a264b47](https://github.com/LLK/scratch-gui/commit/a264b47d5c00439bcbdf08cba187b914cf84dab3)) + +## [1.8.73](https://github.com/LLK/scratch-gui/compare/v1.8.72...v1.8.73) (2023-05-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230517032217 ([3436078](https://github.com/LLK/scratch-gui/commit/34360786e90b5020b1fa9e605b053dc306283da5)) + +## [1.8.72](https://github.com/LLK/scratch-gui/compare/v1.8.71...v1.8.72) (2023-05-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.59 ([fcbd2a1](https://github.com/LLK/scratch-gui/commit/fcbd2a1615a6cf699370017595fe3a7029bddb5f)) + +## [1.8.71](https://github.com/LLK/scratch-gui/compare/v1.8.70...v1.8.71) (2023-05-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230516070511 ([89cf84d](https://github.com/LLK/scratch-gui/commit/89cf84d425bdd9ea11bdb96f34b067522ffd283f)) + +## [1.8.70](https://github.com/LLK/scratch-gui/compare/v1.8.69...v1.8.70) (2023-05-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230516032248 ([cfb36d3](https://github.com/LLK/scratch-gui/commit/cfb36d3d7e552742524acc87a03931236bb3517a)) + +## [1.8.69](https://github.com/LLK/scratch-gui/compare/v1.8.68...v1.8.69) (2023-05-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.58 ([ee4ef50](https://github.com/LLK/scratch-gui/commit/ee4ef50054629782fd221c4553c34280e4d011c9)) + +## [1.8.68](https://github.com/LLK/scratch-gui/compare/v1.8.67...v1.8.68) (2023-05-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230515032159 ([ea02aaa](https://github.com/LLK/scratch-gui/commit/ea02aaa258430a995012842e157b01d67b015734)) + +## [1.8.67](https://github.com/LLK/scratch-gui/compare/v1.8.66...v1.8.67) (2023-05-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230515053831 ([e1690bb](https://github.com/LLK/scratch-gui/commit/e1690bbd61ad9e63a8a6c6f2d4ae928f6e03ba55)) + +## [1.8.66](https://github.com/LLK/scratch-gui/compare/v1.8.65...v1.8.66) (2023-05-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.55 ([30c900f](https://github.com/LLK/scratch-gui/commit/30c900f08f8a4c84fe4f501e1a0fddee8cba9be0)) + +## [1.8.65](https://github.com/LLK/scratch-gui/compare/v1.8.64...v1.8.65) (2023-05-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230514130525 ([7e1686e](https://github.com/LLK/scratch-gui/commit/7e1686e2e65f9a0bbe82ec89da65fce3de08633d)) + +## [1.8.64](https://github.com/LLK/scratch-gui/compare/v1.8.63...v1.8.64) (2023-05-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.57 ([dd7da55](https://github.com/LLK/scratch-gui/commit/dd7da553d4636e37993fa8fa55a9dff464e8f565)) + +## [1.8.63](https://github.com/LLK/scratch-gui/compare/v1.8.62...v1.8.63) (2023-05-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230514032149 ([4ff77de](https://github.com/LLK/scratch-gui/commit/4ff77de2598d24ab6ebee28c650fa361d419125f)) + +## [1.8.62](https://github.com/LLK/scratch-gui/compare/v1.8.61...v1.8.62) (2023-05-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.53 ([73250e2](https://github.com/LLK/scratch-gui/commit/73250e2d8d970f4770dc48658751350ad4956e96)) + +## [1.8.61](https://github.com/LLK/scratch-gui/compare/v1.8.60...v1.8.61) (2023-05-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.56 ([44a4b5f](https://github.com/LLK/scratch-gui/commit/44a4b5f2010f68fc7188dc18bcc300bbd5d8077e)) + +## [1.8.60](https://github.com/LLK/scratch-gui/compare/v1.8.59...v1.8.60) (2023-05-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230513072326 ([1b05b41](https://github.com/LLK/scratch-gui/commit/1b05b41dee9f8a0b64ecc19ab4292f2ecffddb02)) + +## [1.8.59](https://github.com/LLK/scratch-gui/compare/v1.8.58...v1.8.59) (2023-05-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230513032248 ([e9f65f8](https://github.com/LLK/scratch-gui/commit/e9f65f8e5c29323a97a1f1a24df25e25eb61d507)) + +## [1.8.58](https://github.com/LLK/scratch-gui/compare/v1.8.57...v1.8.58) (2023-05-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230511181220 ([b3b76dc](https://github.com/LLK/scratch-gui/commit/b3b76dcf10a43d1fa6cbc5667642bcd4eca7a2c9)) + +## [1.8.57](https://github.com/LLK/scratch-gui/compare/v1.8.56...v1.8.57) (2023-05-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.50 ([390649f](https://github.com/LLK/scratch-gui/commit/390649faffc2fb76c97d16bfbf13f5f9281720e5)) + +## [1.8.56](https://github.com/LLK/scratch-gui/compare/v1.8.55...v1.8.56) (2023-05-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.55 ([27c19db](https://github.com/LLK/scratch-gui/commit/27c19db5a709f3b794cc89b82795b317bf4f421c)) + +## [1.8.55](https://github.com/LLK/scratch-gui/compare/v1.8.54...v1.8.55) (2023-05-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230510073859 ([edb3b8d](https://github.com/LLK/scratch-gui/commit/edb3b8d9328054c34fa573c61dbd5334a45fb649)) + +## [1.8.54](https://github.com/LLK/scratch-gui/compare/v1.8.53...v1.8.54) (2023-05-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230510032150 ([6ff8ec0](https://github.com/LLK/scratch-gui/commit/6ff8ec06992ba530caa380638c7b5b1886905c2b)) + +## [1.8.53](https://github.com/LLK/scratch-gui/compare/v1.8.52...v1.8.53) (2023-05-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.48 ([f93646b](https://github.com/LLK/scratch-gui/commit/f93646b2727f48d6f8a07c5d27760fb8f0b888d4)) + +## [1.8.52](https://github.com/LLK/scratch-gui/compare/v1.8.51...v1.8.52) (2023-05-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.54 ([d96f753](https://github.com/LLK/scratch-gui/commit/d96f75309e0c83df9d24a536e5e95a5b1aaef682)) + +## [1.8.51](https://github.com/LLK/scratch-gui/compare/v1.8.50...v1.8.51) (2023-05-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230507065123 ([36991b8](https://github.com/LLK/scratch-gui/commit/36991b83aea2e88645e74f15dc2f22dd46167b53)) + +## [1.8.50](https://github.com/LLK/scratch-gui/compare/v1.8.49...v1.8.50) (2023-05-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230507032520 ([1190e36](https://github.com/LLK/scratch-gui/commit/1190e36b06e4a5e74d8bbc97c0544ef615a0b9ca)) + +## [1.8.49](https://github.com/LLK/scratch-gui/compare/v1.8.48...v1.8.49) (2023-05-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.46 ([b9dbd7d](https://github.com/LLK/scratch-gui/commit/b9dbd7d150bebc4b7326eef9f12aa0a399e2e98a)) + +## [1.8.48](https://github.com/LLK/scratch-gui/compare/v1.8.47...v1.8.48) (2023-05-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.53 ([e1377d7](https://github.com/LLK/scratch-gui/commit/e1377d723fd502c6edb09d2f8b70f724a01db956)) + +## [1.8.47](https://github.com/LLK/scratch-gui/compare/v1.8.46...v1.8.47) (2023-05-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230503105554 ([076f5bd](https://github.com/LLK/scratch-gui/commit/076f5bd3626d42b43c3f63e4b24d7512c0646642)) + +## [1.8.46](https://github.com/LLK/scratch-gui/compare/v1.8.45...v1.8.46) (2023-05-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230503032153 ([d6c5007](https://github.com/LLK/scratch-gui/commit/d6c5007f0e9aa75c100c9175361fe21eea43f61e)) + +## [1.8.45](https://github.com/LLK/scratch-gui/compare/v1.8.44...v1.8.45) (2023-04-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.44 ([1357c56](https://github.com/LLK/scratch-gui/commit/1357c56011a30e7592c53081630ae0537ae6f998)) + +## [1.8.44](https://github.com/LLK/scratch-gui/compare/v1.8.43...v1.8.44) (2023-04-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.52 ([ac5629d](https://github.com/LLK/scratch-gui/commit/ac5629d018b375a0533f13721b0bdeaa4d4060bc)) + +## [1.8.43](https://github.com/LLK/scratch-gui/compare/v1.8.42...v1.8.43) (2023-04-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230427153222 ([63459fb](https://github.com/LLK/scratch-gui/commit/63459fb903c926737d0367c8bc2d3ed778f90dd0)) + +## [1.8.42](https://github.com/LLK/scratch-gui/compare/v1.8.41...v1.8.42) (2023-04-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230427032156 ([7de74e3](https://github.com/LLK/scratch-gui/commit/7de74e3d61dd225dc315840f2ba3ad39e98ad189)) + +## [1.8.41](https://github.com/LLK/scratch-gui/compare/v1.8.40...v1.8.41) (2023-04-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.42 ([89f4c58](https://github.com/LLK/scratch-gui/commit/89f4c5836ae687ea08bd32638dae454f2f7ffc31)) + +## [1.8.40](https://github.com/LLK/scratch-gui/compare/v1.8.39...v1.8.40) (2023-04-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230424044823 ([4aeffe6](https://github.com/LLK/scratch-gui/commit/4aeffe6287d66f8f14e4b7f4ffb97a5acb4507b7)) + +## [1.8.39](https://github.com/LLK/scratch-gui/compare/v1.8.38...v1.8.39) (2023-04-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.41 ([dea333b](https://github.com/LLK/scratch-gui/commit/dea333b50822d36d37375988fa85e8015708d757)) + +## [1.8.38](https://github.com/LLK/scratch-gui/compare/v1.8.37...v1.8.38) (2023-04-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.51 ([07781d9](https://github.com/LLK/scratch-gui/commit/07781d995df84146a3f4e86c8cafa1fb0f0a5007)) + +## [1.8.37](https://github.com/LLK/scratch-gui/compare/v1.8.36...v1.8.37) (2023-04-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230422032237 ([556b0d1](https://github.com/LLK/scratch-gui/commit/556b0d1ec1bf8d8238e1efe9f4d71c4b972e786b)) + +## [1.8.36](https://github.com/LLK/scratch-gui/compare/v1.8.35...v1.8.36) (2023-04-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230422075643 ([f2c6a6f](https://github.com/LLK/scratch-gui/commit/f2c6a6f181c59b32224debde0431d271610786bc)) + +## [1.8.35](https://github.com/LLK/scratch-gui/compare/v1.8.34...v1.8.35) (2023-04-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230421111455 ([6cc12a9](https://github.com/LLK/scratch-gui/commit/6cc12a921b1de1fa4ded4c54bbcd63369689db23)) + +## [1.8.34](https://github.com/LLK/scratch-gui/compare/v1.8.33...v1.8.34) (2023-04-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230421032244 ([c38275c](https://github.com/LLK/scratch-gui/commit/c38275c13f0bf1923b9e24ea01d8a9343c22c17f)) + +## [1.8.33](https://github.com/LLK/scratch-gui/compare/v1.8.32...v1.8.33) (2023-04-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.49 ([1c29466](https://github.com/LLK/scratch-gui/commit/1c29466ee6012bac8b4d76967fa29357d9212b4c)) + +## [1.8.32](https://github.com/LLK/scratch-gui/compare/v1.8.31...v1.8.32) (2023-04-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230420092820 ([e4e3c06](https://github.com/LLK/scratch-gui/commit/e4e3c06784fb9a4db545b18afc6f1a1e3bb6e4f7)) + +## [1.8.31](https://github.com/LLK/scratch-gui/compare/v1.8.30...v1.8.31) (2023-04-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230420032228 ([d63fcce](https://github.com/LLK/scratch-gui/commit/d63fcce2b79d54b221bfbe59610e9b0bd34ad1b7)) + +## [1.8.30](https://github.com/LLK/scratch-gui/compare/v1.8.29...v1.8.30) (2023-04-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.48 ([471d4b8](https://github.com/LLK/scratch-gui/commit/471d4b878322f06a2d93f5a79ca906c7a5f7f411)) +* **deps:** update dependency scratch-vm to v1.5.35 ([a073964](https://github.com/LLK/scratch-gui/commit/a073964e7712780f455c45e6a39d230ae20fe015)) + +## [1.8.29](https://github.com/LLK/scratch-gui/compare/v1.8.28...v1.8.29) (2023-04-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230418162942 ([8e038a1](https://github.com/LLK/scratch-gui/commit/8e038a1dce3fd15a2189df08cccd358225279ecc)) +* **deps:** update dependency scratch-l10n to v3.15.20230418032127 ([3e176ae](https://github.com/LLK/scratch-gui/commit/3e176aeb14ae86a86aa6653f8065792a21b21892)) + +## [1.8.28](https://github.com/LLK/scratch-gui/compare/v1.8.27...v1.8.28) (2023-04-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.33 ([ce360e9](https://github.com/LLK/scratch-gui/commit/ce360e9183f0c58986c49aa208f1b635d5d30588)) + +## [1.8.27](https://github.com/LLK/scratch-gui/compare/v1.8.26...v1.8.27) (2023-04-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230417032138 ([d4d55f4](https://github.com/LLK/scratch-gui/commit/d4d55f47e861f1a34bb64ece15e3ece126f6754c)) + +## [1.8.26](https://github.com/LLK/scratch-gui/compare/v1.8.25...v1.8.26) (2023-04-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.32 ([10eec92](https://github.com/LLK/scratch-gui/commit/10eec92522c76650894d17d1b370f46af170817b)) + +## [1.8.25](https://github.com/LLK/scratch-gui/compare/v1.8.24...v1.8.25) (2023-04-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230414235720 ([b46a7ce](https://github.com/LLK/scratch-gui/commit/b46a7ce28e9dc185d873977f521300407aa9bc22)) + +## [1.8.24](https://github.com/LLK/scratch-gui/compare/v1.8.23...v1.8.24) (2023-04-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.31 ([f819aa2](https://github.com/LLK/scratch-gui/commit/f819aa29ad49124b9f6059fec3ea7923c5f40aa3)) + +## [1.8.23](https://github.com/LLK/scratch-gui/compare/v1.8.22...v1.8.23) (2023-04-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.47 ([1647396](https://github.com/LLK/scratch-gui/commit/1647396074bd2fa2ebd6de5268f8031f382ee359)) + +## [1.8.22](https://github.com/LLK/scratch-gui/compare/v1.8.21...v1.8.22) (2023-04-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230413032132 ([523eb4c](https://github.com/LLK/scratch-gui/commit/523eb4cc77ee6b09aba61d05605aaefef909c3a6)) + +## [1.8.21](https://github.com/LLK/scratch-gui/compare/v1.8.20...v1.8.21) (2023-04-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230412165437 ([0ba257a](https://github.com/LLK/scratch-gui/commit/0ba257a460546c861bff501cf193309ebe4e3c11)) + +## [1.8.20](https://github.com/LLK/scratch-gui/compare/v1.8.19...v1.8.20) (2023-04-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.46 ([6c4e59d](https://github.com/LLK/scratch-gui/commit/6c4e59d584e8b847d5ecc47f72a362cf53f0fea5)) +* **deps:** update dependency scratch-vm to v1.5.29 ([55f2b00](https://github.com/LLK/scratch-gui/commit/55f2b002b568a92100dafcb82358235470dfa3a2)) + +## [1.8.19](https://github.com/LLK/scratch-gui/compare/v1.8.18...v1.8.19) (2023-04-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230409032113 ([a9194c4](https://github.com/LLK/scratch-gui/commit/a9194c4e38bc75530664da3322c1950154ff5c19)) +* **deps:** update dependency scratch-l10n to v3.15.20230410032122 ([2d75155](https://github.com/LLK/scratch-gui/commit/2d75155bb449d50166922b8925ee58a6574291e9)) +* **deps:** update dependency scratch-l10n to v3.15.20230412032123 ([891e48b](https://github.com/LLK/scratch-gui/commit/891e48b55592449f10e68de7455e759da4efe30b)) + +## [1.8.18](https://github.com/LLK/scratch-gui/compare/v1.8.17...v1.8.18) (2023-04-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.28 ([6d41b3b](https://github.com/LLK/scratch-gui/commit/6d41b3b01a56de883774f89f4befd7227942e758)) + +## [1.8.17](https://github.com/LLK/scratch-gui/compare/v1.8.16...v1.8.17) (2023-04-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.45 ([eafd17e](https://github.com/LLK/scratch-gui/commit/eafd17edc84090f5a6edf4e501f170620ad3ca49)) + +## [1.8.16](https://github.com/LLK/scratch-gui/compare/v1.8.15...v1.8.16) (2023-04-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230405111340 ([f0b84b5](https://github.com/LLK/scratch-gui/commit/f0b84b5ccf5ddeca35fab99b9a1d010abe72af73)) + +## [1.8.15](https://github.com/LLK/scratch-gui/compare/v1.8.14...v1.8.15) (2023-04-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230405032124 ([3af1729](https://github.com/LLK/scratch-gui/commit/3af1729ce9a81b37805ef042b3a16ab267f33707)) + +## [1.8.14](https://github.com/LLK/scratch-gui/compare/v1.8.13...v1.8.14) (2023-04-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230404115635 ([22d6498](https://github.com/LLK/scratch-gui/commit/22d649845b3efc9e54c9f842438181296940671d)) + +## [1.8.13](https://github.com/LLK/scratch-gui/compare/v1.8.12...v1.8.13) (2023-04-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.24 ([3416411](https://github.com/LLK/scratch-gui/commit/341641135537cb170763c0fcc7115e241e8b386f)) + +## [1.8.12](https://github.com/LLK/scratch-gui/compare/v1.8.11...v1.8.12) (2023-04-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.43 ([7811b98](https://github.com/LLK/scratch-gui/commit/7811b986d5fe371a35f81024c99ce72721da3b4d)) + +## [1.8.11](https://github.com/LLK/scratch-gui/compare/v1.8.10...v1.8.11) (2023-04-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.42 ([9a75b8f](https://github.com/LLK/scratch-gui/commit/9a75b8fb12cc00770b18b8a5cd376b93e5897725)) + +## [1.8.10](https://github.com/LLK/scratch-gui/compare/v1.8.9...v1.8.10) (2023-04-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230402032141 ([2281990](https://github.com/LLK/scratch-gui/commit/2281990ff42028c42b2f2dd52e438a7140879316)) + +## [1.8.9](https://github.com/LLK/scratch-gui/compare/v1.8.8...v1.8.9) (2023-04-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.20 ([43d1078](https://github.com/LLK/scratch-gui/commit/43d10788d52132d98782a3e000f50fcca653febd)) + +## [1.8.8](https://github.com/LLK/scratch-gui/compare/v1.8.7...v1.8.8) (2023-04-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230331212014 ([277e6b1](https://github.com/LLK/scratch-gui/commit/277e6b16276941361f8abbacaf0ebbe3513e5492)) + +## [1.8.7](https://github.com/LLK/scratch-gui/compare/v1.8.6...v1.8.7) (2023-03-31) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.7 ([4512710](https://github.com/LLK/scratch-gui/commit/4512710858487b3e0df042ea8a1a9f3d45df8aa1)) +* **deps:** update dependency scratch-storage to v2.2.1 ([278b8e0](https://github.com/LLK/scratch-gui/commit/278b8e0a80c8692d4159c1ceaa6f50e9398b0567)) + +## [1.8.6](https://github.com/LLK/scratch-gui/compare/v1.8.5...v1.8.6) (2023-03-31) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.41 ([27d4a3d](https://github.com/LLK/scratch-gui/commit/27d4a3dae6ba31caa083764fe724e2ed1312fbc3)) + +## [1.8.5](https://github.com/LLK/scratch-gui/compare/v1.8.4...v1.8.5) (2023-03-31) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230331061812 ([08a3daf](https://github.com/LLK/scratch-gui/commit/08a3daf981cab71e53c56cc6a507d1e01c43ebb7)) + +## [1.8.4](https://github.com/LLK/scratch-gui/compare/v1.8.3...v1.8.4) (2023-03-31) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230331032159 ([332fbf7](https://github.com/LLK/scratch-gui/commit/332fbf7f72361890890874101e0ae120dba7cd43)) + +## [1.8.3](https://github.com/LLK/scratch-gui/compare/v1.8.2...v1.8.3) (2023-03-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230327235757 ([a0b2a4c](https://github.com/LLK/scratch-gui/commit/a0b2a4c1f5af1b1d7556ed3da56e953f250de7a7)) + +## [1.8.2](https://github.com/LLK/scratch-gui/compare/v1.8.1...v1.8.2) (2023-03-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.39 ([ffb4200](https://github.com/LLK/scratch-gui/commit/ffb42004bf36adac767a426348ecf07d3761b644)) + +## [1.8.1](https://github.com/LLK/scratch-gui/compare/v1.8.0...v1.8.1) (2023-03-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230327032134 ([a9b2c00](https://github.com/LLK/scratch-gui/commit/a9b2c0016490b0e86f5f89b10a95e128e02b64f5)) + +# [1.8.0](https://github.com/LLK/scratch-gui/compare/v1.7.17...v1.8.0) (2023-03-27) + + +### Features + +* **deps:** update dependency scratch-storage to v2.2.0 ([ecb3c68](https://github.com/LLK/scratch-gui/commit/ecb3c68782d9cbdcb7c9496d506094f63cac6ad0)) + +## [1.7.17](https://github.com/LLK/scratch-gui/compare/v1.7.16...v1.7.17) (2023-03-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230326090609 ([7d52cfa](https://github.com/LLK/scratch-gui/commit/7d52cfa59d09e127738df79ebb4a668d35e38c0e)) + +## [1.7.16](https://github.com/LLK/scratch-gui/compare/v1.7.15...v1.7.16) (2023-03-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.38 ([bc4ffde](https://github.com/LLK/scratch-gui/commit/bc4ffdeb65bd19a1e21164060019cfa69d74c620)) + +## [1.7.15](https://github.com/LLK/scratch-gui/compare/v1.7.14...v1.7.15) (2023-03-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230326032128 ([ff9c287](https://github.com/LLK/scratch-gui/commit/ff9c287549d9656b947a0f72a8dbcd840d0a6cb1)) + +## [1.7.14](https://github.com/LLK/scratch-gui/compare/v1.7.13...v1.7.14) (2023-03-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.10 ([889cd38](https://github.com/LLK/scratch-gui/commit/889cd3846f13e2cb42193e57f8febbae18ac9ba8)) + +## [1.7.13](https://github.com/LLK/scratch-gui/compare/v1.7.12...v1.7.13) (2023-03-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.37 ([0e51180](https://github.com/LLK/scratch-gui/commit/0e51180cae691e579b2630b6684f9c58a4bf794d)) + +## [1.7.12](https://github.com/LLK/scratch-gui/compare/v1.7.11...v1.7.12) (2023-03-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230325032143 ([cba965c](https://github.com/LLK/scratch-gui/commit/cba965c0e31f83c3bdd328851573539fc42af73b)) + +## [1.7.11](https://github.com/LLK/scratch-gui/compare/v1.7.10...v1.7.11) (2023-03-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.36 ([0ef59c3](https://github.com/LLK/scratch-gui/commit/0ef59c3bc617f2a7fc323efb6adfaffb78a23afb)) + +## [1.7.10](https://github.com/LLK/scratch-gui/compare/v1.7.9...v1.7.10) (2023-03-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230324051856 ([30ac109](https://github.com/LLK/scratch-gui/commit/30ac1096fc866ac6437eb23afacc42c6d6a5531e)) + +## [1.7.9](https://github.com/LLK/scratch-gui/compare/v1.7.8...v1.7.9) (2023-03-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230324032109 ([50860ad](https://github.com/LLK/scratch-gui/commit/50860add8d3ed86529b9eae72f642f3ea1ac0618)) + +## [1.7.8](https://github.com/LLK/scratch-gui/compare/v1.7.7...v1.7.8) (2023-03-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.5.7 ([8a0e690](https://github.com/LLK/scratch-gui/commit/8a0e690a2e6cca0f411e658c2cbb7176155671f6)) + +## [1.7.7](https://github.com/LLK/scratch-gui/compare/v1.7.6...v1.7.7) (2023-03-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230323061137 ([18ee7f8](https://github.com/LLK/scratch-gui/commit/18ee7f8e0f0e91375cc7cb54aa1fc17e6aeecbb7)) + +## [1.7.6](https://github.com/LLK/scratch-gui/compare/v1.7.5...v1.7.6) (2023-03-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230323032717 ([371248b](https://github.com/LLK/scratch-gui/commit/371248bfb9c6967e0861055d8426715dbbcf06ad)) + +## [1.7.5](https://github.com/LLK/scratch-gui/compare/v1.7.4...v1.7.5) (2023-03-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.33 ([23f6629](https://github.com/LLK/scratch-gui/commit/23f6629e619dd47803bd427ff288df6c8cbfce62)) + +## [1.7.4](https://github.com/LLK/scratch-gui/compare/v1.7.3...v1.7.4) (2023-03-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.6 ([f81ea44](https://github.com/LLK/scratch-gui/commit/f81ea44a0f288e5bae1e28838df29e15dff52f6d)) + +## [1.7.3](https://github.com/LLK/scratch-gui/compare/v1.7.2...v1.7.3) (2023-03-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230322032147 ([7aa18f6](https://github.com/LLK/scratch-gui/commit/7aa18f611cdfd7720e292fb57d385b4dd4d4ffb8)) + +## [1.7.2](https://github.com/LLK/scratch-gui/compare/v1.7.1...v1.7.2) (2023-03-22) + + +### Bug Fixes + +* tell renovate to ignore cat-blocks ([5e43dc4](https://github.com/LLK/scratch-gui/commit/5e43dc4e2c5c1419c0eb3bb2fd2c93e52b1d875d)) + +## [1.7.1](https://github.com/LLK/scratch-gui/compare/v1.7.0...v1.7.1) (2023-03-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230322072334 ([db086f5](https://github.com/LLK/scratch-gui/commit/db086f56a3ce0efd5202684b198822862adf5bdc)) + +# [1.7.0](https://github.com/LLK/scratch-gui/compare/v1.6.1...v1.7.0) (2023-03-22) + + +### Features + +* **deps:** update dependency scratch-vm to v1.5.3 ([b964705](https://github.com/LLK/scratch-gui/commit/b9647053acdef4bbf21fb6d171f3bdb890b1d4f9)) + +## [1.6.1](https://github.com/LLK/scratch-gui/compare/v1.6.0...v1.6.1) (2023-03-21) + + +### Bug Fixes + +* **deps:** update dependency cat-blocks to v0.1.0-prerelease.20230321050546 ([e6933be](https://github.com/LLK/scratch-gui/commit/e6933beb559267c6cb0125558cf6da8bbf657a18)) + +# [1.6.0](https://github.com/LLK/scratch-gui/compare/v1.5.21...v1.6.0) (2023-03-21) + + +### Features + +* bring back cat blocks ([c1064d5](https://github.com/LLK/scratch-gui/commit/c1064d5381a5df905df0ff506ab817faa2d4ef3a)) + +## [1.5.21](https://github.com/LLK/scratch-gui/compare/v1.5.20...v1.5.21) (2023-03-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230321050546 ([ef178a0](https://github.com/LLK/scratch-gui/commit/ef178a023ae98b5e11499b04826dd4b027009573)) + +## [1.5.20](https://github.com/LLK/scratch-gui/compare/v1.5.19...v1.5.20) (2023-03-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230321032123 ([218c534](https://github.com/LLK/scratch-gui/commit/218c5340d7d08e957faf3231f563d42da4b83907)) + +## [1.5.19](https://github.com/LLK/scratch-gui/compare/v1.5.18...v1.5.19) (2023-03-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.4.22 ([ac32911](https://github.com/LLK/scratch-gui/commit/ac329117320a367af29357732c60ffe3ae774a2e)) + +## [1.5.18](https://github.com/LLK/scratch-gui/compare/v1.5.17...v1.5.18) (2023-03-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230320032138 ([82b680d](https://github.com/LLK/scratch-gui/commit/82b680d51dbc203b74794e271d7f34f89c287b5b)) + +## [1.5.17](https://github.com/LLK/scratch-gui/compare/v1.5.16...v1.5.17) (2023-03-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230320010012 ([65aa2eb](https://github.com/LLK/scratch-gui/commit/65aa2eb7794f700b255de3772d8111d64a1e7fe2)) + +## [1.5.16](https://github.com/LLK/scratch-gui/compare/v1.5.15...v1.5.16) (2023-03-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230319032127 ([fe63297](https://github.com/LLK/scratch-gui/commit/fe6329789dff3f26daeeeeb9aff8d8d2d26c7420)) + +## [1.5.15](https://github.com/LLK/scratch-gui/compare/v1.5.14...v1.5.15) (2023-03-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.4.17 ([6f7ed9b](https://github.com/LLK/scratch-gui/commit/6f7ed9b7ad5c64085248906c53d3ac2f84508e01)) + +## [1.5.14](https://github.com/LLK/scratch-gui/compare/v1.5.13...v1.5.14) (2023-03-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20230318150639 ([9d90ae5](https://github.com/LLK/scratch-gui/commit/9d90ae54228216c47d231d9b8a2adf7440056775)) + +## [1.5.13](https://github.com/LLK/scratch-gui/compare/v1.5.12...v1.5.13) (2023-03-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.4.16 ([781da1c](https://github.com/LLK/scratch-gui/commit/781da1c01a2363637f6e080970f3dbf9e3d4d3c8)) + +## [1.5.12](https://github.com/LLK/scratch-gui/compare/v1.5.11...v1.5.12) (2023-03-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230318112504 ([02c0c9a](https://github.com/LLK/scratch-gui/commit/02c0c9af2109d4d87d0107980cc64e420f63e835)) + +## [1.5.11](https://github.com/LLK/scratch-gui/compare/v1.5.10...v1.5.11) (2023-03-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.4.15 ([c9fd910](https://github.com/LLK/scratch-gui/commit/c9fd910af6d0fe2b3ad398a60d4d19a132bb62a2)) + +## [1.5.10](https://github.com/LLK/scratch-gui/compare/v1.5.9...v1.5.10) (2023-03-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230318032145 ([9e1af12](https://github.com/LLK/scratch-gui/commit/9e1af12c583a302507343a46c27e105b0c7d4224)) + +## [1.5.9](https://github.com/LLK/scratch-gui/compare/v1.5.8...v1.5.9) (2023-03-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.4.14 ([bba09ef](https://github.com/LLK/scratch-gui/commit/bba09efb0f24759ff11c8a5b28b7c189c658c5cf)) + +## [1.5.8](https://github.com/LLK/scratch-gui/compare/v1.5.7...v1.5.8) (2023-03-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230317032152 ([25c0fd9](https://github.com/LLK/scratch-gui/commit/25c0fd98343e4f6fa13820d88018233a1a1dba4c)) + +## [1.5.7](https://github.com/LLK/scratch-gui/compare/v1.5.6...v1.5.7) (2023-03-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230315113009 ([6052c3d](https://github.com/LLK/scratch-gui/commit/6052c3d4b6698955544e9bd5d25faf1c73d80cb1)) + +## [1.5.6](https://github.com/LLK/scratch-gui/compare/v1.5.5...v1.5.6) (2023-03-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.4.12 ([48602a9](https://github.com/LLK/scratch-gui/commit/48602a98e71121545ff401bf8a53ef486601fb0c)) + +## [1.5.5](https://github.com/LLK/scratch-gui/compare/v1.5.4...v1.5.5) (2023-03-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230314074450 ([dd64742](https://github.com/LLK/scratch-gui/commit/dd64742838b1f87a79cd29fdc273cc4df3ed8e53)) + +## [1.5.4](https://github.com/LLK/scratch-gui/compare/v1.5.3...v1.5.4) (2023-03-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.4.9 ([ff261ce](https://github.com/LLK/scratch-gui/commit/ff261cecdfcf7a82c6993116a8e699fc163fe494)) + +## [1.5.3](https://github.com/LLK/scratch-gui/compare/v1.5.2...v1.5.3) (2023-03-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.4.6 ([cffd992](https://github.com/LLK/scratch-gui/commit/cffd992299ae0b6e5e68c939067ef2c506cf0907)) + +## [1.5.2](https://github.com/LLK/scratch-gui/compare/v1.5.1...v1.5.2) (2023-03-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230312094058 ([ff799a0](https://github.com/LLK/scratch-gui/commit/ff799a0f2678947e88e1735aa29e1b4924567af1)) + +## [1.5.1](https://github.com/LLK/scratch-gui/compare/v1.5.0...v1.5.1) (2023-03-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230312032149 ([0e5e0ec](https://github.com/LLK/scratch-gui/commit/0e5e0ec08c227b775185c295e924f4e52215873f)) + +# [1.5.0](https://github.com/LLK/scratch-gui/compare/v1.4.2...v1.5.0) (2023-03-11) + + +### Features + +* **deps:** update dependency scratch-vm to v1.4.4 ([a5f8ec0](https://github.com/LLK/scratch-gui/commit/a5f8ec0f957b2aa2204ee2b92bcebc7d888fb8ce)) + +## [1.4.2](https://github.com/LLK/scratch-gui/compare/v1.4.1...v1.4.2) (2023-03-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230311032153 ([dc02d54](https://github.com/LLK/scratch-gui/commit/dc02d5452da834073a76a87118477c762011e615)) + +## [1.4.1](https://github.com/LLK/scratch-gui/compare/v1.4.0...v1.4.1) (2023-03-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230311083059 ([a2448e0](https://github.com/LLK/scratch-gui/commit/a2448e0a3951ec125db16d068944e0f2fe0561f5)) + +# [1.4.0](https://github.com/LLK/scratch-gui/compare/v1.3.37...v1.4.0) (2023-03-10) + + +### Features + +* **deps:** update dependency scratch-storage to v2.1.0 ([f2fb1b9](https://github.com/LLK/scratch-gui/commit/f2fb1b9406a87d1ce7d08e5b84543d83b39f91f1)) + +## [1.3.37](https://github.com/LLK/scratch-gui/compare/v1.3.36...v1.3.37) (2023-03-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230310032126 ([74ba97f](https://github.com/LLK/scratch-gui/commit/74ba97f8843823b66d1eccaf3d8dfa185e894888)) + +## [1.3.36](https://github.com/LLK/scratch-gui/compare/v1.3.35...v1.3.36) (2023-03-08) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230307084554 ([b3bfcf6](https://github.com/LLK/scratch-gui/commit/b3bfcf6c0ccdbd192c2b8a6eca213eb05fa5e139)) + +## [1.3.35](https://github.com/LLK/scratch-gui/compare/v1.3.34...v1.3.35) (2023-03-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.75 ([dd2a1ca](https://github.com/LLK/scratch-gui/commit/dd2a1cacd2fed569792939c0be1838c645e81062)) + +## [1.3.34](https://github.com/LLK/scratch-gui/compare/v1.3.33...v1.3.34) (2023-03-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230306032128 ([941747a](https://github.com/LLK/scratch-gui/commit/941747a9912d14f0d7c88588c605120f19766f44)) + +## [1.3.33](https://github.com/LLK/scratch-gui/compare/v1.3.32...v1.3.33) (2023-03-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.71 ([b66b261](https://github.com/LLK/scratch-gui/commit/b66b2613aba7fecdeca8add83675c81be6f3a609)) + +## [1.3.32](https://github.com/LLK/scratch-gui/compare/v1.3.31...v1.3.32) (2023-03-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230305070608 ([0e1d995](https://github.com/LLK/scratch-gui/commit/0e1d9953d6df264af8026d32ca9a3dab563afb38)) + +## [1.3.31](https://github.com/LLK/scratch-gui/compare/v1.3.30...v1.3.31) (2023-03-05) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230305032139 ([048afb2](https://github.com/LLK/scratch-gui/commit/048afb2d10a42a96a924d9670e4b0f4e04561f94)) + +## [1.3.30](https://github.com/LLK/scratch-gui/compare/v1.3.29...v1.3.30) (2023-03-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.69 ([415379c](https://github.com/LLK/scratch-gui/commit/415379c4a9567eade324579562fc68d5ec084677)) + +## [1.3.29](https://github.com/LLK/scratch-gui/compare/v1.3.28...v1.3.29) (2023-03-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230302080617 ([d59ebe0](https://github.com/LLK/scratch-gui/commit/d59ebe03909315dc1f1f4803ad582b995bea216b)) + +## [1.3.28](https://github.com/LLK/scratch-gui/compare/v1.3.27...v1.3.28) (2023-03-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230302032139 ([346dac4](https://github.com/LLK/scratch-gui/commit/346dac4491d5b3e3958c6bd1ee611e128981518a)) + +## [1.3.27](https://github.com/LLK/scratch-gui/compare/v1.3.26...v1.3.27) (2023-03-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.67 ([07d92ab](https://github.com/LLK/scratch-gui/commit/07d92ab898fe94ad150fe41ff5e961fc45ec88fb)) + +## [1.3.26](https://github.com/LLK/scratch-gui/compare/v1.3.25...v1.3.26) (2023-03-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230301091657 ([647886c](https://github.com/LLK/scratch-gui/commit/647886ce7ab38bf6b28e9d2a065ac472f8dc7f5b)) + +## [1.3.25](https://github.com/LLK/scratch-gui/compare/v1.3.24...v1.3.25) (2023-03-01) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230301032145 ([5d6a0fb](https://github.com/LLK/scratch-gui/commit/5d6a0fb45c5cdbef705561cd51c609e7d2dde9b0)) + +## [1.3.24](https://github.com/LLK/scratch-gui/compare/v1.3.23...v1.3.24) (2023-02-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230228095609 ([03752c6](https://github.com/LLK/scratch-gui/commit/03752c66cba6bde53a6c912c25db88f9f0b6930c)) + +## [1.3.23](https://github.com/LLK/scratch-gui/compare/v1.3.22...v1.3.23) (2023-02-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230228032200 ([9c69282](https://github.com/LLK/scratch-gui/commit/9c692829bf6c124d06effe0a74e82250b8e35084)) + +## [1.3.22](https://github.com/LLK/scratch-gui/compare/v1.3.21...v1.3.22) (2023-02-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.63 ([4d2d7bc](https://github.com/LLK/scratch-gui/commit/4d2d7bc4d89ddbc46db20d90ddfdd0e1ad49924c)) + +## [1.3.21](https://github.com/LLK/scratch-gui/compare/v1.3.20...v1.3.21) (2023-02-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230227082058 ([7cee758](https://github.com/LLK/scratch-gui/commit/7cee758759e258220e3aa759c15e306e57bf3982)) + +## [1.3.20](https://github.com/LLK/scratch-gui/compare/v1.3.19...v1.3.20) (2023-02-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-svg-renderer to v0.2.0-prerelease.20230224194137 ([ba8312c](https://github.com/LLK/scratch-gui/commit/ba8312cff65c6c75aa192c18c28bdc744fb837c8)) + +## [1.3.19](https://github.com/LLK/scratch-gui/compare/v1.3.18...v1.3.19) (2023-02-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.61 ([ba72ab3](https://github.com/LLK/scratch-gui/commit/ba72ab36c194e3d02fbd32ddcafb2c2518ee87f9)) + +## [1.3.18](https://github.com/LLK/scratch-gui/compare/v1.3.17...v1.3.18) (2023-02-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230223081721 ([f6206e4](https://github.com/LLK/scratch-gui/commit/f6206e48f7dce2c5e5bf31d58f2d9eba496e2961)) + +## [1.3.17](https://github.com/LLK/scratch-gui/compare/v1.3.16...v1.3.17) (2023-02-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.60 ([8ab8260](https://github.com/LLK/scratch-gui/commit/8ab8260b7dfeaf30e4933089ba6a8ddaa65d10f9)) + +## [1.3.16](https://github.com/LLK/scratch-gui/compare/v1.3.15...v1.3.16) (2023-02-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230223032131 ([864a6fe](https://github.com/LLK/scratch-gui/commit/864a6fe7c92973c7ddff499ffd76f7f1676c394d)) + +## [1.3.15](https://github.com/LLK/scratch-gui/compare/v1.3.14...v1.3.15) (2023-02-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.59 ([baae3c5](https://github.com/LLK/scratch-gui/commit/baae3c557c05a31514c16a8604f671d930edc9a0)) + +## [1.3.14](https://github.com/LLK/scratch-gui/compare/v1.3.13...v1.3.14) (2023-02-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20230221152523 ([796321d](https://github.com/LLK/scratch-gui/commit/796321d2228fd6f290c4e03286c53910cb40f16d)) + +## [1.3.13](https://github.com/LLK/scratch-gui/compare/v1.3.12...v1.3.13) (2023-02-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230222032129 ([83ae0a5](https://github.com/LLK/scratch-gui/commit/83ae0a565bf324cb38b0e3585f609f521ee2ba4d)) + +## [1.3.12](https://github.com/LLK/scratch-gui/compare/v1.3.11...v1.3.12) (2023-02-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230221154234 ([550d4bf](https://github.com/LLK/scratch-gui/commit/550d4bf122438e74997fce0839d7ba88b5b66ba1)) + +## [1.3.11](https://github.com/LLK/scratch-gui/compare/v1.3.10...v1.3.11) (2023-02-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230221032128 ([e6a1817](https://github.com/LLK/scratch-gui/commit/e6a1817b617323ebf3f4befc711f5f92b24ea803)) + +## [1.3.10](https://github.com/LLK/scratch-gui/compare/v1.3.9...v1.3.10) (2023-01-30) + + +### Bug Fixes + +* fix unused 'action' property in ErrorBoundary ([e1e0a8d](https://github.com/LLK/scratch-gui/commit/e1e0a8d3e7af85ba3025a7f8473ead3a68abac8e)) +* remove Sentry and add ErrorBoundary tests ([79a25ff](https://github.com/LLK/scratch-gui/commit/79a25ff5d3a0ed517c9ed341ced69bf714e6148c)) + +## [1.3.9](https://github.com/LLK/scratch-gui/compare/v1.3.8...v1.3.9) (2023-01-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.18 ([b20cb9e](https://github.com/LLK/scratch-gui/commit/b20cb9ed1d448b4d42d5becee1491c4e9861268e)) + +## [1.3.8](https://github.com/LLK/scratch-gui/compare/v1.3.7...v1.3.8) (2023-01-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230113103241 ([a1bfc55](https://github.com/LLK/scratch-gui/commit/a1bfc552414ca264a35ce42423b719f69359e3e7)) +* **deps:** update dependency scratch-l10n to v3.15.20230113032113 ([a1f44f2](https://github.com/LLK/scratch-gui/commit/a1f44f2095b62487519d551976bf22d1c0152e6c)) + +## [1.3.7](https://github.com/LLK/scratch-gui/compare/v1.3.6...v1.3.7) (2023-01-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230112072449 ([040d6f1](https://github.com/LLK/scratch-gui/commit/040d6f1deb7e3bc70778a92070b52d5ba37c8807)) + +## [1.3.6](https://github.com/LLK/scratch-gui/compare/v1.3.5...v1.3.6) (2023-01-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.16 ([297a326](https://github.com/LLK/scratch-gui/commit/297a326d1ce7b04ff9620924d9760701c7487eec)) + +## [1.3.5](https://github.com/LLK/scratch-gui/compare/v1.3.4...v1.3.5) (2023-01-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.14 ([424692b](https://github.com/LLK/scratch-gui/commit/424692bb22d937fc4ad4de21cd6e22d6d2f7d528)) + +## [1.3.4](https://github.com/LLK/scratch-gui/compare/v1.3.3...v1.3.4) (2023-01-10) + + +### Bug Fixes + +* load flyout correctly when switching languages ([2fa0880](https://github.com/LLK/scratch-gui/commit/2fa0880f9028dbdffc4f01919fc3e8ef3cd0ffcc)) + +## [1.3.3](https://github.com/LLK/scratch-gui/compare/v1.3.2...v1.3.3) (2023-01-10) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230107045212 ([ad5e6c8](https://github.com/LLK/scratch-gui/commit/ad5e6c842eb950681e8ba61481b37166fd7f1c86)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230107072727 ([546ddc3](https://github.com/LLK/scratch-gui/commit/546ddc36b8f86fe7ccc360c5754d661fd68c1b39)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230108070914 ([d8ed2a0](https://github.com/LLK/scratch-gui/commit/d8ed2a00975b9cc2f3c0e0622152548367bbbb05)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230109074106 ([5f7f42c](https://github.com/LLK/scratch-gui/commit/5f7f42c4a0b53e9051ea4998a580a67064babf88)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20230110085824 ([7783595](https://github.com/LLK/scratch-gui/commit/77835955269431158594254ba1007b79bb542c51)) +* **deps:** update dependency scratch-l10n to v3.15.20230107032059 ([a5fbba1](https://github.com/LLK/scratch-gui/commit/a5fbba1b7586ac03f3a8ff360cee6b91e321de0f)) +* **deps:** update dependency scratch-l10n to v3.15.20230108032105 ([517979c](https://github.com/LLK/scratch-gui/commit/517979c91338983649fd29f8efa74354374b2010)) +* **deps:** update dependency scratch-l10n to v3.15.20230109032112 ([8ad340b](https://github.com/LLK/scratch-gui/commit/8ad340b8239af1109a42ee42edbedc24049632ab)) +* **deps:** update dependency scratch-l10n to v3.15.20230110032123 ([c913a6f](https://github.com/LLK/scratch-gui/commit/c913a6fa7161cdf28b9cdb18ae9fc2c1413689dc)) +* **deps:** update dependency scratch-vm to v1.3.10 ([2b84e0f](https://github.com/LLK/scratch-gui/commit/2b84e0fb67941bc9f2216007a6b278cb9f434453)) +* **deps:** update dependency scratch-vm to v1.3.12 ([552d6af](https://github.com/LLK/scratch-gui/commit/552d6af5e84639170d95736d3882d8f1fe128e3e)) +* **deps:** update dependency scratch-vm to v1.3.13 ([c13df68](https://github.com/LLK/scratch-gui/commit/c13df688e1592b1b04dcc567477f2701edf669fa)) +* **deps:** update dependency scratch-vm to v1.3.8 ([3232c49](https://github.com/LLK/scratch-gui/commit/3232c4951222a33ee7c545d514ef6d53d9c62b7f)) +* **deps:** update dependency scratch-vm to v1.3.9 ([3aeafff](https://github.com/LLK/scratch-gui/commit/3aeafffb041c624ec6ebc46083454d34d89ab5f7)) + +## [1.3.2](https://github.com/LLK/scratch-gui/compare/v1.3.1...v1.3.2) (2023-01-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.3.5 ([5ee4de6](https://github.com/LLK/scratch-gui/commit/5ee4de61f3624e5d8aa00c5052207188f0d339c9)) + +## [1.3.1](https://github.com/LLK/scratch-gui/compare/v1.3.0...v1.3.1) (2023-01-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230103200437 ([efc2f37](https://github.com/LLK/scratch-gui/commit/efc2f37d5e167ec9ea551c578a33eef8deb26143)) + +# [1.3.0](https://github.com/LLK/scratch-gui/compare/v1.2.7...v1.3.0) (2023-01-03) + + +### Features + +* **deps:** update dependency scratch-vm to v1.3.0 ([098e788](https://github.com/LLK/scratch-gui/commit/098e78802a6d834141a0e339505c2990f92315fb)) + +## [1.2.7](https://github.com/LLK/scratch-gui/compare/v1.2.6...v1.2.7) (2023-01-02) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20230102033101 ([78a177b](https://github.com/LLK/scratch-gui/commit/78a177b590aa1990f6a83464a788c2e61f29a46e)) + +## [1.2.6](https://github.com/LLK/scratch-gui/compare/v1.2.5...v1.2.6) (2022-12-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221221032231 ([cc53b87](https://github.com/LLK/scratch-gui/commit/cc53b8755d158e9160a86e3bee68d3fefe0916e9)) + +## [1.2.5](https://github.com/LLK/scratch-gui/compare/v1.2.4...v1.2.5) (2022-12-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221220032336 ([02c3ccc](https://github.com/LLK/scratch-gui/commit/02c3ccc76bec3bc8e0f0a2f9b77b009f1fe67864)) + +## [1.2.4](https://github.com/LLK/scratch-gui/compare/v1.2.3...v1.2.4) (2022-12-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221219032131 ([c10e801](https://github.com/LLK/scratch-gui/commit/c10e8012c51b7ff97ade45d938650427b185325d)) + +## [1.2.3](https://github.com/LLK/scratch-gui/compare/v1.2.2...v1.2.3) (2022-12-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221217032100 ([96f3862](https://github.com/LLK/scratch-gui/commit/96f3862d5bca38a49006f26f9c8f5849c5185121)) + +## [1.2.2](https://github.com/LLK/scratch-gui/compare/v1.2.1...v1.2.2) (2022-12-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221213032135 ([9192dc9](https://github.com/LLK/scratch-gui/commit/9192dc9f555f1f989a30e4790b0e5ad57173d750)) + +## [1.2.1](https://github.com/LLK/scratch-gui/compare/v1.2.0...v1.2.1) (2022-12-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221211032111 ([a384f19](https://github.com/LLK/scratch-gui/commit/a384f192ab16b61b0f86feb7beefb9d740ac8efe)) + +# [1.2.0](https://github.com/LLK/scratch-gui/compare/v1.1.42...v1.2.0) (2022-12-08) + + +### Features + +* disconnect from cloud variables immediately after adding video sensing to a project ([7279c8b](https://github.com/LLK/scratch-gui/commit/7279c8b54212a0e7f478ef5c17bb0aaee73ae3f4)) + +## [1.1.42](https://github.com/LLK/scratch-gui/compare/v1.1.41...v1.1.42) (2022-12-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221207082607 ([959de45](https://github.com/LLK/scratch-gui/commit/959de4590ef6515367cba2c8275ad8f89207cde3)) + +## [1.1.41](https://github.com/LLK/scratch-gui/compare/v1.1.40...v1.1.41) (2022-12-07) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221207032110 ([672509b](https://github.com/LLK/scratch-gui/commit/672509b6363e8b404e7a85f3d0c1a96deaed133f)) + +## [1.1.40](https://github.com/LLK/scratch-gui/compare/v1.1.39...v1.1.40) (2022-12-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221206060018 ([b42e960](https://github.com/LLK/scratch-gui/commit/b42e96077bffe24617a265382acb10f8349d65c8)) + +## [1.1.39](https://github.com/LLK/scratch-gui/compare/v1.1.38...v1.1.39) (2022-12-06) + + +### Bug Fixes + +* update extension monitors after locale change ([2916d9c](https://github.com/LLK/scratch-gui/commit/2916d9c1a8115896661af8137cbf131d19fbfa0f)) + +## [1.1.38](https://github.com/LLK/scratch-gui/compare/v1.1.37...v1.1.38) (2022-12-06) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221206032123 ([9e2f088](https://github.com/LLK/scratch-gui/commit/9e2f0882a3eeeb530df34e0bf179d5146c55bb6d)) + +## [1.1.37](https://github.com/LLK/scratch-gui/compare/v1.1.36...v1.1.37) (2022-12-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221204032109 ([2b1fca9](https://github.com/LLK/scratch-gui/commit/2b1fca98877288a8eb103914c30d6c421b1b751a)) + +## [1.1.36](https://github.com/LLK/scratch-gui/compare/v1.1.35...v1.1.36) (2022-12-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221204072000 ([7d1f878](https://github.com/LLK/scratch-gui/commit/7d1f8788515198c43c70b5d5c85df8fd73d17ee4)) + +## [1.1.35](https://github.com/LLK/scratch-gui/compare/v1.1.34...v1.1.35) (2022-12-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221203032121 ([1db02b4](https://github.com/LLK/scratch-gui/commit/1db02b474af91203f23b69a652e4eac487e971ed)) + +## [1.1.34](https://github.com/LLK/scratch-gui/compare/v1.1.33...v1.1.34) (2022-12-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221203081642 ([b6ea55e](https://github.com/LLK/scratch-gui/commit/b6ea55eff15be2e3b7eaa82781193856ceee1d19)) + +## [1.1.33](https://github.com/LLK/scratch-gui/compare/v1.1.32...v1.1.33) (2022-12-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221202222830 ([abefdef](https://github.com/LLK/scratch-gui/commit/abefdefaa19c339c6566cdca83c6766483811b91)) +* **deps:** update dependency scratch-l10n to v3.15.20221202190622 ([ae56ca2](https://github.com/LLK/scratch-gui/commit/ae56ca2c1382611e25928f406a6d945fb902a254)) + +## [1.1.32](https://github.com/LLK/scratch-gui/compare/v1.1.31...v1.1.32) (2022-11-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221129081817 ([9c53cbb](https://github.com/LLK/scratch-gui/commit/9c53cbbc08377a124cfb4afc5b634863adeff0ee)) + +## [1.1.31](https://github.com/LLK/scratch-gui/compare/v1.1.30...v1.1.31) (2022-11-29) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221129032252 ([dd17eb8](https://github.com/LLK/scratch-gui/commit/dd17eb8341f64bfb7d1ff3202649957de28e8178)) + +## [1.1.30](https://github.com/LLK/scratch-gui/compare/v1.1.29...v1.1.30) (2022-11-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221128082230 ([8f850cf](https://github.com/LLK/scratch-gui/commit/8f850cfe024a885a079976bf7d5a44874e2429f7)) + +## [1.1.29](https://github.com/LLK/scratch-gui/compare/v1.1.28...v1.1.29) (2022-11-28) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221128032152 ([2006c32](https://github.com/LLK/scratch-gui/commit/2006c32262af13606c0ceec3bfe5f185eed0e8f3)) + +## [1.1.28](https://github.com/LLK/scratch-gui/compare/v1.1.27...v1.1.28) (2022-11-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221127081603 ([8b33879](https://github.com/LLK/scratch-gui/commit/8b338796f9b44598183b35651da4d1a26eb39eae)) + +## [1.1.27](https://github.com/LLK/scratch-gui/compare/v1.1.26...v1.1.27) (2022-11-27) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221127032138 ([28595c8](https://github.com/LLK/scratch-gui/commit/28595c860078f865c80d0dcd33deeb54eaf81f90)) + +## [1.1.26](https://github.com/LLK/scratch-gui/compare/v1.1.25...v1.1.26) (2022-11-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221126060222 ([a0d0f44](https://github.com/LLK/scratch-gui/commit/a0d0f44ccb6b72b6dab68f9fd604a83cc42b14e2)) + +## [1.1.25](https://github.com/LLK/scratch-gui/compare/v1.1.24...v1.1.25) (2022-11-26) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221126032149 ([345985a](https://github.com/LLK/scratch-gui/commit/345985a480e14fbd3ff8f27f7c06d7186e5501e8)) + +## [1.1.24](https://github.com/LLK/scratch-gui/compare/v1.1.23...v1.1.24) (2022-11-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221125070521 ([26d0178](https://github.com/LLK/scratch-gui/commit/26d01780a0b95c50372ccd6b728d3775015c8571)) + +## [1.1.23](https://github.com/LLK/scratch-gui/compare/v1.1.22...v1.1.23) (2022-11-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221125032232 ([a192224](https://github.com/LLK/scratch-gui/commit/a192224283028c82fd408b6b0c79e9a923b8da30)) + +## [1.1.22](https://github.com/LLK/scratch-gui/compare/v1.1.21...v1.1.22) (2022-11-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221124084123 ([04452ab](https://github.com/LLK/scratch-gui/commit/04452ab0e98d9f9407f0cb427f8dd90813c01817)) + +## [1.1.21](https://github.com/LLK/scratch-gui/compare/v1.1.20...v1.1.21) (2022-11-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221124032258 ([35ceaab](https://github.com/LLK/scratch-gui/commit/35ceaab5aea9308fc4cea735c8193a4446397322)) + +## [1.1.20](https://github.com/LLK/scratch-gui/compare/v1.1.19...v1.1.20) (2022-11-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-audio to v0.1.0-prerelease.20221123180128 ([2638e57](https://github.com/LLK/scratch-gui/commit/2638e5723e57274243b671d98d1b37a4210514bb)) + +## [1.1.19](https://github.com/LLK/scratch-gui/compare/v1.1.18...v1.1.19) (2022-11-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221123030939 ([8317d57](https://github.com/LLK/scratch-gui/commit/8317d5740dae114fe914ff292bb0dcb475c52136)) + +## [1.1.18](https://github.com/LLK/scratch-gui/compare/v1.1.17...v1.1.18) (2022-11-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221122211649 ([239e8da](https://github.com/LLK/scratch-gui/commit/239e8da2efff421281d03bd92096b16c74a8bf03)) + +## [1.1.17](https://github.com/LLK/scratch-gui/compare/v1.1.16...v1.1.17) (2022-11-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-svg-renderer to v0.2.0-prerelease.20221120235613 ([34c1810](https://github.com/LLK/scratch-gui/commit/34c1810280e6ce660fdf94c29d226ab06b15d74c)) + +## [1.1.16](https://github.com/LLK/scratch-gui/compare/v1.1.15...v1.1.16) (2022-11-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221121032214 ([5454ecb](https://github.com/LLK/scratch-gui/commit/5454ecb6e6ca878fcbf9ac4493dff54ee97c6f68)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20221121051603 ([8b59afd](https://github.com/LLK/scratch-gui/commit/8b59afd3ad9e455f8d5fd8e041181a0d92029182)) + +## [1.1.15](https://github.com/LLK/scratch-gui/compare/v1.1.14...v1.1.15) (2022-11-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20221120233801 ([ca5f37c](https://github.com/LLK/scratch-gui/commit/ca5f37cc4c23b6d31f2aea303ff8d0c9d36e2d7f)) + +## [1.1.14](https://github.com/LLK/scratch-gui/compare/v1.1.13...v1.1.14) (2022-11-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221120032157 ([24e62eb](https://github.com/LLK/scratch-gui/commit/24e62eb8791caefce7075e733a70b229d6c68049)) + +## [1.1.13](https://github.com/LLK/scratch-gui/compare/v1.1.12...v1.1.13) (2022-11-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221119032200 ([fd0f148](https://github.com/LLK/scratch-gui/commit/fd0f148d1641f832d9697e5d11e292add9dfd5b1)) + +## [1.1.12](https://github.com/LLK/scratch-gui/compare/v1.1.11...v1.1.12) (2022-11-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221118211523 ([5707b1e](https://github.com/LLK/scratch-gui/commit/5707b1e74873a48f7bf43ac75615aeb77be57b39)) + +## [1.1.11](https://github.com/LLK/scratch-gui/compare/v1.1.10...v1.1.11) (2022-11-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221118032205 ([3330a83](https://github.com/LLK/scratch-gui/commit/3330a834308765427e3d4b81bfdb742e7736bab7)) + +## [1.1.10](https://github.com/LLK/scratch-gui/compare/v1.1.9...v1.1.10) (2022-11-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221117032518 ([e27cde0](https://github.com/LLK/scratch-gui/commit/e27cde06c42a26e73a3fe9dd1baa25d2193ea35c)) + +## [1.1.9](https://github.com/LLK/scratch-gui/compare/v1.1.8...v1.1.9) (2022-11-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221116032056 ([6d8e99f](https://github.com/LLK/scratch-gui/commit/6d8e99f031ec9bd1d7f91c658a028cc7566a52df)) + +## [1.1.8](https://github.com/LLK/scratch-gui/compare/v1.1.7...v1.1.8) (2022-11-15) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221115032105 ([aa702dd](https://github.com/LLK/scratch-gui/commit/aa702dd6cb3564a5da43f8444a17f54cf928e7f7)) + +## [1.1.7](https://github.com/LLK/scratch-gui/compare/v1.1.6...v1.1.7) (2022-11-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221114032101 ([1b5a2d2](https://github.com/LLK/scratch-gui/commit/1b5a2d21a9d9db832c2382ea4047cbc06f5d1d23)) + +## [1.1.6](https://github.com/LLK/scratch-gui/compare/v1.1.5...v1.1.6) (2022-11-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.54 ([b857afe](https://github.com/LLK/scratch-gui/commit/b857afeb5b98c09bed14a440e7d6a01876545f8d)) + +## [1.1.5](https://github.com/LLK/scratch-gui/compare/v1.1.4...v1.1.5) (2022-11-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-svg-renderer to v0.2.0-prerelease.20221102163324 ([d198747](https://github.com/LLK/scratch-gui/commit/d1987476763acb8d23133e11af56ed7bd6acfc40)) + +## [1.1.4](https://github.com/LLK/scratch-gui/compare/v1.1.3...v1.1.4) (2022-11-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-render-fonts to v1.0.0-prerelease.20221102164332 ([3b40968](https://github.com/LLK/scratch-gui/commit/3b40968ab623f10d6b091f834df0e244ce8b2c00)) + +## [1.1.3](https://github.com/LLK/scratch-gui/compare/v1.1.2...v1.1.3) (2022-11-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20221102163423 ([004e1c3](https://github.com/LLK/scratch-gui/commit/004e1c3e4be4956f8f2a733a6fcf407408d89b60)) + +## [1.1.2](https://github.com/LLK/scratch-gui/compare/v1.1.1...v1.1.2) (2022-11-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.31 ([89c48c0](https://github.com/LLK/scratch-gui/commit/89c48c055dfe00a8ebda951fbf540297c3520ea5)) + +## [1.1.1](https://github.com/LLK/scratch-gui/compare/v1.1.0...v1.1.1) (2022-11-11) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221110032102 ([a718114](https://github.com/LLK/scratch-gui/commit/a718114c508dac1d0194c4688d14535c9192322f)) + +# [1.1.0](https://github.com/LLK/scratch-gui/compare/v1.0.48...v1.1.0) (2022-11-10) + + +### Features + +* prevent cloud vars connection if project uses videoSensing extension ([63cac48](https://github.com/LLK/scratch-gui/commit/63cac483e9e0a4986d21cfbc33b7b5501eb8a2ab)) + +## [1.0.48](https://github.com/LLK/scratch-gui/compare/v1.0.47...v1.0.48) (2022-10-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.52 ([1333016](https://github.com/LLK/scratch-gui/commit/13330160594de5c80df7283d084fefeb23a830c6)) + +## [1.0.47](https://github.com/LLK/scratch-gui/compare/v1.0.46...v1.0.47) (2022-10-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-svg-renderer to v0.2.0-prerelease.20221024201850 ([8e8c876](https://github.com/LLK/scratch-gui/commit/8e8c87639b7a8d0daffff7b2ec3c83806e79d382)) + +## [1.0.46](https://github.com/LLK/scratch-gui/compare/v1.0.45...v1.0.46) (2022-10-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.29 ([4b0d35c](https://github.com/LLK/scratch-gui/commit/4b0d35cfbf1cd17ea5fc99fd98739db2b81418fd)) +* **deps:** update dependency scratch-render-fonts to v1.0.0-prerelease.20221024190656 ([61169c4](https://github.com/LLK/scratch-gui/commit/61169c4b75ae824d5aef06df476530b3d8eed72c)) + +## [1.0.45](https://github.com/LLK/scratch-gui/compare/v1.0.44...v1.0.45) (2022-10-25) + + +### Bug Fixes + +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20221024201900 ([53e835d](https://github.com/LLK/scratch-gui/commit/53e835d6084e921348d29c5869ed3b435e32d811)) + +## [1.0.44](https://github.com/LLK/scratch-gui/compare/v1.0.43...v1.0.44) (2022-10-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.28 ([cf52583](https://github.com/LLK/scratch-gui/commit/cf525838f016c8fecc892802a5ddf4626b946ed6)) + +## [1.0.43](https://github.com/LLK/scratch-gui/compare/v1.0.42...v1.0.43) (2022-10-24) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221024060953 ([244e319](https://github.com/LLK/scratch-gui/commit/244e3199668d5b9c1774883fe84f72b33d08243b)) +* **deps:** update dependency scratch-l10n to v3.15.20221024032103 ([a918351](https://github.com/LLK/scratch-gui/commit/a91835154be9503200ee17292e1cd9d37cf51f72)) + +## [1.0.42](https://github.com/LLK/scratch-gui/compare/v1.0.41...v1.0.42) (2022-10-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.48 ([872cdc6](https://github.com/LLK/scratch-gui/commit/872cdc6cf05b6d463eeb53eccf1f7d499b26d9df)) + +## [1.0.41](https://github.com/LLK/scratch-gui/compare/v1.0.40...v1.0.41) (2022-10-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.27 ([4f48498](https://github.com/LLK/scratch-gui/commit/4f48498547ddfc1dd057f84c3465a7d5db2b48f6)) + +## [1.0.40](https://github.com/LLK/scratch-gui/compare/v1.0.39...v1.0.40) (2022-10-23) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221023063015 ([7fb1e70](https://github.com/LLK/scratch-gui/commit/7fb1e705f6d23cc5aa81610a1bd7a47c99b04587)) +* **deps:** update dependency scratch-l10n to v3.15.20221023032051 ([534337a](https://github.com/LLK/scratch-gui/commit/534337a1217d33e0aa47774bc32045fe0cdd7b86)) + +## [1.0.39](https://github.com/LLK/scratch-gui/compare/v1.0.38...v1.0.39) (2022-10-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.46 ([371480b](https://github.com/LLK/scratch-gui/commit/371480b245479e12c875a15a1c57c2d4e38b510a)) + +## [1.0.38](https://github.com/LLK/scratch-gui/compare/v1.0.37...v1.0.38) (2022-10-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.26 ([59c0fd6](https://github.com/LLK/scratch-gui/commit/59c0fd66b29f1151cf8de5441ecf90ddf1766c1e)) + +## [1.0.37](https://github.com/LLK/scratch-gui/compare/v1.0.36...v1.0.37) (2022-10-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221022065211 ([d871e9c](https://github.com/LLK/scratch-gui/commit/d871e9cff9625e6cb1eae9efeb849b6ea3c4e67f)) +* **deps:** update dependency scratch-l10n to v3.15.20221022032111 ([1935015](https://github.com/LLK/scratch-gui/commit/1935015c746f0be1f8fa5f0664b475545d475488)) + +## [1.0.36](https://github.com/LLK/scratch-gui/compare/v1.0.35...v1.0.36) (2022-10-22) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.44 ([60a5361](https://github.com/LLK/scratch-gui/commit/60a536152f9b24bf9fdf48b77b27e3086a48dcf4)) + +## [1.0.35](https://github.com/LLK/scratch-gui/compare/v1.0.34...v1.0.35) (2022-10-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.25 ([2c95003](https://github.com/LLK/scratch-gui/commit/2c9500314ac4edfa1b8649ab8a7fd4dfe4365b50)) + +## [1.0.34](https://github.com/LLK/scratch-gui/compare/v1.0.33...v1.0.34) (2022-10-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221021095556 ([bf312a6](https://github.com/LLK/scratch-gui/commit/bf312a6175fdb94df9cfae1756961976ddceab81)) + +## [1.0.33](https://github.com/LLK/scratch-gui/compare/v1.0.32...v1.0.33) (2022-10-21) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221021032055 ([b1c42a6](https://github.com/LLK/scratch-gui/commit/b1c42a65cdaf50011ac6dfb334ce7e8cb585ee48)) + +## [1.0.32](https://github.com/LLK/scratch-gui/compare/v1.0.31...v1.0.32) (2022-10-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.42 ([ff74134](https://github.com/LLK/scratch-gui/commit/ff74134f6cb3389515ed7f2cff5999a8ae5c308c)) + +## [1.0.31](https://github.com/LLK/scratch-gui/compare/v1.0.30...v1.0.31) (2022-10-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.24 ([3899b93](https://github.com/LLK/scratch-gui/commit/3899b93436e93c3d2fcf24e94771dd3dee266663)) + +## [1.0.30](https://github.com/LLK/scratch-gui/compare/v1.0.29...v1.0.30) (2022-10-20) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221020063332 ([1b82d0e](https://github.com/LLK/scratch-gui/commit/1b82d0e02efe2ad63a46531648e4c50e8e61ee81)) +* **deps:** update dependency scratch-l10n to v3.15.20221020032056 ([59a5f21](https://github.com/LLK/scratch-gui/commit/59a5f2164655868f47c65157548a9dc924c96721)) + +## [1.0.29](https://github.com/LLK/scratch-gui/compare/v1.0.28...v1.0.29) (2022-10-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.40 ([0bf7373](https://github.com/LLK/scratch-gui/commit/0bf7373eb229b245ea39ac5b14e0866e3f63d3e7)) + +## [1.0.28](https://github.com/LLK/scratch-gui/compare/v1.0.27...v1.0.28) (2022-10-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.23 ([5930f3f](https://github.com/LLK/scratch-gui/commit/5930f3ff93fe14d924f2a0dec3896172764b78d9)) + +## [1.0.27](https://github.com/LLK/scratch-gui/compare/v1.0.26...v1.0.27) (2022-10-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221019084718 ([7f938bd](https://github.com/LLK/scratch-gui/commit/7f938bdbdab183af11b99ba5f39552197e5d7fc4)) +* **deps:** update dependency scratch-l10n to v3.15.20221019032108 ([5b990af](https://github.com/LLK/scratch-gui/commit/5b990af18398a4cd9a677f223474414f4bcdaee4)) + +## [1.0.26](https://github.com/LLK/scratch-gui/compare/v1.0.25...v1.0.26) (2022-10-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.38 ([4ad85e0](https://github.com/LLK/scratch-gui/commit/4ad85e0a3f0ec8e1ede01b3e931a9ced280f39fc)) + +## [1.0.25](https://github.com/LLK/scratch-gui/compare/v1.0.24...v1.0.25) (2022-10-19) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.22 ([8adff9a](https://github.com/LLK/scratch-gui/commit/8adff9a13ad361ec4557edaea68c703daa01912c)) + +## [1.0.24](https://github.com/LLK/scratch-gui/compare/v1.0.23...v1.0.24) (2022-10-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221018075240 ([678f579](https://github.com/LLK/scratch-gui/commit/678f5792fea75fe61dee7cc44d885a93b5c85c81)) + +## [1.0.23](https://github.com/LLK/scratch-gui/compare/v1.0.22...v1.0.23) (2022-10-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221018032102 ([7d8dd19](https://github.com/LLK/scratch-gui/commit/7d8dd19e987e4b9cdc65a990bbe549eeecee7787)) + +## [1.0.22](https://github.com/LLK/scratch-gui/compare/v1.0.21...v1.0.22) (2022-10-18) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.36 ([a3f514e](https://github.com/LLK/scratch-gui/commit/a3f514e6ca764067829288d89cb38cb54566acd8)) + +## [1.0.21](https://github.com/LLK/scratch-gui/compare/v1.0.20...v1.0.21) (2022-10-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.21 ([32c30d1](https://github.com/LLK/scratch-gui/commit/32c30d1c365fb74127a96e59c01102ee83369391)) + +## [1.0.20](https://github.com/LLK/scratch-gui/compare/v1.0.19...v1.0.20) (2022-10-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221017074926 ([3868dd2](https://github.com/LLK/scratch-gui/commit/3868dd2929f6e9272230ba4bf29cf262e398282d)) + +## [1.0.19](https://github.com/LLK/scratch-gui/compare/v1.0.18...v1.0.19) (2022-10-17) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221017032104 ([b81a689](https://github.com/LLK/scratch-gui/commit/b81a6890a1a996194613466d7e62a3d50c07ebcb)) + +## [1.0.18](https://github.com/LLK/scratch-gui/compare/v1.0.17...v1.0.18) (2022-10-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.34 ([db49cdd](https://github.com/LLK/scratch-gui/commit/db49cddd219fc6e5b1a395463e1fca3dae3ed384)) + +## [1.0.17](https://github.com/LLK/scratch-gui/compare/v1.0.16...v1.0.17) (2022-10-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.20 ([8b2248b](https://github.com/LLK/scratch-gui/commit/8b2248bdefac8d541e4e2123958407779c362dd7)) + +## [1.0.16](https://github.com/LLK/scratch-gui/compare/v1.0.15...v1.0.16) (2022-10-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221016064500 ([1b5a1a7](https://github.com/LLK/scratch-gui/commit/1b5a1a778503aa1aa4522df24a3f8d3394de9a19)) + +## [1.0.15](https://github.com/LLK/scratch-gui/compare/v1.0.14...v1.0.15) (2022-10-16) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221016032111 ([ae8fff0](https://github.com/LLK/scratch-gui/commit/ae8fff06f10a5c4f1df60be376e5e8f7bf89d9bd)) + +## [1.0.14](https://github.com/LLK/scratch-gui/compare/v1.0.13...v1.0.14) (2022-10-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.32 ([98997f9](https://github.com/LLK/scratch-gui/commit/98997f926d70faddb87912c4cd4857a8bc1bfafa)) + +## [1.0.13](https://github.com/LLK/scratch-gui/compare/v1.0.12...v1.0.13) (2022-10-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.19 ([241b95d](https://github.com/LLK/scratch-gui/commit/241b95df4b708ec56bbf04d05dfe15efd7285589)) + +## [1.0.12](https://github.com/LLK/scratch-gui/compare/v1.0.11...v1.0.12) (2022-10-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221014054931 ([3288938](https://github.com/LLK/scratch-gui/commit/3288938ace2bf48b639854ea74302bc06b88788a)) +* **deps:** update dependency scratch-l10n to v3.15.20221014032124 ([2169864](https://github.com/LLK/scratch-gui/commit/2169864e3cc8121da8b1d41899f4020873666cb6)) + +## [1.0.11](https://github.com/LLK/scratch-gui/compare/v1.0.10...v1.0.11) (2022-10-14) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.30 ([e58bf39](https://github.com/LLK/scratch-gui/commit/e58bf39e11a16974c90009517beb798118ff8b84)) + +## [1.0.10](https://github.com/LLK/scratch-gui/compare/v1.0.9...v1.0.10) (2022-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.18 ([691bafe](https://github.com/LLK/scratch-gui/commit/691bafea81432bfcdb6b6405711b4893ae4bd2f0)) + +## [1.0.9](https://github.com/LLK/scratch-gui/compare/v1.0.8...v1.0.9) (2022-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221013073930 ([e1c7d02](https://github.com/LLK/scratch-gui/commit/e1c7d0226514e958d3b297828ad0f4d6c041d9d4)) + +## [1.0.8](https://github.com/LLK/scratch-gui/compare/v1.0.7...v1.0.8) (2022-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.17 ([49cf997](https://github.com/LLK/scratch-gui/commit/49cf99770e4099a340d2b009df8b41b025d990cc)) + +## [1.0.7](https://github.com/LLK/scratch-gui/compare/v1.0.6...v1.0.7) (2022-10-13) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221012214337 ([97ca9d7](https://github.com/LLK/scratch-gui/commit/97ca9d75b29f7266b912e5787e4eb45f5246fe0e)) +* **deps:** update dependency scratch-l10n to v3.15.20221013032144 ([4514dd9](https://github.com/LLK/scratch-gui/commit/4514dd919be5d8a7a259854d911d799cf2d33593)) + +## [1.0.6](https://github.com/LLK/scratch-gui/compare/v1.0.5...v1.0.6) (2022-10-12) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221012165310 ([91230f4](https://github.com/LLK/scratch-gui/commit/91230f451826f98ac7dff5a3076c8bb0229a2f18)) + +## [1.0.5](https://github.com/LLK/scratch-gui/compare/v1.0.4...v1.0.5) (2022-10-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-vm to v1.2.26 ([fd1ba4b](https://github.com/LLK/scratch-gui/commit/fd1ba4badfa5d6ac30eca6a6d734819ef33aed5c)) + +## [1.0.4](https://github.com/LLK/scratch-gui/compare/v1.0.3...v1.0.4) (2022-10-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-paint to v1.1.16 ([9857e43](https://github.com/LLK/scratch-gui/commit/9857e4347a99976eb2d10b437e4f5353e4784490)) + +## [1.0.3](https://github.com/LLK/scratch-gui/compare/v1.0.2...v1.0.3) (2022-10-04) + + +### Bug Fixes + +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221003201345 ([0a46741](https://github.com/LLK/scratch-gui/commit/0a467412b5afc5d3479369ab30f7da83bd5d1a3a)) + +## [1.0.2](https://github.com/LLK/scratch-gui/compare/v1.0.1...v1.0.2) (2022-10-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-semantic-release-config to v1.0.5 ([5d88cea](https://github.com/LLK/scratch-gui/commit/5d88cea48b7a4c88e3344f567d3b7c94e19f488a)) + +## [1.0.1](https://github.com/LLK/scratch-gui/compare/v1.0.0...v1.0.1) (2022-10-03) + + +### Bug Fixes + +* **deps:** update dependency scratch-l10n to v3.15.20221003143528 ([3683028](https://github.com/LLK/scratch-gui/commit/3683028256fe8ab826618d84c8d09e5097370b5a)) + +# 1.0.0 (2022-10-03) + + +### Bug Fixes + +* **blocks.js:** fix [#2014](https://github.com/LLK/scratch-gui/issues/2014) [#4209](https://github.com/LLK/scratch-gui/issues/4209) FieldDropdown will change translation when drag the "sensing_of" block ([14bce89](https://github.com/LLK/scratch-gui/commit/14bce895f8616efdf858f68605c7e85c04a9fc6e)) +* **css:** fix css justify-content property's value 'start, end' has mixed support warning ([9efcada](https://github.com/LLK/scratch-gui/commit/9efcadad5d293710dedd66f081d5b285ee32b766)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210729065131 ([a053e91](https://github.com/LLK/scratch-gui/commit/a053e91f4593b67455f232ebf6bdda206b642293)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210804044921 ([09137d9](https://github.com/LLK/scratch-gui/commit/09137d90fc06ca2b8822e02da4368d74d8f9cf89)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210805150037 ([d23a69e](https://github.com/LLK/scratch-gui/commit/d23a69e4fed29d993e54e42626f84786cde511f9)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210806050906 ([cb7e6a7](https://github.com/LLK/scratch-gui/commit/cb7e6a7bca79b0f11b23d6c578c1e9f80ba71890)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210807044309 ([5dcd41d](https://github.com/LLK/scratch-gui/commit/5dcd41de579a788c733611f841354907f2a63cb0)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210808052010 ([295b360](https://github.com/LLK/scratch-gui/commit/295b360c71103b1bf47d851d53f14dcdbb7447c7)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210808201335 ([e4b74f7](https://github.com/LLK/scratch-gui/commit/e4b74f78017cef9eb07cc637902bc059d229928a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210809095031 ([c6fc13f](https://github.com/LLK/scratch-gui/commit/c6fc13f19d73186b6e1d0801d493ee353d9f8eaa)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210809161304 ([fb0658b](https://github.com/LLK/scratch-gui/commit/fb0658b031bbac646e8bc3ee161b754cb3d4364d)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210809195341 ([b6301c0](https://github.com/LLK/scratch-gui/commit/b6301c07c4a2a0cd9ebf4bf7927cce73f8b506dd)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210810070650 ([e021897](https://github.com/LLK/scratch-gui/commit/e02189722c942c462bc4ff9d031771d60069f042)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210811082835 ([28d3b44](https://github.com/LLK/scratch-gui/commit/28d3b44615d4c4a3a0808308369738707999fe4e)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210812044732 ([8fd5d9d](https://github.com/LLK/scratch-gui/commit/8fd5d9d86c9dec13dc38cd17a87281c4ec064e98)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210815052016 ([024d1cf](https://github.com/LLK/scratch-gui/commit/024d1cf144480315931775a00c48546763e79c85)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210816045009 ([3846c7c](https://github.com/LLK/scratch-gui/commit/3846c7c731ac0308f3b49cea6205ccf5ffd2ab8e)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210816161333 ([8e7667e](https://github.com/LLK/scratch-gui/commit/8e7667e21ca62029acc46dea4e137a4f37bcecdf)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210817043814 ([0af3454](https://github.com/LLK/scratch-gui/commit/0af34547176f09b69397bdde2a2bf8d6c9fe0749)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210817191827 ([3646420](https://github.com/LLK/scratch-gui/commit/36464206752ae436f1fe3a90631dfe0fff24d89f)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210817224133 ([327b1ae](https://github.com/LLK/scratch-gui/commit/327b1ae658e5b2b3941734f188b1662894bb4dc3)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210818074602 ([09e7fd1](https://github.com/LLK/scratch-gui/commit/09e7fd12af923b85d4ee03ed865c0e5da4dda76d)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210819044315 ([f598899](https://github.com/LLK/scratch-gui/commit/f598899848f54332ca1e7178083bac07cc2f35a2)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210820050257 ([c9d7ccf](https://github.com/LLK/scratch-gui/commit/c9d7ccf0b3a8bce0637f3cd8d88368ce1fcf8d95)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210821081131 ([1245a26](https://github.com/LLK/scratch-gui/commit/1245a2698b274e4e37e50d96049a1a23e75a4a63)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210823092541 ([c177dce](https://github.com/LLK/scratch-gui/commit/c177dce130a444416d065137dac1df458fea8c40)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210823161356 ([9464362](https://github.com/LLK/scratch-gui/commit/9464362d7900f94a247f90e90a03bd4d39ec0a9e)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210824044538 ([d7ef536](https://github.com/LLK/scratch-gui/commit/d7ef5362d8d93437dea77bfe39a6f9104dd1210e)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210825065458 ([6bd4579](https://github.com/LLK/scratch-gui/commit/6bd4579f31ab9d28f5ce953e2337d7a47ba799cb)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210826052324 ([fa77f36](https://github.com/LLK/scratch-gui/commit/fa77f36244be914022d06a568e023fda82490013)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210828072326 ([50deb5c](https://github.com/LLK/scratch-gui/commit/50deb5c837373c1ee9c7874f6db070613a705f6b)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20210829081240 ([ad488c0](https://github.com/LLK/scratch-gui/commit/ad488c01d2d6269ebc67e8449b68422a3df369fc)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211005172512 ([827f13c](https://github.com/LLK/scratch-gui/commit/827f13c91d56d3f3e07f36f40a865cf49235d2b4)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211005194733 ([b3d28f1](https://github.com/LLK/scratch-gui/commit/b3d28f15cbf7e67a462ec96dbe37b6fecd8be860)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211006012637 ([811c17c](https://github.com/LLK/scratch-gui/commit/811c17c9115f3ba97e447897b36bc79a6b4ee78b)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211006052142 ([754b44c](https://github.com/LLK/scratch-gui/commit/754b44c89ed2984f924d4286de9b1583035fca8a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211008080038 ([e140b53](https://github.com/LLK/scratch-gui/commit/e140b53eb1cea34ec77a316e89cb4e05187146c3)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211009073839 ([6a9d13a](https://github.com/LLK/scratch-gui/commit/6a9d13a24c3c989db2ff79d491bd8e6a603f5926)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211010075939 ([8299f61](https://github.com/LLK/scratch-gui/commit/8299f61b3cea1f5517f00bf4353280d8d7215816)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211011082619 ([f960b93](https://github.com/LLK/scratch-gui/commit/f960b93e7592b9942a724cb7f7c9ca7b0189c523)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211011161731 ([0d0a677](https://github.com/LLK/scratch-gui/commit/0d0a6770ffcaba53e6b08d7fb3c74159612962a1)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211013085421 ([9be594a](https://github.com/LLK/scratch-gui/commit/9be594a8f5493697e01f572382b0741a34a92d1a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211015050203 ([658cd9b](https://github.com/LLK/scratch-gui/commit/658cd9b237d8559d4217e1690a37de2d6362dccf)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211019012346 ([153a1a7](https://github.com/LLK/scratch-gui/commit/153a1a72d423ae064c427d0c322c0d346bcd7f5a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211021060806 ([cd42234](https://github.com/LLK/scratch-gui/commit/cd4223411cfb6e6f09b7276a724a08ffae1587b5)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211022094652 ([5cbd412](https://github.com/LLK/scratch-gui/commit/5cbd4121c7b55a163baba75e7db02e638b7fc6d3)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211023053620 ([6d94ebe](https://github.com/LLK/scratch-gui/commit/6d94ebef6fca5f7bbb5f95c4f394112d0fc15f33)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211024085206 ([8c5cca2](https://github.com/LLK/scratch-gui/commit/8c5cca28d5a803a54a834bb2672c7b6bc0394c61)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211025090900 ([629df51](https://github.com/LLK/scratch-gui/commit/629df51be7b4a4bce88137c3f7401e6143d583fc)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211025161840 ([5f2b018](https://github.com/LLK/scratch-gui/commit/5f2b018eb999a17636c88badf1f30cec9ffcdcaa)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211026075358 ([145caf2](https://github.com/LLK/scratch-gui/commit/145caf27742224c66d91d3f9c5cf705f7c57e43e)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211027052803 ([27ca5ce](https://github.com/LLK/scratch-gui/commit/27ca5cedb75cdb78d0cf464c9541efbbc59d141a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211028085347 ([0c7f160](https://github.com/LLK/scratch-gui/commit/0c7f160eeda3a7d8e49ac8b205ff058640cef350)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211029083216 ([3b022dd](https://github.com/LLK/scratch-gui/commit/3b022dd26de5e4e47456bfb7f503166e7ad8c632)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211030083115 ([06d3d65](https://github.com/LLK/scratch-gui/commit/06d3d6528efb20e2d6c9ed62252ac9feefffa568)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211031090041 ([64e4c54](https://github.com/LLK/scratch-gui/commit/64e4c54317fb86051f238136099d058b31d76c42)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211101085901 ([e1a058e](https://github.com/LLK/scratch-gui/commit/e1a058ebd32e0f8f2cc7e0baf92f07723182fba9)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211101161847 ([b599178](https://github.com/LLK/scratch-gui/commit/b599178184c962dba590f5d8a5ef3214749ccaf4)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211102084621 ([f6af51a](https://github.com/LLK/scratch-gui/commit/f6af51a7a61adc28ec12c34e52c0388147beb6ae)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211103084955 ([2bcfaab](https://github.com/LLK/scratch-gui/commit/2bcfaab94ec9bfaa8eb79a969312e6c30a61039d)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211104083349 ([bcbce9b](https://github.com/LLK/scratch-gui/commit/bcbce9b47e562e3b0a4a546eec8690f7a5c82152)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211105104409 ([8402a0d](https://github.com/LLK/scratch-gui/commit/8402a0d7aec99a9ecc67413f51d56ea15d1bec1d)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211106082714 ([b24b75e](https://github.com/LLK/scratch-gui/commit/b24b75e97410a6e24d5e98270c0b428ccfbc1313)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211107094129 ([19358b4](https://github.com/LLK/scratch-gui/commit/19358b43715b2064a3257f2646c450d7d5674d13)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211108101351 ([d447807](https://github.com/LLK/scratch-gui/commit/d447807a95669456b62411bc7d0fbbfe904e856f)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211109055049 ([f0d00ed](https://github.com/LLK/scratch-gui/commit/f0d00ede4ddd0d0c8de84e9d59700c651ce5f412)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20211110095305 ([ea6e120](https://github.com/LLK/scratch-gui/commit/ea6e12001fd9544c21489e15211d4e807a82e542)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220216183318 ([e2a3f96](https://github.com/LLK/scratch-gui/commit/e2a3f96d5e55685fe0f30b4de8c2918c33719956)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220217093315 ([e0f6e0f](https://github.com/LLK/scratch-gui/commit/e0f6e0f9f14967517d801115e34c9e5ad08df0e9)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220219092130 ([d4893ad](https://github.com/LLK/scratch-gui/commit/d4893ad3533d4a794a46daa7c0b9a4d18fefecc3)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220220090259 ([1243996](https://github.com/LLK/scratch-gui/commit/124399641df45c1af13c5522ac2079d8e1067f5a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220221093911 ([91a7867](https://github.com/LLK/scratch-gui/commit/91a7867043816bcaf0c5041137644ec2dbb88569)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220221162611 ([2ecc070](https://github.com/LLK/scratch-gui/commit/2ecc0702aec30f226e95c988b2f54a602e038cd7)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220222091839 ([a09b86a](https://github.com/LLK/scratch-gui/commit/a09b86a5933de2bbcf013181018dd7a9202f1e25)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220223064322 ([01c1317](https://github.com/LLK/scratch-gui/commit/01c1317f7e360c506e1f06ee1c52b32f88ca1199)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220226084359 ([85c6a6b](https://github.com/LLK/scratch-gui/commit/85c6a6ba439d02d542947aa228a6d98a8c8670b7)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220227085359 ([1720af8](https://github.com/LLK/scratch-gui/commit/1720af891cf2da5c906bf722bed07038520cf1ce)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220228083857 ([cdff3ed](https://github.com/LLK/scratch-gui/commit/cdff3ed52853ab4ac39d5e9e2b9ad1cb10e4dee9)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220301070702 ([0fb5fdb](https://github.com/LLK/scratch-gui/commit/0fb5fdbbac6e7cc9fcf8c462c8b29d18c4760ff2)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220302071357 ([2baca46](https://github.com/LLK/scratch-gui/commit/2baca469c8160e4b8f8998d989006f159731395b)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220303091956 ([ab1dfbc](https://github.com/LLK/scratch-gui/commit/ab1dfbcd144618e37ea8e8945a649646ddbcd99c)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220304102410 ([0c1e9ad](https://github.com/LLK/scratch-gui/commit/0c1e9ad1c802285b45b417c64115256e3e10ab20)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220305103652 ([20610fd](https://github.com/LLK/scratch-gui/commit/20610fdbfd3334c68c948f8660826938606e295d)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220306061428 ([8c8e8dd](https://github.com/LLK/scratch-gui/commit/8c8e8dd96689643fc9370a682c6350e01dbd3c92)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220307063050 ([cfa1c67](https://github.com/LLK/scratch-gui/commit/cfa1c67944a91df2f9c420bdfabc2ffd743f0da5)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220308054435 ([69eed43](https://github.com/LLK/scratch-gui/commit/69eed43b66074502f42e253143266ded657d4e39)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220309060826 ([c134222](https://github.com/LLK/scratch-gui/commit/c134222e7183b081c7549d8166d4cae54cde87f1)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220310105052 ([9a28a93](https://github.com/LLK/scratch-gui/commit/9a28a93a3bc7fe221a5069529b389b6838b3870f)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220311190649 ([45df951](https://github.com/LLK/scratch-gui/commit/45df951f00b8b7f78d902486377b34890bdfeeb8)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220312091426 ([e6a0bfe](https://github.com/LLK/scratch-gui/commit/e6a0bfee3c879eb8dfa468689088eef6241043bb)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220313054847 ([8467e82](https://github.com/LLK/scratch-gui/commit/8467e8253d1bdf0752f66af9ddd2e9306f9de192)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220314110657 ([f165550](https://github.com/LLK/scratch-gui/commit/f16555065f8e90523c9c4c4bf01c17979d94dd4d)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220314162726 ([db67b1a](https://github.com/LLK/scratch-gui/commit/db67b1ae37505fee1456d163e9230b832570daaa)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220315091134 ([0ee7866](https://github.com/LLK/scratch-gui/commit/0ee7866a75eb8ad5042d766da4563fbdfdfd5192)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220316100156 ([5eab0e3](https://github.com/LLK/scratch-gui/commit/5eab0e3e5d18b0436ce7083b193a99483940b402)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220317055410 ([0608c14](https://github.com/LLK/scratch-gui/commit/0608c14c57916a1d7de81e757724aa9561514581)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220318163405 ([9bfc4d0](https://github.com/LLK/scratch-gui/commit/9bfc4d0f263cb0d9323a68602952f66b87e62a8a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220319092339 ([acb575d](https://github.com/LLK/scratch-gui/commit/acb575d942f3f570022c8188f4b5405c37b34787)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220320112111 ([1d7dcf2](https://github.com/LLK/scratch-gui/commit/1d7dcf220288a793877a8f23e2cd4cd91cfddce5)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220321103636 ([0a9c844](https://github.com/LLK/scratch-gui/commit/0a9c844db8d6a260c03ba1c157b07a6b9fd5e7f2)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220322101312 ([9893369](https://github.com/LLK/scratch-gui/commit/98933695fa3b7dedfc95a04ddbf274b3253ae70b)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220323044431 ([590a067](https://github.com/LLK/scratch-gui/commit/590a067fec52d3cdcfb7b030ff5fc0c5905878ff)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220324092947 ([36d9dd4](https://github.com/LLK/scratch-gui/commit/36d9dd49d380c623ebf70327730d8c6bf0db87a6)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220325094325 ([940fcd0](https://github.com/LLK/scratch-gui/commit/940fcd038a7a2e19e663856084f98da65ec4caea)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220326113321 ([ed32302](https://github.com/LLK/scratch-gui/commit/ed32302a2ea4fea4efef2424a56fde93b97f738f)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220327095802 ([2ded218](https://github.com/LLK/scratch-gui/commit/2ded2185cd3abc4db9cbe4245146a73c05573d57)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220328162804 ([fa8909d](https://github.com/LLK/scratch-gui/commit/fa8909d582bd742d712cac937d6bf122f2d48f6f)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220329103322 ([2e276b7](https://github.com/LLK/scratch-gui/commit/2e276b7522d2384bb524709974326b0c75c83ee9)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220501111245 ([75b0f86](https://github.com/LLK/scratch-gui/commit/75b0f863759124c8f7a0ac1337f5f4de14dc3c25)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220504122548 ([8f1ac5a](https://github.com/LLK/scratch-gui/commit/8f1ac5a85e7456a17986812000657367dd56261d)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220505120102 ([8e1e58e](https://github.com/LLK/scratch-gui/commit/8e1e58ea7489dfcdbea0d7f54b80418906f3fe1b)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220506053418 ([832edbf](https://github.com/LLK/scratch-gui/commit/832edbf6a695de94c76f3e85aa811400a2f0715a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220507112727 ([7ee2dc3](https://github.com/LLK/scratch-gui/commit/7ee2dc3d169eac0a0e2c773fe27b2f642ba27ce7)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220510060607 ([0e922ed](https://github.com/LLK/scratch-gui/commit/0e922ed0085d8a6137ee3531e3715912641eff59)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220511061139 ([2bf1c58](https://github.com/LLK/scratch-gui/commit/2bf1c589f7c7c129d6983dc234b4fe47878df205)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220512110327 ([8ff0b10](https://github.com/LLK/scratch-gui/commit/8ff0b105ed94a4aef32c28cb90a7fa7116fcfbad)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220513114647 ([5790603](https://github.com/LLK/scratch-gui/commit/5790603d6c26cce11f11669b9f0ba3cc7b683b18)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220514094633 ([6c5e175](https://github.com/LLK/scratch-gui/commit/6c5e175d605b666ccf61251befadb3b8b6eb5ec3)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220515051842 ([b10231b](https://github.com/LLK/scratch-gui/commit/b10231ba354aa2d1fbbc1fc7e8d7f4198bab133a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220518054341 ([0cb030f](https://github.com/LLK/scratch-gui/commit/0cb030f3b3259de7f66a94b00a2aaf47beb1f3db)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220518171845 ([c909de0](https://github.com/LLK/scratch-gui/commit/c909de00d5c7e24d0c941cb1ab071a927c37ddd2)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220519063721 ([6fdbf9f](https://github.com/LLK/scratch-gui/commit/6fdbf9fa42afa894928f50bf93bb28a8282d2c9c)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220520115326 ([d2ff6f1](https://github.com/LLK/scratch-gui/commit/d2ff6f1047e1bcfd6bf68ca90207d54bc259c92b)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220521063649 ([3974373](https://github.com/LLK/scratch-gui/commit/3974373468a90fa6f5b0cb7cbe4e79c4939deab1)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220522064333 ([ea878e5](https://github.com/LLK/scratch-gui/commit/ea878e5e47d517dafbc3eeb19ce36bd3a24cb761)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220523113733 ([15c2061](https://github.com/LLK/scratch-gui/commit/15c2061e6e5e279b8f22b5d280124548dce05fef)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220524062105 ([ea911d6](https://github.com/LLK/scratch-gui/commit/ea911d654733ac3d93688f0516f882a5e7f98b4a)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220913171331 ([a8f4706](https://github.com/LLK/scratch-gui/commit/a8f47064c05fc227c2a779fc1df5c9eb9cd07d4c)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220918092429 ([8899e14](https://github.com/LLK/scratch-gui/commit/8899e14fae0901eb9aac918b8a8427359e629cee)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220919063121 ([29ef558](https://github.com/LLK/scratch-gui/commit/29ef558e12fc42f0a7e187dae347db0e7679b286)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220920113425 ([d3c98b1](https://github.com/LLK/scratch-gui/commit/d3c98b19d9ac2b96fa70721eae927766d5844f87)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220921062826 ([384296d](https://github.com/LLK/scratch-gui/commit/384296db8a064e5a2cc2d13f60feb98e8698fcc3)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220922152715 ([4bcde1f](https://github.com/LLK/scratch-gui/commit/4bcde1f5df2ff3b26038b6c99ffcc74a0d33191e)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220924065844 ([72c758b](https://github.com/LLK/scratch-gui/commit/72c758bcc791b62851b9c92336c84733cc88c1f2)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220925052803 ([0d75356](https://github.com/LLK/scratch-gui/commit/0d753563c38da9e697f070cf8ba99583b676a8e3)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220926172822 ([c9a701f](https://github.com/LLK/scratch-gui/commit/c9a701fd6d4cc2d91d7eb2e37d650fb41bd14e54)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20220927130010 ([273ce21](https://github.com/LLK/scratch-gui/commit/273ce217e71d7bd73c6c74867e915114cf7ed5da)) +* **deps:** update dependency scratch-blocks to v0.1.0-prerelease.20221001221414 ([1d513cc](https://github.com/LLK/scratch-gui/commit/1d513cc98fb711bc1e7566e35d469e7b6ded70d5)) +* **deps:** update dependency scratch-l10n to v3.13.20210729031512 ([555b8f9](https://github.com/LLK/scratch-gui/commit/555b8f93fbfd1d4836354ab807c52e883359b774)) +* **deps:** update dependency scratch-l10n to v3.13.20210804031526 ([b094670](https://github.com/LLK/scratch-gui/commit/b094670d88d3e6b4c0b1490a2ff0644afa4369e6)) +* **deps:** update dependency scratch-l10n to v3.14.20210805134927 ([80c5f83](https://github.com/LLK/scratch-gui/commit/80c5f831442ca6972a407f798d3ee1846e95c7bc)) +* **deps:** update dependency scratch-l10n to v3.14.20210806031538 ([446f6e0](https://github.com/LLK/scratch-gui/commit/446f6e01239002068acd1c51d39fb736d9c26c23)) +* **deps:** update dependency scratch-l10n to v3.14.20210807031704 ([65f5802](https://github.com/LLK/scratch-gui/commit/65f5802a7db66ee3f4d9c27a20058cf2579c0519)) +* **deps:** update dependency scratch-l10n to v3.14.20210808031521 ([e6186bb](https://github.com/LLK/scratch-gui/commit/e6186bb74629e525806c5c64e59b10a7046ac747)) +* **deps:** update dependency scratch-l10n to v3.14.20210809031602 ([c8315e7](https://github.com/LLK/scratch-gui/commit/c8315e73af2a82bcaa6738af7426fa3b40890704)) +* **deps:** update dependency scratch-l10n to v3.14.20210810031545 ([07cfc2d](https://github.com/LLK/scratch-gui/commit/07cfc2d5de0bf24775acb79224ead6b6f43d2ce7)) +* **deps:** update dependency scratch-l10n to v3.14.20210811031521 ([ad27500](https://github.com/LLK/scratch-gui/commit/ad27500146a1e85802e804598af42a647b19bac1)) +* **deps:** update dependency scratch-l10n to v3.14.20210812031510 ([cf996fe](https://github.com/LLK/scratch-gui/commit/cf996fe3bb2e0d453b45b47608622e41c2d060e9)) +* **deps:** update dependency scratch-l10n to v3.14.20210815031459 ([74b27f8](https://github.com/LLK/scratch-gui/commit/74b27f8cdc7e2ab35eb3e306e8ffff4c460bcdcf)) +* **deps:** update dependency scratch-l10n to v3.14.20210816031521 ([e7f65aa](https://github.com/LLK/scratch-gui/commit/e7f65aae3d6cd3d1764043765d28b55a780111e5)) +* **deps:** update dependency scratch-l10n to v3.14.20210817031539 ([18ab3d4](https://github.com/LLK/scratch-gui/commit/18ab3d4ec6094fe78f28a9dcf1fc4613e33fe447)) +* **deps:** update dependency scratch-l10n to v3.14.20210818031501 ([4894e67](https://github.com/LLK/scratch-gui/commit/4894e67b3ad165599f1b811ce48a7d303182411d)) +* **deps:** update dependency scratch-l10n to v3.14.20210819031659 ([e7b7268](https://github.com/LLK/scratch-gui/commit/e7b726845f1d5405adee53b1d818fd92c0f7e8e9)) +* **deps:** update dependency scratch-l10n to v3.14.20210820031536 ([a32d081](https://github.com/LLK/scratch-gui/commit/a32d0817149ca0aa1a92e78422df0c67ee638367)) +* **deps:** update dependency scratch-l10n to v3.14.20210821031719 ([0a83037](https://github.com/LLK/scratch-gui/commit/0a83037c07928c5db9f609894e1864f19c6d0887)) +* **deps:** update dependency scratch-l10n to v3.14.20210822031457 ([af1bd5a](https://github.com/LLK/scratch-gui/commit/af1bd5ae9f77b6414ebb5ee476309eb239c6613d)) +* **deps:** update dependency scratch-l10n to v3.14.20210823031509 ([fd15ba1](https://github.com/LLK/scratch-gui/commit/fd15ba172eec7502baaae6880a3df9032d4a13c9)) +* **deps:** update dependency scratch-l10n to v3.14.20210824031505 ([2bdc10d](https://github.com/LLK/scratch-gui/commit/2bdc10d95b0ceecfa9bbd15cba1f22ab72c43787)) +* **deps:** update dependency scratch-l10n to v3.14.20210825031502 ([7113a47](https://github.com/LLK/scratch-gui/commit/7113a47d1570d6af022203c4d08de7b8c78341a5)) +* **deps:** update dependency scratch-l10n to v3.14.20210826031518 ([1cbf8b6](https://github.com/LLK/scratch-gui/commit/1cbf8b697e7c75b58df2ca2421ff60b445eafe01)) +* **deps:** update dependency scratch-l10n to v3.14.20210827031535 ([5a0d12b](https://github.com/LLK/scratch-gui/commit/5a0d12b1f3ab7180e13567e3a04cddc06d9afb7a)) +* **deps:** update dependency scratch-l10n to v3.14.20210828031523 ([363acb7](https://github.com/LLK/scratch-gui/commit/363acb74eae06a2ca32e07f5fe079899f43a0d6d)) +* **deps:** update dependency scratch-l10n to v3.14.20210829031508 ([bd06645](https://github.com/LLK/scratch-gui/commit/bd0664567822843d9e88f96407c828973aa86784)) +* **deps:** update dependency scratch-l10n to v3.14.20210830031531 ([9b7bd9a](https://github.com/LLK/scratch-gui/commit/9b7bd9af434f188b7bbf6c199adc2019f2628d45)) +* **deps:** update dependency scratch-l10n to v3.14.20210901031514 ([3129dbb](https://github.com/LLK/scratch-gui/commit/3129dbb8f9fe93a7daaad4b623b8ac952cd0d40f)) +* **deps:** update dependency scratch-l10n to v3.14.20210902031520 ([8f28a27](https://github.com/LLK/scratch-gui/commit/8f28a2771711eadf24213bc0b739b2ad26196098)) +* **deps:** update dependency scratch-l10n to v3.14.20210903031510 ([e318a3a](https://github.com/LLK/scratch-gui/commit/e318a3a9fca0913c5a95f704fdbbc84bf77735ee)) +* **deps:** update dependency scratch-l10n to v3.14.20210904031533 ([88b4df0](https://github.com/LLK/scratch-gui/commit/88b4df0b47661764196186bb49bb18729d7d0c75)) +* **deps:** update dependency scratch-l10n to v3.14.20210907031515 ([cf78f92](https://github.com/LLK/scratch-gui/commit/cf78f92e9db3a8dfaca2785ac7c75e9a8a1a0a67)) +* **deps:** update dependency scratch-l10n to v3.14.20210908031534 ([c842631](https://github.com/LLK/scratch-gui/commit/c8426310a5170f51e98f9076a5a818c9a3a372ad)) +* **deps:** update dependency scratch-l10n to v3.14.20210909031513 ([42c17ca](https://github.com/LLK/scratch-gui/commit/42c17ca01763fccb2c2de28c077dc6ad481c48af)) +* **deps:** update dependency scratch-l10n to v3.14.20210910031458 ([b8195a9](https://github.com/LLK/scratch-gui/commit/b8195a93de2338da077b7262b329ad74f394292d)) +* **deps:** update dependency scratch-l10n to v3.14.20210911031507 ([2e33808](https://github.com/LLK/scratch-gui/commit/2e33808b7f73480be1df337763670494d6fa2aee)) +* **deps:** update dependency scratch-l10n to v3.14.20210912031519 ([8a8ead7](https://github.com/LLK/scratch-gui/commit/8a8ead7e1e728840aa28d3ae6bb0e8acf83ddcb8)) +* **deps:** update dependency scratch-l10n to v3.14.20210913031518 ([547a450](https://github.com/LLK/scratch-gui/commit/547a45044b08875efe6fac027d0b5db71b411d24)) +* **deps:** update dependency scratch-l10n to v3.14.20210914031548 ([06bd4eb](https://github.com/LLK/scratch-gui/commit/06bd4eba5df51f96d4687ef3bcfab007038cb2de)) +* **deps:** update dependency scratch-l10n to v3.14.20210916031537 ([3552392](https://github.com/LLK/scratch-gui/commit/3552392ea0b4e416011d89a8f8c63d4da75bf4f3)) +* **deps:** update dependency scratch-l10n to v3.14.20210917031538 ([944bb63](https://github.com/LLK/scratch-gui/commit/944bb6346972fd3b38cd74e023e62f55f7a3aadb)) +* **deps:** update dependency scratch-l10n to v3.14.20210918031508 ([c6e24d8](https://github.com/LLK/scratch-gui/commit/c6e24d8cc14849e685a7eab3c19eff6e80342823)) +* **deps:** update dependency scratch-l10n to v3.14.20210920031533 ([fd1ce59](https://github.com/LLK/scratch-gui/commit/fd1ce59e19a045db41022a60c953944811ace402)) +* **deps:** update dependency scratch-l10n to v3.14.20210921031538 ([c7ed9b1](https://github.com/LLK/scratch-gui/commit/c7ed9b198e81b61b40b69379e36b945b2cdc9637)) +* **deps:** update dependency scratch-l10n to v3.14.20210922031532 ([947eec7](https://github.com/LLK/scratch-gui/commit/947eec7897dd6674cf0a2a6182fe49c5c6df977d)) +* **deps:** update dependency scratch-l10n to v3.14.20210923031528 ([15d6b24](https://github.com/LLK/scratch-gui/commit/15d6b2400cb74597c082dccc82b1fcd30a21d7ff)) +* **deps:** update dependency scratch-l10n to v3.14.20210925031536 ([15500b6](https://github.com/LLK/scratch-gui/commit/15500b6776ce3418a7370dec0f1ed335d25107a6)) +* **deps:** update dependency scratch-l10n to v3.14.20210926031519 ([5fae853](https://github.com/LLK/scratch-gui/commit/5fae853ca60aa1403485c34c0e1f21d42a4e1275)) +* **deps:** update dependency scratch-l10n to v3.14.20210927031529 ([d5cf439](https://github.com/LLK/scratch-gui/commit/d5cf439ef6eeae636f071b95e2bcae55bbbbc5fe)) +* **deps:** update dependency scratch-l10n to v3.14.20210928031525 ([a054124](https://github.com/LLK/scratch-gui/commit/a05412428d0f3224c614d7e742301a91e62af167)) +* **deps:** update dependency scratch-l10n to v3.14.20210929031524 ([a62166b](https://github.com/LLK/scratch-gui/commit/a62166bf3d996c3ce080868bd176438cce6f0c40)) +* **deps:** update dependency scratch-l10n to v3.14.20210930031530 ([e9c13b6](https://github.com/LLK/scratch-gui/commit/e9c13b63bbe3ddc54255e348369fa31ac11f3cba)) +* **deps:** update dependency scratch-l10n to v3.14.20211001031504 ([9de54b6](https://github.com/LLK/scratch-gui/commit/9de54b685b80452f4d5a326c5b014bc32e7026d3)) +* **deps:** update dependency scratch-l10n to v3.14.20211005031504 ([1f8788d](https://github.com/LLK/scratch-gui/commit/1f8788df1a6344f5afffad4cc67ccd9c1fb0b3a3)) +* **deps:** update dependency scratch-l10n to v3.14.20211006031531 ([5f7dd80](https://github.com/LLK/scratch-gui/commit/5f7dd80ef6911cafd4f6a09064e028f10e728e55)) +* **deps:** update dependency scratch-l10n to v3.14.20211008031546 ([61f84bf](https://github.com/LLK/scratch-gui/commit/61f84bf25afb351ac6d3b244a0a18090cc56fae3)) +* **deps:** update dependency scratch-l10n to v3.14.20211009031514 ([9040aba](https://github.com/LLK/scratch-gui/commit/9040abaf83f09e5921608aaf89d20bd06a4cb12c)) +* **deps:** update dependency scratch-l10n to v3.14.20211010031510 ([3c6ab98](https://github.com/LLK/scratch-gui/commit/3c6ab98f879d2fb1c79e3113be59eacfd2ba3c7e)) +* **deps:** update dependency scratch-l10n to v3.14.20211011031532 ([0ddb3e7](https://github.com/LLK/scratch-gui/commit/0ddb3e73a61affddb7f7700ab65b95f2e02a03e7)) +* **deps:** update dependency scratch-l10n to v3.14.20211013031511 ([fdc34d9](https://github.com/LLK/scratch-gui/commit/fdc34d97a4a3d3f128ca07c88377a28e5a8bf5ba)) +* **deps:** update dependency scratch-l10n to v3.14.20211015031515 ([7dc14bf](https://github.com/LLK/scratch-gui/commit/7dc14bfeaee445863bbc1f9fff87a1dc321971a6)) +* **deps:** update dependency scratch-l10n to v3.14.20211021031508 ([ee1eff5](https://github.com/LLK/scratch-gui/commit/ee1eff599515543dda7b43c8a0a9189380ea892a)) +* **deps:** update dependency scratch-l10n to v3.14.20211022031531 ([b59011d](https://github.com/LLK/scratch-gui/commit/b59011d6f1bc39a038fc70d4e7ba0f2dedcd9076)) +* **deps:** update dependency scratch-l10n to v3.14.20211023031545 ([d22815e](https://github.com/LLK/scratch-gui/commit/d22815e63d543ab3fbc41cf476812305752fdef0)) +* **deps:** update dependency scratch-l10n to v3.14.20211024031536 ([c3869c8](https://github.com/LLK/scratch-gui/commit/c3869c8a0162a2def17776d9ed5a0d0c98ea3dcb)) +* **deps:** update dependency scratch-l10n to v3.14.20211025031602 ([d66359e](https://github.com/LLK/scratch-gui/commit/d66359ecb82ff58cab1da4f38334ca78031536c7)) +* **deps:** update dependency scratch-l10n to v3.14.20211026031553 ([0e2f71e](https://github.com/LLK/scratch-gui/commit/0e2f71e38dd715513c2abd22a38616c58427a27e)) +* **deps:** update dependency scratch-l10n to v3.14.20211027031612 ([1c8c00d](https://github.com/LLK/scratch-gui/commit/1c8c00da3261cdb5cc5f5351bd6093c5b135fe37)) +* **deps:** update dependency scratch-l10n to v3.14.20211028031720 ([beaaf24](https://github.com/LLK/scratch-gui/commit/beaaf2455e9220019c5db75fe55f1db8401975ca)) +* **deps:** update dependency scratch-l10n to v3.14.20211029031547 ([f60dde3](https://github.com/LLK/scratch-gui/commit/f60dde3e1ef3ff9c1c612f1809c4ca1d52ed003f)) +* **deps:** update dependency scratch-l10n to v3.14.20211030031545 ([fc42bb3](https://github.com/LLK/scratch-gui/commit/fc42bb3c3f5b6bf27e2ad4732eb4bde665249f03)) +* **deps:** update dependency scratch-l10n to v3.14.20211031031546 ([58bc961](https://github.com/LLK/scratch-gui/commit/58bc96151c75693969a86210669917fb5522945f)) +* **deps:** update dependency scratch-l10n to v3.14.20211101031546 ([58827cf](https://github.com/LLK/scratch-gui/commit/58827cf1cd2113cfe828d22b4abba28a410c4d0d)) +* **deps:** update dependency scratch-l10n to v3.14.20211102031622 ([d1d61b1](https://github.com/LLK/scratch-gui/commit/d1d61b119d63d6cd792924e34a91f7a412ba42b2)) +* **deps:** update dependency scratch-l10n to v3.14.20211103031555 ([cebe2f2](https://github.com/LLK/scratch-gui/commit/cebe2f270ccacc0239b4bf75e4ee376fdfa4046c)) +* **deps:** update dependency scratch-l10n to v3.14.20211104031600 ([c8614a9](https://github.com/LLK/scratch-gui/commit/c8614a94920091bf8a7e3b05abcf09b89a42853d)) +* **deps:** update dependency scratch-l10n to v3.14.20211105031558 ([829e97e](https://github.com/LLK/scratch-gui/commit/829e97e41a8a9f59402b178aabd8a18c60870b85)) +* **deps:** update dependency scratch-l10n to v3.14.20211106031621 ([fc0535d](https://github.com/LLK/scratch-gui/commit/fc0535da4ac843943225e87ab86f4da46818f9f9)) +* **deps:** update dependency scratch-l10n to v3.14.20211107031532 ([c35ecde](https://github.com/LLK/scratch-gui/commit/c35ecdef4d746b379b76137cdfebc978a245246e)) +* **deps:** update dependency scratch-l10n to v3.14.20211108031543 ([adace39](https://github.com/LLK/scratch-gui/commit/adace392eff6a9654e1f61aaf020fdb7638ffa1f)) +* **deps:** update dependency scratch-l10n to v3.14.20211109031603 ([87f1b5e](https://github.com/LLK/scratch-gui/commit/87f1b5e8ec88d0008df94c7a40f73c34219ceae8)) +* **deps:** update dependency scratch-l10n to v3.14.20211110031601 ([e8a08aa](https://github.com/LLK/scratch-gui/commit/e8a08aaa85dae97ce97ad826337ef6e44cd6679f)) +* **deps:** update dependency scratch-l10n to v3.14.20211116031608 ([e2b2054](https://github.com/LLK/scratch-gui/commit/e2b20548d456dac496c3026ced4530089775a3ce)) +* **deps:** update dependency scratch-l10n to v3.14.20211117031600 ([f6f25a9](https://github.com/LLK/scratch-gui/commit/f6f25a9ffdb44326f10df9c72317c09b3948a718)) +* **deps:** update dependency scratch-l10n to v3.14.20211118031553 ([bc8b62b](https://github.com/LLK/scratch-gui/commit/bc8b62b241e2f1e4f3c9d54807d10b1db75f8860)) +* **deps:** update dependency scratch-l10n to v3.14.20211119031548 ([1a3103f](https://github.com/LLK/scratch-gui/commit/1a3103f4245cb0958892bf08c6960dbb663ed869)) +* **deps:** update dependency scratch-l10n to v3.14.20211120031708 ([ec0c9b1](https://github.com/LLK/scratch-gui/commit/ec0c9b1e49b696a99e166447e36e826e3809fffb)) +* **deps:** update dependency scratch-l10n to v3.14.20211121031602 ([d308e04](https://github.com/LLK/scratch-gui/commit/d308e0405a30cdcd3f8670edd14fece1fb9a73d0)) +* **deps:** update dependency scratch-l10n to v3.14.20211122031614 ([1c355d3](https://github.com/LLK/scratch-gui/commit/1c355d39710fb31d26b942452ee2bce9c82e8950)) +* **deps:** update dependency scratch-l10n to v3.14.20211123031536 ([265a1d9](https://github.com/LLK/scratch-gui/commit/265a1d967cafd18bd5ea4991e1a9366ee70b0228)) +* **deps:** update dependency scratch-l10n to v3.14.20211124031542 ([6e769fc](https://github.com/LLK/scratch-gui/commit/6e769fcc608e866511fa795b247b1f880f2ea72f)) +* **deps:** update dependency scratch-l10n to v3.14.20211125031554 ([1cb88e8](https://github.com/LLK/scratch-gui/commit/1cb88e80b043d6b74c5bded76be783394d5e5034)) +* **deps:** update dependency scratch-l10n to v3.14.20211126031611 ([0af9924](https://github.com/LLK/scratch-gui/commit/0af992450733f7802d230414cb18f940ad7b1099)) +* **deps:** update dependency scratch-l10n to v3.14.20211127031541 ([47ebf61](https://github.com/LLK/scratch-gui/commit/47ebf6193d6bf82a90374d84ed0dc906fbe5f649)) +* **deps:** update dependency scratch-l10n to v3.14.20211128031618 ([a5d787a](https://github.com/LLK/scratch-gui/commit/a5d787ae79ccdca630f90586d14d42d3ee98a3f6)) +* **deps:** update dependency scratch-l10n to v3.14.20211129031557 ([c7d3f32](https://github.com/LLK/scratch-gui/commit/c7d3f329c10f0b2596ded918a3765227fb3fa919)) +* **deps:** update dependency scratch-l10n to v3.14.20211130031622 ([0461b44](https://github.com/LLK/scratch-gui/commit/0461b44ab8559365cc59fde601b06faa9292ddf5)) +* **deps:** update dependency scratch-l10n to v3.14.20211201031557 ([cbe8c1c](https://github.com/LLK/scratch-gui/commit/cbe8c1c108637368e5317f8e34379f4c57ea559c)) +* **deps:** update dependency scratch-l10n to v3.14.20211202031555 ([fadd9d8](https://github.com/LLK/scratch-gui/commit/fadd9d8afa876be40f0513bdfb6fff09ff8ba860)) +* **deps:** update dependency scratch-l10n to v3.14.20211203031620 ([69ac4dd](https://github.com/LLK/scratch-gui/commit/69ac4dd0dda526b65c8292d585b239f33fc169a8)) +* **deps:** update dependency scratch-l10n to v3.14.20211204031558 ([2fc43fd](https://github.com/LLK/scratch-gui/commit/2fc43fdf12d952dafbb01e95d89a160a27b5af66)) +* **deps:** update dependency scratch-l10n to v3.14.20211209031523 ([43c5bc2](https://github.com/LLK/scratch-gui/commit/43c5bc29a8559e61b64314d0043659b619d4eca4)) +* **deps:** update dependency scratch-l10n to v3.14.20211210031511 ([133bdb4](https://github.com/LLK/scratch-gui/commit/133bdb4a6f27f3080cb9d25cc33c603c7131354f)) +* **deps:** update dependency scratch-l10n to v3.14.20211211031534 ([325e90e](https://github.com/LLK/scratch-gui/commit/325e90ee28f9a2fdd3c77d98ce1f8ed0f9718201)) +* **deps:** update dependency scratch-l10n to v3.14.20211212031512 ([ee48acf](https://github.com/LLK/scratch-gui/commit/ee48acf3fd6d805c853e2c1208b7bae19fc842e8)) +* **deps:** update dependency scratch-l10n to v3.14.20211213031558 ([b8ed1b5](https://github.com/LLK/scratch-gui/commit/b8ed1b5f21b6c68be3250477449c0dfd5cf66060)) +* **deps:** update dependency scratch-l10n to v3.14.20211214031513 ([715e0d1](https://github.com/LLK/scratch-gui/commit/715e0d1dabe1fda752adb3714c2a161b710619f0)) +* **deps:** update dependency scratch-l10n to v3.14.20211215031531 ([c06d68c](https://github.com/LLK/scratch-gui/commit/c06d68c03490113fff7eea5a26d2bee4d5d0bc4b)) +* **deps:** update dependency scratch-l10n to v3.14.20211216031518 ([2f25d22](https://github.com/LLK/scratch-gui/commit/2f25d228b48639ba64f0100cbb02a200e2af7b69)) +* **deps:** update dependency scratch-l10n to v3.14.20211217031521 ([768c120](https://github.com/LLK/scratch-gui/commit/768c12019f1c0d7d8c69d595bb8e6713bdfd8371)) +* **deps:** update dependency scratch-l10n to v3.14.20211218031544 ([5119174](https://github.com/LLK/scratch-gui/commit/5119174a679c40f9247f4935af55c633339b6199)) +* **deps:** update dependency scratch-l10n to v3.14.20211219031623 ([6c4f118](https://github.com/LLK/scratch-gui/commit/6c4f1180e05785fb5e4ceb94e0f4540737dd5980)) +* **deps:** update dependency scratch-l10n to v3.14.20211220031553 ([01f928b](https://github.com/LLK/scratch-gui/commit/01f928b65ebd18524e22356a9da8b2e6c742abc4)) +* **deps:** update dependency scratch-l10n to v3.14.20211221031537 ([9fef0d9](https://github.com/LLK/scratch-gui/commit/9fef0d91e71a7757ea04e3406c372da9db292141)) +* **deps:** update dependency scratch-l10n to v3.14.20211222031527 ([32fb77c](https://github.com/LLK/scratch-gui/commit/32fb77c35f12997f596daeb785a0b668cb3e588b)) +* **deps:** update dependency scratch-l10n to v3.14.20211223031512 ([a849506](https://github.com/LLK/scratch-gui/commit/a849506481d529c0092f64d578991142b47daa11)) +* **deps:** update dependency scratch-l10n to v3.14.20211224031515 ([22ee859](https://github.com/LLK/scratch-gui/commit/22ee859645281b4cb5859a898e31050464fe1692)) +* **deps:** update dependency scratch-l10n to v3.14.20211225031555 ([2b297a6](https://github.com/LLK/scratch-gui/commit/2b297a611298df61eff2f92c3a24f8358100ae40)) +* **deps:** update dependency scratch-l10n to v3.14.20211226031517 ([9c082b4](https://github.com/LLK/scratch-gui/commit/9c082b43fcd38b0d965186f75ada31c6be7eadcb)) +* **deps:** update dependency scratch-l10n to v3.14.20220101031509 ([9f56981](https://github.com/LLK/scratch-gui/commit/9f569819a202ef597a0f60d5ed0a94f13e2cae6f)) +* **deps:** update dependency scratch-l10n to v3.14.20220102031517 ([6ca8ea6](https://github.com/LLK/scratch-gui/commit/6ca8ea64650570b1746ec1182d53de996d7fafab)) +* **deps:** update dependency scratch-l10n to v3.14.20220105031522 ([33238d7](https://github.com/LLK/scratch-gui/commit/33238d7990f72170385d68e39992fd494cfcfa9f)) +* **deps:** update dependency scratch-l10n to v3.14.20220106031551 ([4051098](https://github.com/LLK/scratch-gui/commit/4051098ee713beb3d1a2a907d9c90e5e28c8c37a)) +* **deps:** update dependency scratch-l10n to v3.14.20220108031544 ([13c6d61](https://github.com/LLK/scratch-gui/commit/13c6d6132589a68eed3f9f2142cfe211a1d6bb07)) +* **deps:** update dependency scratch-l10n to v3.14.20220109031524 ([2d8a8b3](https://github.com/LLK/scratch-gui/commit/2d8a8b397e825729ff2936f99f5616891a699458)) +* **deps:** update dependency scratch-l10n to v3.14.20220110031523 ([b824743](https://github.com/LLK/scratch-gui/commit/b8247435eb7f95144f376b9fdf1150e6aea7290c)) +* **deps:** update dependency scratch-l10n to v3.14.20220111031516 ([e032c85](https://github.com/LLK/scratch-gui/commit/e032c85355f67ac65b5e6c6d92dbced3d0690387)) +* **deps:** update dependency scratch-l10n to v3.14.20220118031528 ([e2365be](https://github.com/LLK/scratch-gui/commit/e2365be4250d46de2365c42e8b7da8083fa7f540)) +* **deps:** update dependency scratch-l10n to v3.14.20220207031528 ([026f5a8](https://github.com/LLK/scratch-gui/commit/026f5a851d9e4e05f18f122f0b4091cc06367a5d)) +* **deps:** update dependency scratch-l10n to v3.14.20220208031523 ([7609030](https://github.com/LLK/scratch-gui/commit/7609030286867a04dc972295c5c28b9eb09cd70c)) +* **deps:** update dependency scratch-l10n to v3.14.20220211031512 ([255f926](https://github.com/LLK/scratch-gui/commit/255f9268f5b3924887f14076368cbc46fcab00d9)) +* **deps:** update dependency scratch-l10n to v3.14.20220212031510 ([1036edf](https://github.com/LLK/scratch-gui/commit/1036edf3e041779d8eed2ff16f8185a5b9cb734d)) +* **deps:** update dependency scratch-l10n to v3.14.20220214031530 ([b3410be](https://github.com/LLK/scratch-gui/commit/b3410be0a677cd0422d1e7b04f38dae0d86e50b1)) +* **deps:** update dependency scratch-l10n to v3.14.20220216031536 ([d7176c5](https://github.com/LLK/scratch-gui/commit/d7176c56a23295c676af77e437540aaff2bcec06)) +* **deps:** update dependency scratch-l10n to v3.14.20220217031602 ([0d2a7ca](https://github.com/LLK/scratch-gui/commit/0d2a7ca50a085d79371ca6ba53e2936ba3a87436)) +* **deps:** update dependency scratch-l10n to v3.14.20220219031526 ([2be0cc0](https://github.com/LLK/scratch-gui/commit/2be0cc0e281493b49a369815d536bd8cde2cbb05)) +* **deps:** update dependency scratch-l10n to v3.14.20220220031518 ([e60c692](https://github.com/LLK/scratch-gui/commit/e60c6928b1e3598e225bd58228692a46b3c23b31)) +* **deps:** update dependency scratch-l10n to v3.14.20220221031529 ([3cda321](https://github.com/LLK/scratch-gui/commit/3cda321ce2dbdb5bfd407a8dcf67d6b8f046d134)) +* **deps:** update dependency scratch-l10n to v3.14.20220222031456 ([79d3978](https://github.com/LLK/scratch-gui/commit/79d3978f707990ed38e0c4cb2c08932cb5be2b8c)) +* **deps:** update dependency scratch-l10n to v3.14.20220223031520 ([ae4541d](https://github.com/LLK/scratch-gui/commit/ae4541d9e64a8e6328e78d3a1ca08c3f7ef48498)) +* **deps:** update dependency scratch-l10n to v3.14.20220226031536 ([b75f425](https://github.com/LLK/scratch-gui/commit/b75f4252c7442b74de1a4421ee472b0c08e962f0)) +* **deps:** update dependency scratch-l10n to v3.14.20220227031514 ([d6b15f5](https://github.com/LLK/scratch-gui/commit/d6b15f589cdd2c9577f98913c0e7d2d35d9ef379)) +* **deps:** update dependency scratch-l10n to v3.14.20220228031527 ([b4bf7ba](https://github.com/LLK/scratch-gui/commit/b4bf7ba0a4f372066b4b74e6cd89a5c3aa057dcc)) +* **deps:** update dependency scratch-l10n to v3.14.20220301031535 ([7702fa6](https://github.com/LLK/scratch-gui/commit/7702fa6ec48ce2c41e68ecbe0361cb14c2140d7b)) +* **deps:** update dependency scratch-l10n to v3.14.20220302031532 ([12364b9](https://github.com/LLK/scratch-gui/commit/12364b991f0bba01dd2bbf5348b4f5e6bd464c51)) +* **deps:** update dependency scratch-l10n to v3.14.20220303031540 ([7b4c691](https://github.com/LLK/scratch-gui/commit/7b4c69161104ec5cd512a8428b750b105c06e453)) +* **deps:** update dependency scratch-l10n to v3.14.20220304031523 ([5c06e81](https://github.com/LLK/scratch-gui/commit/5c06e8190eeaef82349c3759f9beaaf8e5f22dd2)) +* **deps:** update dependency scratch-l10n to v3.14.20220305031531 ([6007806](https://github.com/LLK/scratch-gui/commit/6007806973e04b7289aedd755daed2e37404a8e1)) +* **deps:** update dependency scratch-l10n to v3.14.20220306031559 ([7d8a65d](https://github.com/LLK/scratch-gui/commit/7d8a65d580b3362f6f1178a631dc0d14367b7025)) +* **deps:** update dependency scratch-l10n to v3.14.20220307031535 ([0266adb](https://github.com/LLK/scratch-gui/commit/0266adbeb50ed9bd1c41ed8d5f81b772c7076429)) +* **deps:** update dependency scratch-l10n to v3.14.20220308031538 ([06f878d](https://github.com/LLK/scratch-gui/commit/06f878de2f0cb44173cac6071f403524959b0258)) +* **deps:** update dependency scratch-l10n to v3.14.20220309031549 ([92d4b87](https://github.com/LLK/scratch-gui/commit/92d4b87ebf7b1acea0aa65436f1506808dbba129)) +* **deps:** update dependency scratch-l10n to v3.14.20220310031603 ([9368855](https://github.com/LLK/scratch-gui/commit/93688552dc7d801bd37df25cfbd1dae53dffdfbc)) +* **deps:** update dependency scratch-l10n to v3.14.20220311031555 ([82346b3](https://github.com/LLK/scratch-gui/commit/82346b3d0bc455e6c7d613583a40b3c325071d13)) +* **deps:** update dependency scratch-l10n to v3.14.20220312031532 ([fd1f561](https://github.com/LLK/scratch-gui/commit/fd1f5612cd22c94eddb6f96fe78e2d3c6ede6445)) +* **deps:** update dependency scratch-l10n to v3.14.20220313031543 ([fabb062](https://github.com/LLK/scratch-gui/commit/fabb062d7d2c078dc7a9a76252413e43134d144c)) +* **deps:** update dependency scratch-l10n to v3.14.20220314031535 ([163bbef](https://github.com/LLK/scratch-gui/commit/163bbeff46a44c973c353cc2fe32dd936e258525)) +* **deps:** update dependency scratch-l10n to v3.14.20220315031541 ([e1ddb8b](https://github.com/LLK/scratch-gui/commit/e1ddb8b8a214b973b20898b384645f5c3de1e358)) +* **deps:** update dependency scratch-l10n to v3.14.20220316031548 ([8cea2fc](https://github.com/LLK/scratch-gui/commit/8cea2fca5b2d86b07a7d10fde6d0444eb394e22e)) +* **deps:** update dependency scratch-l10n to v3.14.20220317031619 ([69a9923](https://github.com/LLK/scratch-gui/commit/69a99237caf7656ecfb02a386b91e9cdcd679360)) +* **deps:** update dependency scratch-l10n to v3.14.20220318031632 ([88ff5f4](https://github.com/LLK/scratch-gui/commit/88ff5f4f19324b6bb74139c91aa214df4ae3122c)) +* **deps:** update dependency scratch-l10n to v3.14.20220319031543 ([125ce51](https://github.com/LLK/scratch-gui/commit/125ce51c4efa27dee7c523cae940a01902e5f2fa)) +* **deps:** update dependency scratch-l10n to v3.14.20220320031543 ([3345f0b](https://github.com/LLK/scratch-gui/commit/3345f0ba8c623f2a1e3bfb9b51205007b72dc994)) +* **deps:** update dependency scratch-l10n to v3.14.20220321031550 ([cbd3a7f](https://github.com/LLK/scratch-gui/commit/cbd3a7fb11d4d8f100331c129d2e138b9b2837db)) +* **deps:** update dependency scratch-l10n to v3.14.20220322031548 ([b507689](https://github.com/LLK/scratch-gui/commit/b50768986d77c91d243e899eb02c7c16df8a2300)) +* **deps:** update dependency scratch-l10n to v3.14.20220323031542 ([93be337](https://github.com/LLK/scratch-gui/commit/93be337181bafaa4801b9c848edd2fbc469148cf)) +* **deps:** update dependency scratch-l10n to v3.14.20220324031549 ([daba701](https://github.com/LLK/scratch-gui/commit/daba701d71e9ae4c9a889dcaf9549f40cff3205f)) +* **deps:** update dependency scratch-l10n to v3.14.20220325031535 ([fd95e0f](https://github.com/LLK/scratch-gui/commit/fd95e0f8db4f5bf89bdeefcf13b59a7265211ce3)) +* **deps:** update dependency scratch-l10n to v3.14.20220326031550 ([e2e48f4](https://github.com/LLK/scratch-gui/commit/e2e48f4200f0a238a9ba0d14876f3401e68fe7fa)) +* **deps:** update dependency scratch-l10n to v3.14.20220327031555 ([c691b2a](https://github.com/LLK/scratch-gui/commit/c691b2a5d62db2529e0859b509addf73d8045988)) +* **deps:** update dependency scratch-l10n to v3.14.20220329031539 ([359286c](https://github.com/LLK/scratch-gui/commit/359286c2be1015aa788daf9b34dfa0908d94a5f7)) +* **deps:** update dependency scratch-l10n to v3.14.20220330031521 ([7981934](https://github.com/LLK/scratch-gui/commit/7981934b901c64ed819002584f5ebffa7e1e71d5)) +* **deps:** update dependency scratch-l10n to v3.14.20220330154906 ([bd6babb](https://github.com/LLK/scratch-gui/commit/bd6babb566db3fb909d4b02c215ff87dc728ac7b)) +* **deps:** update dependency scratch-l10n to v3.14.20220331031538 ([d312098](https://github.com/LLK/scratch-gui/commit/d3120983366f228a49ce1d460c3d545cb3331abf)) +* **deps:** update dependency scratch-l10n to v3.14.20220401031550 ([c42d664](https://github.com/LLK/scratch-gui/commit/c42d6647c91f3ce1580605c96354d8c02919cbd9)) +* **deps:** update dependency scratch-l10n to v3.14.20220402031541 ([73f1275](https://github.com/LLK/scratch-gui/commit/73f12757d7a3c2b360b06514346bf26010c95d30)) +* **deps:** update dependency scratch-l10n to v3.14.20220403031557 ([7634c38](https://github.com/LLK/scratch-gui/commit/7634c384c7429488881686f271415f79dbcdc905)) +* **deps:** update dependency scratch-l10n to v3.14.20220404031539 ([ab7d0ff](https://github.com/LLK/scratch-gui/commit/ab7d0ff9baca2491a1055e06118e3528596c063f)) +* **deps:** update dependency scratch-l10n to v3.14.20220409031541 ([af5c791](https://github.com/LLK/scratch-gui/commit/af5c791f6cb4189caa4a27e15bcbcc882bb934a0)) +* **deps:** update dependency scratch-l10n to v3.14.20220411031555 ([06500bc](https://github.com/LLK/scratch-gui/commit/06500bc1c999f05cde00d7e6812ead5c1466b220)) +* **deps:** update dependency scratch-l10n to v3.14.20220412031641 ([6daa027](https://github.com/LLK/scratch-gui/commit/6daa027f5cd44c6e81d0f5f76299190356cf5c9d)) +* **deps:** update dependency scratch-l10n to v3.14.20220414031715 ([08d6b39](https://github.com/LLK/scratch-gui/commit/08d6b39b9cba797e08ad0c7fa19d091280d35543)) +* **deps:** update dependency scratch-l10n to v3.14.20220415031651 ([8c09da6](https://github.com/LLK/scratch-gui/commit/8c09da6dc69c747dea07f420061477071904f280)) +* **deps:** update dependency scratch-l10n to v3.14.20220416031634 ([7cb70e1](https://github.com/LLK/scratch-gui/commit/7cb70e1f8d3a127d8f5b0ef791a4a411d1406385)) +* **deps:** update dependency scratch-l10n to v3.14.20220417031553 ([1995b63](https://github.com/LLK/scratch-gui/commit/1995b6351dc70b0031600472ea7a52a3b906c71e)) +* **deps:** update dependency scratch-l10n to v3.14.20220418031554 ([e9235bc](https://github.com/LLK/scratch-gui/commit/e9235bcf93ed54ccc9bd8a5a32b4e30feb524c26)) +* **deps:** update dependency scratch-l10n to v3.14.20220419031547 ([3e31e4b](https://github.com/LLK/scratch-gui/commit/3e31e4bc7cd27ace9973b153f40600484136e058)) +* **deps:** update dependency scratch-l10n to v3.14.20220421031608 ([dbb0b38](https://github.com/LLK/scratch-gui/commit/dbb0b385245a0f04e4ac82f71623a770da11bde4)) +* **deps:** update dependency scratch-l10n to v3.14.20220422031607 ([690821e](https://github.com/LLK/scratch-gui/commit/690821e1eafac6f9a2eaaa2b3ca0fed993a54b7e)) +* **deps:** update dependency scratch-l10n to v3.14.20220424031552 ([0e6adf7](https://github.com/LLK/scratch-gui/commit/0e6adf7584d7b7a36fb158b7cce305d03734d673)) +* **deps:** update dependency scratch-l10n to v3.14.20220425031555 ([dfefa2e](https://github.com/LLK/scratch-gui/commit/dfefa2e583c7a37e6c243148bb1d463b0d2ff5b9)) +* **deps:** update dependency scratch-l10n to v3.14.20220426031558 ([eb46dbc](https://github.com/LLK/scratch-gui/commit/eb46dbc330b66f1036a8a4260312ad65186e8984)) +* **deps:** update dependency scratch-l10n to v3.14.20220428031608 ([dabc434](https://github.com/LLK/scratch-gui/commit/dabc434d1780a94db903b895014e8c41c4cce5e4)) +* **deps:** update dependency scratch-l10n to v3.14.20220504031551 ([0b59f29](https://github.com/LLK/scratch-gui/commit/0b59f297716cfb79ad94652ebd9e8dc206824219)) +* **deps:** update dependency scratch-l10n to v3.14.20220505031611 ([beb0c3e](https://github.com/LLK/scratch-gui/commit/beb0c3e38b2f9468d314c9a57df717fff35890b1)) +* **deps:** update dependency scratch-l10n to v3.14.20220506031605 ([af5e3b6](https://github.com/LLK/scratch-gui/commit/af5e3b68496a8446a484a6740496a90ead5f5416)) +* **deps:** update dependency scratch-l10n to v3.14.20220507031549 ([3170850](https://github.com/LLK/scratch-gui/commit/317085039605fd2d9650ca9012e98fe5a7d25e2b)) +* **deps:** update dependency scratch-l10n to v3.14.20220510031559 ([c07dfe8](https://github.com/LLK/scratch-gui/commit/c07dfe8c796d9dd1516c55ccbfdb0d443e3ffd59)) +* **deps:** update dependency scratch-l10n to v3.14.20220511031550 ([dfc15f0](https://github.com/LLK/scratch-gui/commit/dfc15f029450aa33261221c74e3dd17898386c7e)) +* **deps:** update dependency scratch-l10n to v3.14.20220512031601 ([1bcc2e7](https://github.com/LLK/scratch-gui/commit/1bcc2e70e3352117a73983687d1582ac004d1c94)) +* **deps:** update dependency scratch-l10n to v3.14.20220513031553 ([a15d457](https://github.com/LLK/scratch-gui/commit/a15d457f7102f58ecaef1124aab677bbdadec403)) +* **deps:** update dependency scratch-l10n to v3.14.20220514031546 ([0c188ad](https://github.com/LLK/scratch-gui/commit/0c188ad258fdf97c020ef08c8e54588e47edd0a6)) +* **deps:** update dependency scratch-l10n to v3.14.20220515031551 ([ffdffa6](https://github.com/LLK/scratch-gui/commit/ffdffa63dd887f75465f4becb27a19ae1436fd83)) +* **deps:** update dependency scratch-l10n to v3.14.20220518031553 ([e633cc8](https://github.com/LLK/scratch-gui/commit/e633cc88e4a9c059787876eda18c459ff105b868)) +* **deps:** update dependency scratch-l10n to v3.14.20220519031627 ([1bf0982](https://github.com/LLK/scratch-gui/commit/1bf09824f3426b046b1ad9a0c83ac0c43fba14c0)) +* **deps:** update dependency scratch-l10n to v3.14.20220520031604 ([670d06d](https://github.com/LLK/scratch-gui/commit/670d06d48dab665a17a6d94cbc3288d46e090477)) +* **deps:** update dependency scratch-l10n to v3.14.20220521031617 ([e5cd18a](https://github.com/LLK/scratch-gui/commit/e5cd18af185a2eb55c190d8474205746c5a982a2)) +* **deps:** update dependency scratch-l10n to v3.14.20220522031547 ([f0a69b6](https://github.com/LLK/scratch-gui/commit/f0a69b68e3f908e83cf486e29ee47aa8b40072cf)) +* **deps:** update dependency scratch-l10n to v3.14.20220523031547 ([9659009](https://github.com/LLK/scratch-gui/commit/96590094c5c3ea5f4cfd4c238413ff8ab131c864)) +* **deps:** update dependency scratch-l10n to v3.14.20220524031600 ([17fd10e](https://github.com/LLK/scratch-gui/commit/17fd10e36f1d9685ed996a0efd0b18a2300b2f4d)) +* **deps:** update dependency scratch-l10n to v3.14.20220525031553 ([0b93d35](https://github.com/LLK/scratch-gui/commit/0b93d35c899acb1f658e7b5b1cbecbc638794d49)) +* **deps:** update dependency scratch-l10n to v3.14.20220526031602 ([48d2be0](https://github.com/LLK/scratch-gui/commit/48d2be03f517529665496368e32980107f8e08f3)) +* **deps:** update dependency scratch-l10n to v3.14.20220527031600 ([b781466](https://github.com/LLK/scratch-gui/commit/b7814663430fbb23daf5867296377d8e89ec85f6)) +* **deps:** update dependency scratch-l10n to v3.14.20220528031543 ([6a66509](https://github.com/LLK/scratch-gui/commit/6a66509d57663c04d87bb5cee1a0421db153e1fe)) +* **deps:** update dependency scratch-l10n to v3.14.20220530031613 ([a22d59d](https://github.com/LLK/scratch-gui/commit/a22d59dd7f6bac77996bbfbf05f31590b620df8e)) +* **deps:** update dependency scratch-l10n to v3.14.20220601031612 ([2804224](https://github.com/LLK/scratch-gui/commit/2804224b80975bf7d9e036702a6d9eba2935843b)) +* **deps:** update dependency scratch-l10n to v3.14.20220602031631 ([b797062](https://github.com/LLK/scratch-gui/commit/b7970624efe8aa7a1e4ff72c6c52e3ba516afe86)) +* **deps:** update dependency scratch-l10n to v3.14.20220603031631 ([9e7bcf2](https://github.com/LLK/scratch-gui/commit/9e7bcf2d0687f6319bf4e543b3022c667ba3334d)) +* **deps:** update dependency scratch-l10n to v3.14.20220604031626 ([78ee18e](https://github.com/LLK/scratch-gui/commit/78ee18e73fa5ae2b88b899b006c9c2281d633163)) +* **deps:** update dependency scratch-l10n to v3.14.20220605031627 ([517fbb5](https://github.com/LLK/scratch-gui/commit/517fbb5e0d82b6291dcef33d47df8e07fcbfbce6)) +* **deps:** update dependency scratch-l10n to v3.14.20220608122422 ([28979a0](https://github.com/LLK/scratch-gui/commit/28979a0c663ebf916a9ef1b088c03903a9755cbe)) +* **deps:** update dependency scratch-l10n to v3.14.20220609031618 ([67d85e5](https://github.com/LLK/scratch-gui/commit/67d85e523d976ce5fd7278c005ce113fdc708a79)) +* **deps:** update dependency scratch-l10n to v3.14.20220618031520 ([2481ba9](https://github.com/LLK/scratch-gui/commit/2481ba93cde4cd25db4c642df6b534b6f0a3fbfa)) +* **deps:** update dependency scratch-l10n to v3.14.20220619031537 ([8479bd6](https://github.com/LLK/scratch-gui/commit/8479bd69cb9ea7989986aca16b31aa7d4bcbb958)) +* **deps:** update dependency scratch-l10n to v3.14.20220620031537 ([a30b3fa](https://github.com/LLK/scratch-gui/commit/a30b3facc1c64fae3d970139457e29fb7f128068)) +* **deps:** update dependency scratch-l10n to v3.14.20220703031542 ([97d5ea4](https://github.com/LLK/scratch-gui/commit/97d5ea418e31f68bcd4bed78fbb17ed468ebc03c)) +* **deps:** update dependency scratch-l10n to v3.14.20220708031602 ([b00b55d](https://github.com/LLK/scratch-gui/commit/b00b55daa35154b6336e26cc770cbe46937a2e4e)) +* **deps:** update dependency scratch-l10n to v3.14.20220710031532 ([7037d57](https://github.com/LLK/scratch-gui/commit/7037d570342996570a5a694fc75ba27fdecbc410)) +* **deps:** update dependency scratch-l10n to v3.14.20220711031527 ([e037dbe](https://github.com/LLK/scratch-gui/commit/e037dbe522a750fcb70b366fca41bdcc8c583262)) +* **deps:** update dependency scratch-l10n to v3.14.20220712031635 ([743f712](https://github.com/LLK/scratch-gui/commit/743f7124782c4fe6ded5d520e7a078751e4e6ab2)) +* **deps:** update dependency scratch-l10n to v3.14.20220713031530 ([77f0f29](https://github.com/LLK/scratch-gui/commit/77f0f295f5bb0b273b5987cbbb1fb625399e602d)) +* **deps:** update dependency scratch-l10n to v3.14.20220714031534 ([87fd928](https://github.com/LLK/scratch-gui/commit/87fd928fa0bad246bfddac73f1c1529aa27d8b0b)) +* **deps:** update dependency scratch-l10n to v3.14.20220715031558 ([3ece76f](https://github.com/LLK/scratch-gui/commit/3ece76f4e3d084581e93032d17c9fa681f5b3c0e)) +* **deps:** update dependency scratch-l10n to v3.14.20220719031533 ([b813527](https://github.com/LLK/scratch-gui/commit/b8135277c5ea1876a7665f194184643d3d2aba79)) +* **deps:** update dependency scratch-l10n to v3.14.20220720031542 ([619c761](https://github.com/LLK/scratch-gui/commit/619c761c05d796aa297a2a373b198b773b07fa1a)) +* **deps:** update dependency scratch-l10n to v3.14.20220722031545 ([365be2d](https://github.com/LLK/scratch-gui/commit/365be2d038d95d697677980e5f77682e91eb61df)) +* **deps:** update dependency scratch-l10n to v3.14.20220723031544 ([6ec37b0](https://github.com/LLK/scratch-gui/commit/6ec37b02b660ef6131a77af063c2d9037d51f26f)) +* **deps:** update dependency scratch-l10n to v3.14.20220726031547 ([1df9e63](https://github.com/LLK/scratch-gui/commit/1df9e6341732b3c7b025410ccfcedcdd1a7df008)) +* **deps:** update dependency scratch-l10n to v3.14.20220730031551 ([21cb746](https://github.com/LLK/scratch-gui/commit/21cb7460efefacb5eb36c0db4dd95cf882cde80a)) +* **deps:** update dependency scratch-l10n to v3.14.20220801031550 ([29ebc09](https://github.com/LLK/scratch-gui/commit/29ebc0925dab9926e7e34f8dc963509a95b6f205)) +* **deps:** update dependency scratch-l10n to v3.14.20220803031540 ([89800ec](https://github.com/LLK/scratch-gui/commit/89800ec9e597d0cf4473e57bf813e50b718eee26)) +* **deps:** update dependency scratch-l10n to v3.14.20220804031609 ([b1a871a](https://github.com/LLK/scratch-gui/commit/b1a871a35d6a1de8b1bf16851be3baa665b491ba)) +* **deps:** update dependency scratch-l10n to v3.14.20220805031557 ([2c083ef](https://github.com/LLK/scratch-gui/commit/2c083ef635f19734245c198168f55ee9eefe0a39)) +* **deps:** update dependency scratch-l10n to v3.14.20220806031552 ([36f222e](https://github.com/LLK/scratch-gui/commit/36f222ef9bb4ef0cc0ee344c4f8b95dbbc8448dd)) +* **deps:** update dependency scratch-l10n to v3.14.20220811031607 ([0e69a85](https://github.com/LLK/scratch-gui/commit/0e69a851f888045a86509d9acd3a582d7673ff39)) +* **deps:** update dependency scratch-l10n to v3.14.20220812031537 ([8542f10](https://github.com/LLK/scratch-gui/commit/8542f10c8e0e588d03132d8fc4ee4738e1d65b91)) +* **deps:** update dependency scratch-l10n to v3.14.20220814031555 ([b3e231b](https://github.com/LLK/scratch-gui/commit/b3e231b9175e924856b4a9cf9f769bcfaf810f1b)) +* **deps:** update dependency scratch-l10n to v3.14.20220815031546 ([26ff153](https://github.com/LLK/scratch-gui/commit/26ff153f7c2215bcec41c2e894c4745591a42dfe)) +* **deps:** update dependency scratch-l10n to v3.14.20220816031545 ([4e1bcec](https://github.com/LLK/scratch-gui/commit/4e1bcec2af72a34a6dc769a89ddbe2fd7a36baf3)) +* **deps:** update dependency scratch-l10n to v3.14.20220817031614 ([fb9d0a5](https://github.com/LLK/scratch-gui/commit/fb9d0a5962bdea6afe6b73f00f491130bfe67587)) +* **deps:** update dependency scratch-l10n to v3.14.20220820031550 ([05c246e](https://github.com/LLK/scratch-gui/commit/05c246e3c7dee335baa4895bb17a54667b7e9d30)) +* **deps:** update dependency scratch-l10n to v3.14.20220821031607 ([48efbaf](https://github.com/LLK/scratch-gui/commit/48efbafc33994f7a49d41ae36cbf2295987c1d96)) +* **deps:** update dependency scratch-l10n to v3.14.20220824031545 ([61a4dc8](https://github.com/LLK/scratch-gui/commit/61a4dc8515aeccee9da97b80e35e16ad3acc7b53)) +* **deps:** update dependency scratch-l10n to v3.14.20220825031548 ([5c56dfe](https://github.com/LLK/scratch-gui/commit/5c56dfe602e58e85e231b675446cd21b3a4510b4)) +* **deps:** update dependency scratch-l10n to v3.14.20220826031556 ([83ae403](https://github.com/LLK/scratch-gui/commit/83ae403adae84b5292ed3b3dc37b4a1cd1405a6d)) +* **deps:** update dependency scratch-l10n to v3.15.20220918031615 ([e8af2f6](https://github.com/LLK/scratch-gui/commit/e8af2f67c9fb27b004b717081ec533a7ac9e3696)) +* **deps:** update dependency scratch-l10n to v3.15.20220919031702 ([76b8152](https://github.com/LLK/scratch-gui/commit/76b8152ab18f8be41fd64e4726bce26873b5ab54)) +* **deps:** update dependency scratch-l10n to v3.15.20220920031622 ([de15b0e](https://github.com/LLK/scratch-gui/commit/de15b0ed519a501497bb19b4dbf7116f65cb3380)) +* **deps:** update dependency scratch-l10n to v3.15.20220921031617 ([5a191c8](https://github.com/LLK/scratch-gui/commit/5a191c831c3cef8ed9dde6fb6f9025dbe89f469e)) +* **deps:** update dependency scratch-l10n to v3.15.20220922031607 ([3a8c271](https://github.com/LLK/scratch-gui/commit/3a8c271223499335ffc4577ac6beb7ec48b04dbb)) +* **deps:** update dependency scratch-l10n to v3.15.20220923031622 ([cd27826](https://github.com/LLK/scratch-gui/commit/cd278269dc0c07ce8fcd029e81313161bc70fe7c)) +* **deps:** update dependency scratch-l10n to v3.15.20220924031614 ([298fa1b](https://github.com/LLK/scratch-gui/commit/298fa1bf50d6d6cf327c412632c1d86fea1df4b7)) +* **deps:** update dependency scratch-l10n to v3.15.20220925031619 ([8053b78](https://github.com/LLK/scratch-gui/commit/8053b781957788ae74fbd9bb67a95bbfac602027)) +* **deps:** update dependency scratch-l10n to v3.15.20220926031626 ([ec3a0a1](https://github.com/LLK/scratch-gui/commit/ec3a0a1ed6298d7f32528dba57f607b833d05278)) +* **deps:** update dependency scratch-l10n to v3.15.20220927031631 ([42637b8](https://github.com/LLK/scratch-gui/commit/42637b83b5b0d9db4c11e0737db112e3f4c400ef)) +* **deps:** update dependency scratch-l10n to v3.15.20221003031620 ([b556840](https://github.com/LLK/scratch-gui/commit/b556840ed854a23f4ea7361581e54a26d7c89968)) +* **deps:** update dependency scratch-paint to v0.2.0 ([138b5a0](https://github.com/LLK/scratch-gui/commit/138b5a0271a38c9189bddd4e171dad959d159955)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210729070832 ([d233e66](https://github.com/LLK/scratch-gui/commit/d233e66c51f0aa39112de576584382da713b10bd)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210804042639 ([b3d3bb2](https://github.com/LLK/scratch-gui/commit/b3d3bb2b0af3724e38718f4d8e38d7a7ab5ed956)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210805145701 ([c112a7d](https://github.com/LLK/scratch-gui/commit/c112a7d94c2a4a4aa8e012616a233e83fa45d716)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210806051700 ([057c422](https://github.com/LLK/scratch-gui/commit/057c422ab93582b5d37fd3961a805ff03544f4fa)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210807045427 ([ca702b7](https://github.com/LLK/scratch-gui/commit/ca702b7d14e7c989ce75521ee5c1459a4a043278)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210808074450 ([68b3ef3](https://github.com/LLK/scratch-gui/commit/68b3ef3635c6d8cf9ac19e7d74f11dba0d59f6f2)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210809090942 ([6598dc7](https://github.com/LLK/scratch-gui/commit/6598dc7e103993129bcebcca9e1f880cfd7caa2b)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210810050111 ([a59f327](https://github.com/LLK/scratch-gui/commit/a59f3270f2e00c487063226986bf5d44e74d5baf)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210811051056 ([7c3777b](https://github.com/LLK/scratch-gui/commit/7c3777ba540fd6368ad182fe147da37168d4bd03)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210812052537 ([0ca7a89](https://github.com/LLK/scratch-gui/commit/0ca7a89685ecb45f049018f121c6c62051d589eb)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210815050216 ([3bc91ec](https://github.com/LLK/scratch-gui/commit/3bc91eccdb253d146c7d6f00a6abebd065bb47d4)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210816073434 ([da03bcc](https://github.com/LLK/scratch-gui/commit/da03bcc2f3a05e485f169fa5bd97983e9e1c8553)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210817044346 ([2bd12ad](https://github.com/LLK/scratch-gui/commit/2bd12ad7c5b90ab9952369cfe9668a58ef3c39c4)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210817221541 ([9a3825f](https://github.com/LLK/scratch-gui/commit/9a3825fdc8d1988f6a256a3a3587a231270c1678)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210818072858 ([38f9d0a](https://github.com/LLK/scratch-gui/commit/38f9d0a99a5f2bbdbab28762e4ef39ad94f830ee)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210819064939 ([247608e](https://github.com/LLK/scratch-gui/commit/247608ee09b7b024e0e0bd66a16af6fe39e2240f)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210820071158 ([0d26bf6](https://github.com/LLK/scratch-gui/commit/0d26bf6c26c595fb51dc7ff15e30aa4d1a892f00)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210821085531 ([c0ea31b](https://github.com/LLK/scratch-gui/commit/c0ea31b25128e3b9f4761ffe353442d7449ea793)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210822092856 ([ac5459e](https://github.com/LLK/scratch-gui/commit/ac5459e1dd6dc4c8aacc306980ed7844cdf8c30d)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210823062429 ([103953b](https://github.com/LLK/scratch-gui/commit/103953bab9c11ecbf19ff2cea1d82b0c7c204f76)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210824072726 ([be870b8](https://github.com/LLK/scratch-gui/commit/be870b838917109f18fa611f90456bd4e2640263)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210825082824 ([2b6525a](https://github.com/LLK/scratch-gui/commit/2b6525af517ea60276549c570ef390c768f218f0)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210826054131 ([4f82632](https://github.com/LLK/scratch-gui/commit/4f82632ab1ea55b498321a59c3256281a13548c8)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210828070410 ([ff1c91f](https://github.com/LLK/scratch-gui/commit/ff1c91fcb2fe8aac4485eea38e9b7c8b4412d7c2)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210829080909 ([ea503ea](https://github.com/LLK/scratch-gui/commit/ea503eab82600c320b49836c5b5da0de0ec50af7)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210901075542 ([aad9ef1](https://github.com/LLK/scratch-gui/commit/aad9ef13849eb2a51445c79b678632abbc911c48)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210902090706 ([fb27669](https://github.com/LLK/scratch-gui/commit/fb276693e1afa76eec28d552e1c111807dc5ff83)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210903051913 ([1bf268f](https://github.com/LLK/scratch-gui/commit/1bf268fa148145543c10d627dd580cbb747c31c6)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210904055837 ([57758d2](https://github.com/LLK/scratch-gui/commit/57758d2e914ae84d86c000ac55f7ea619f3fa6ee)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210907080144 ([ad1b27a](https://github.com/LLK/scratch-gui/commit/ad1b27ae8222ddb6eda2527f31ca53421f80cb0c)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210908054406 ([6298045](https://github.com/LLK/scratch-gui/commit/6298045b4446cee76f25d13b335c0ed7fc547662)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210909043638 ([dd6e73a](https://github.com/LLK/scratch-gui/commit/dd6e73a20942eef0b0c5bca0c90d1f1a1edaae09)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210910052817 ([726ed88](https://github.com/LLK/scratch-gui/commit/726ed88c5d12b76898e2123af167e978ac8f5da9)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210911044446 ([da7c15f](https://github.com/LLK/scratch-gui/commit/da7c15fd0df72a6389d54f5bcd54cd2e7a460aba)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210912100433 ([1d642f8](https://github.com/LLK/scratch-gui/commit/1d642f83766c36d979d7b08696a481274118caae)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210913095513 ([7994206](https://github.com/LLK/scratch-gui/commit/79942066c4bc9ce50fa64645aadea49f12a8a8b2)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210914081518 ([3c7428d](https://github.com/LLK/scratch-gui/commit/3c7428d003c0d9367d42dbc744013402537064e4)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210916083122 ([90e9e90](https://github.com/LLK/scratch-gui/commit/90e9e9045efc72952e43be58284719a5333e0371)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210917081050 ([e658b52](https://github.com/LLK/scratch-gui/commit/e658b52bc5a8f80af64b7c49eaeff7ed32442043)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210918045148 ([8397729](https://github.com/LLK/scratch-gui/commit/8397729a56fc586dd1406d4fb041ddce0a7b9ef1)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210920074150 ([d76c06d](https://github.com/LLK/scratch-gui/commit/d76c06ddff86b4e2b28174343225a8c916c73997)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210921073847 ([e7906c3](https://github.com/LLK/scratch-gui/commit/e7906c3cf5189eb15c154bf0a2617ad2dd65ef62)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210922080237 ([0c3e5fc](https://github.com/LLK/scratch-gui/commit/0c3e5fc121d14bec55da20369b916a9b69f3256f)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210923075012 ([33d7f19](https://github.com/LLK/scratch-gui/commit/33d7f19bc0a0d952dbb217d5d51fae2c9f66e0fc)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210925055250 ([8669797](https://github.com/LLK/scratch-gui/commit/866979726a072fe8dbebc2a6806988b9cc5ea14c)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210926083701 ([094fe0a](https://github.com/LLK/scratch-gui/commit/094fe0a5355618bfb316783693d36a61109a00e0)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210927100215 ([f723b79](https://github.com/LLK/scratch-gui/commit/f723b79da5467fb26fd2e9b04fcc0b40a1551f57)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210928060317 ([9431c77](https://github.com/LLK/scratch-gui/commit/9431c773730d661ed595a9ebc846cd79de9d3e96)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210929050415 ([a4160ed](https://github.com/LLK/scratch-gui/commit/a4160eda9d8d5053e4a6d26df8799f136b816816)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20210930045912 ([161ab45](https://github.com/LLK/scratch-gui/commit/161ab452701e59b01cccc3592a99082da365a3de)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211001075321 ([3749164](https://github.com/LLK/scratch-gui/commit/37491641f989b8eef93b1a6656c1e595bcc1b38b)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211005065345 ([90992e9](https://github.com/LLK/scratch-gui/commit/90992e9845de1a2fdb816302e4576fd18c6fc5ed)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211006071611 ([ef8d14d](https://github.com/LLK/scratch-gui/commit/ef8d14d52dc0018cb2e9217f5fa5ce1826ab04f7)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211008044157 ([3e345a5](https://github.com/LLK/scratch-gui/commit/3e345a52d1465910dba873e32ca1bf0b3e83a904)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211009045139 ([bec004d](https://github.com/LLK/scratch-gui/commit/bec004db1ce500cc2a4d7bf45c7417c91908c6cf)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211010044751 ([0602c7f](https://github.com/LLK/scratch-gui/commit/0602c7feb75c65f93094a88c9162d48ce3d03297)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211011080827 ([4823abf](https://github.com/LLK/scratch-gui/commit/4823abf59769ed26068f0e1cab7d2de7c6535b72)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211013052452 ([8f0fdc3](https://github.com/LLK/scratch-gui/commit/8f0fdc3b38c43786d7a055afa1d40d642ae2b454)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211015073533 ([62e3a0d](https://github.com/LLK/scratch-gui/commit/62e3a0dce6edf2596bbf9d99f3fc757b35d41234)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211021090505 ([5313a41](https://github.com/LLK/scratch-gui/commit/5313a41f5dbe4519072397303fda194941c338f9)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211022045744 ([dd8229e](https://github.com/LLK/scratch-gui/commit/dd8229e5d966ef6caa6e50b7af50aeb5c930aef5)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211024094459 ([a3084cf](https://github.com/LLK/scratch-gui/commit/a3084cff074d02fe73a065fff0600ece1d480755)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211025094150 ([21906fa](https://github.com/LLK/scratch-gui/commit/21906fadde834ea97659c91f10aa68dee38efe91)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211026101351 ([80adb21](https://github.com/LLK/scratch-gui/commit/80adb216fa9501aad86322c95f944e040789510a)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20211027080909 ([14a6279](https://github.com/LLK/scratch-gui/commit/14a6279421eccb371c279629d2959b5f398ebcce)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220311215756 ([d8c8c7f](https://github.com/LLK/scratch-gui/commit/d8c8c7f6cc5f01b52ecd576124ec2d182593d722)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220312095846 ([1b4745f](https://github.com/LLK/scratch-gui/commit/1b4745f5a2ebbb01954f0589d6783aaff463471f)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220313053854 ([19d3dd9](https://github.com/LLK/scratch-gui/commit/19d3dd9e6bdffe2955613645505deb8fb8935c17)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220314055658 ([337e442](https://github.com/LLK/scratch-gui/commit/337e4420cd5db8a2c54b178d04efdc41635d91d9)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220315113214 ([d924100](https://github.com/LLK/scratch-gui/commit/d92410046a48a329643ac25222be8eb9eb9b8f4b)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220316055131 ([2e86efa](https://github.com/LLK/scratch-gui/commit/2e86efa131dcfd1dd5a61fb8c566eefe012dd5b8)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220317102020 ([b863314](https://github.com/LLK/scratch-gui/commit/b863314b4d1b3d3cff9a0bfa59a443a819486cce)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220318092129 ([ec2c2c0](https://github.com/LLK/scratch-gui/commit/ec2c2c0bce8b55fac3950d564ad3b055850a3969)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220319091658 ([da877e0](https://github.com/LLK/scratch-gui/commit/da877e08427fbb699c6866fc3a484187ff29de92)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220320053837 ([bb91c45](https://github.com/LLK/scratch-gui/commit/bb91c45a6e71fd1943a8f062b56476f175db1d57)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220321103135 ([c570db6](https://github.com/LLK/scratch-gui/commit/c570db6f23e8c1107e56e99e20ae069505b8f753)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220322060454 ([af9b9cd](https://github.com/LLK/scratch-gui/commit/af9b9cdfcb157b6fd8cc675457dcf13bd34541d8)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220323045250 ([3894197](https://github.com/LLK/scratch-gui/commit/38941971a4d339044b56ef04af6153c4645ea47c)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220324094313 ([56c85a1](https://github.com/LLK/scratch-gui/commit/56c85a1528e37476a8243a9c9fd1ae9b55b9e62a)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220325061402 ([f20df7e](https://github.com/LLK/scratch-gui/commit/f20df7e646f6e7b54ebda6c72cfbbedc8916c72c)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220326114947 ([75009ee](https://github.com/LLK/scratch-gui/commit/75009ee31e0f056e1c6222899aff78e4a88288b7)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220327064855 ([099c7c8](https://github.com/LLK/scratch-gui/commit/099c7c86b88346d94867ea70eba856db997338aa)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220328205037 ([964f414](https://github.com/LLK/scratch-gui/commit/964f41445e34234ed94927d984b08f9cdce93abf)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220329194609 ([8eb0162](https://github.com/LLK/scratch-gui/commit/8eb0162802894af747787685523e098b03510c89)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220330002654 ([0a8d28e](https://github.com/LLK/scratch-gui/commit/0a8d28e70fd321e31ff6c4eb81571cc0be35151d)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220330110451 ([2c84f55](https://github.com/LLK/scratch-gui/commit/2c84f55997525b187259a75d5e63e6f9caff9847)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220330184811 ([e5a2e08](https://github.com/LLK/scratch-gui/commit/e5a2e08d8e1d558dc0b80bca86b65df878403884)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220331103615 ([2eb31b2](https://github.com/LLK/scratch-gui/commit/2eb31b20c537173db8694ffec8ab1d5ca38b8275)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220401105006 ([ce843d9](https://github.com/LLK/scratch-gui/commit/ce843d934d0c007ab4f14d4d9cf0b65a38decbc4)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220401191745 ([7303b4f](https://github.com/LLK/scratch-gui/commit/7303b4f1524dc942b333441b99874cae3375de86)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220402105132 ([ddb9893](https://github.com/LLK/scratch-gui/commit/ddb9893348d1e7352ed9a1fd82bde30e3f44c81a)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220403104940 ([7837fd3](https://github.com/LLK/scratch-gui/commit/7837fd390bd0b8da2ab20adb7fd067827acc7efb)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220404102512 ([b7d1d8e](https://github.com/LLK/scratch-gui/commit/b7d1d8e4a3744cc9dfecd423660f9ea9f265963e)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220409093754 ([5658454](https://github.com/LLK/scratch-gui/commit/56584545e1e83ce37682f11cb3bfbd7aaa2d1905)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220421153239 ([7d5fe16](https://github.com/LLK/scratch-gui/commit/7d5fe168c33e3a263b0877740c30271f71b37635)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220422064148 ([1aeb8f8](https://github.com/LLK/scratch-gui/commit/1aeb8f8e2231ea81f0ccc4cefc9fed4c227df1da)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220422180707 ([21f927b](https://github.com/LLK/scratch-gui/commit/21f927b263af5faa1ca30efe3c20f8010469d009)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220424055145 ([29d0fce](https://github.com/LLK/scratch-gui/commit/29d0fcec1b5443fe69d3222475cd2e5e199db3de)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220425105618 ([3db3a22](https://github.com/LLK/scratch-gui/commit/3db3a22f4c0c5a720382316a4800311aaf95a2b3)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220426120240 ([8dc8036](https://github.com/LLK/scratch-gui/commit/8dc8036acf9e19cc6852ebaf9380a6ece5ae6244)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220429193038 ([7906a15](https://github.com/LLK/scratch-gui/commit/7906a151644622044afb27e036ca532d14998759)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220504103257 ([8b6ee02](https://github.com/LLK/scratch-gui/commit/8b6ee024e70b535b7dceff28baa8d76e5cf7b644)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220505110517 ([43abdc6](https://github.com/LLK/scratch-gui/commit/43abdc64b721cd3fa4ee0d49ef787362fae2dd65)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220506101920 ([5700e23](https://github.com/LLK/scratch-gui/commit/5700e23051eea50ac6ad1b7f7f2d2397ee966502)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220507092357 ([0c2727e](https://github.com/LLK/scratch-gui/commit/0c2727e8d493cee7d14382da8935ff6a9c2f89f4)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220510060809 ([26ca723](https://github.com/LLK/scratch-gui/commit/26ca72366be64fcb1a480755d91277fba1fa07e1)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220511122527 ([4e46eaf](https://github.com/LLK/scratch-gui/commit/4e46eaf8813062a062b77cdc55ec5e88d02563cf)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220512092046 ([9bf6be7](https://github.com/LLK/scratch-gui/commit/9bf6be73ffdaaa0fdf06d088ca76f68181194d85)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220513122448 ([84cd1d8](https://github.com/LLK/scratch-gui/commit/84cd1d833a7b8f86c780ad9fae7fcf66c4f6a03c)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220514053927 ([14e694d](https://github.com/LLK/scratch-gui/commit/14e694dfe8c9c9dfa698b1c7a86a3472dd5356b0)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220515093211 ([1887c8c](https://github.com/LLK/scratch-gui/commit/1887c8c3083666ce4e67f4af1989f7ef3c4af438)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220518055419 ([f6c1e73](https://github.com/LLK/scratch-gui/commit/f6c1e73d92c8aef7b2c56372fd4f739bab39b027)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220519104435 ([6871990](https://github.com/LLK/scratch-gui/commit/687199073ffc3f0f8608dcf9d39c095fca959c55)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220520102427 ([7d6bc8c](https://github.com/LLK/scratch-gui/commit/7d6bc8c90e7b7d3c901085dff8d71b97503b79a6)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220521112131 ([56444c6](https://github.com/LLK/scratch-gui/commit/56444c6c065b7d0901897f76de3cb1db394e8cb7)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220522112450 ([b747083](https://github.com/LLK/scratch-gui/commit/b7470832406a3e60e2d2b8cc58c86b2ab0503488)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220523064324 ([ee85cd9](https://github.com/LLK/scratch-gui/commit/ee85cd93220d6f28aef1aa4b9211e069b8c4af1b)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220524110445 ([e129a6b](https://github.com/LLK/scratch-gui/commit/e129a6b43f965006be98179698678462fa7d9138)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220525114829 ([48172ec](https://github.com/LLK/scratch-gui/commit/48172ec2bfe61e0d27093f81f64dd4b17eee7cd6)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220526103830 ([6ac2083](https://github.com/LLK/scratch-gui/commit/6ac20831bb3f139216094115b5f26a484ae6d75e)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220527120036 ([847b8a9](https://github.com/LLK/scratch-gui/commit/847b8a9d9c817a550ac3800750533ffcfd0a6d5d)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220528091803 ([b6adcc2](https://github.com/LLK/scratch-gui/commit/b6adcc2c530002efc3ca7a2b36d8bac638143d06)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220530095633 ([c9a169e](https://github.com/LLK/scratch-gui/commit/c9a169e326ad700bcc6dd3c418586ace7573129d)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220601145707 ([143be7d](https://github.com/LLK/scratch-gui/commit/143be7d3fea9967fae5ad1d6b482c163e1c096ee)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220602124619 ([6e04f83](https://github.com/LLK/scratch-gui/commit/6e04f83b4d7801db4eab420cdfd0dcf8985de374)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220603060342 ([cd0f63b](https://github.com/LLK/scratch-gui/commit/cd0f63b9100444b9ccdbfa7bf2968ca0ae289bea)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220604095330 ([8686ec3](https://github.com/LLK/scratch-gui/commit/8686ec390bf78203a2c6b31b3124692a437bb69a)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220605112441 ([d6067e6](https://github.com/LLK/scratch-gui/commit/d6067e61adedd10b544a1ca2300d6ddba6dcda7e)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220608185604 ([a81c0e0](https://github.com/LLK/scratch-gui/commit/a81c0e0e551980efa0d17ab5b89b7e18a5d439a0)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220609144244 ([edbfae8](https://github.com/LLK/scratch-gui/commit/edbfae8d7405ac39901c329ccd8cd0c4437b791a)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220619103007 ([69ef829](https://github.com/LLK/scratch-gui/commit/69ef8297420a5950b2ad3ea94e96bbdeb488cca2)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220620120722 ([3b9e927](https://github.com/LLK/scratch-gui/commit/3b9e92725d7dd4e2009bcae9b312c0d680431217)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220703094251 ([92c7b8a](https://github.com/LLK/scratch-gui/commit/92c7b8ad57cc8a15a002169cf87be5b8cefe7434)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220708095934 ([87dce29](https://github.com/LLK/scratch-gui/commit/87dce291f15a0be5b60d60df3186bce25a4e0630)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220710052517 ([640450c](https://github.com/LLK/scratch-gui/commit/640450ca87f6364e36628cad16a7800defc168ee)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220711102843 ([f42eb37](https://github.com/LLK/scratch-gui/commit/f42eb371eab84a08709b6ff2645ebd86d81503cc)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220712060203 ([f0d079a](https://github.com/LLK/scratch-gui/commit/f0d079a411d25e0086d577dcc6f562504d97df9e)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220713102927 ([d14edea](https://github.com/LLK/scratch-gui/commit/d14edea7fbb5064a4d931e1439af28fe83d11d82)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220714113046 ([f967ced](https://github.com/LLK/scratch-gui/commit/f967ceda1044b7cea6e71c9f764f87f762adeaf8)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220715170934 ([e38cc44](https://github.com/LLK/scratch-gui/commit/e38cc443615f0832d91a0e9daa0b073492cb0ad3)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220719060300 ([4fd5d7f](https://github.com/LLK/scratch-gui/commit/4fd5d7f95506715d1c1aedd4817196b8268a5994)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220720055140 ([7a241c6](https://github.com/LLK/scratch-gui/commit/7a241c679e5a071b187ca47ba9ad1c29ad84f45a)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220722104128 ([715d233](https://github.com/LLK/scratch-gui/commit/715d233ded5a0db41274467965ac3150181b9a72)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220723110410 ([d30dcc6](https://github.com/LLK/scratch-gui/commit/d30dcc6d4becc45c88a8d1fe1d878e34cc1e59c1)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220726101247 ([4540f1c](https://github.com/LLK/scratch-gui/commit/4540f1c262a0e1f153642633afbdbe668052766e)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220730104112 ([0dbc6d1](https://github.com/LLK/scratch-gui/commit/0dbc6d19ecc6e9ac3e862a1310b7b7abdd62d26f)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220801163928 ([102f18a](https://github.com/LLK/scratch-gui/commit/102f18a5cbe4c692481652d757f48b8b4104ab74)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220803112658 ([c6695b5](https://github.com/LLK/scratch-gui/commit/c6695b599a0e2d5492ebbda1900561f04483fec8)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220804111428 ([24f2d05](https://github.com/LLK/scratch-gui/commit/24f2d05d07474771c8119a6fad092371419e5c7c)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220805105339 ([a6e9f3a](https://github.com/LLK/scratch-gui/commit/a6e9f3af1d8315e8a43d998a007b0f4d350a7ab9)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220806102023 ([775b3a6](https://github.com/LLK/scratch-gui/commit/775b3a617423d8b7cc5bc04dc7a4c7f9f45fc1fd)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220811094753 ([c8ccf6f](https://github.com/LLK/scratch-gui/commit/c8ccf6ff922341638e72546021cf95ac3bed0dc3)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220812060243 ([4c91f14](https://github.com/LLK/scratch-gui/commit/4c91f140c2ee9fcddaed2fea380130cf82847767)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220814063219 ([937c6a4](https://github.com/LLK/scratch-gui/commit/937c6a48e1bf762de92a927b82c4dfa39ed7d573)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220815092746 ([664037d](https://github.com/LLK/scratch-gui/commit/664037d6f6638ba208eed330d1e30e39d8332110)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220816095955 ([65ae9b0](https://github.com/LLK/scratch-gui/commit/65ae9b07759b07a063f8acc6cfdd88a1f2066127)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220817100416 ([ac83adc](https://github.com/LLK/scratch-gui/commit/ac83adcc3a12f963e27f17bfc358c6ce84c811df)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220820095610 ([a3eae9a](https://github.com/LLK/scratch-gui/commit/a3eae9a378a90d8c2e82bdfbed40b61739d99d6b)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220821093205 ([1b065c6](https://github.com/LLK/scratch-gui/commit/1b065c60bab6b6844f85948d0639168bcdb206cf)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220824070845 ([d932d96](https://github.com/LLK/scratch-gui/commit/d932d96f82a048772ef8e55287fad2efe3be30b3)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220825103143 ([5b4ab44](https://github.com/LLK/scratch-gui/commit/5b4ab446c14fa688cd713ee110c55527f78ec7dd)) +* **deps:** update dependency scratch-paint to v0.2.0-prerelease.20220825212033 ([3242d80](https://github.com/LLK/scratch-gui/commit/3242d809ca6c95132d03de9f196dd4a98cd362c0)) +* **deps:** update dependency scratch-paint to v1 ([7560a83](https://github.com/LLK/scratch-gui/commit/7560a83436234eece3a11b36a01ed3430116077b)) +* **deps:** update dependency scratch-paint to v1.1.10 ([ca66249](https://github.com/LLK/scratch-gui/commit/ca6624908a92d6a14a0b3cdc261f70df01689ee6)) +* **deps:** update dependency scratch-paint to v1.1.11 ([fbf0ad7](https://github.com/LLK/scratch-gui/commit/fbf0ad727030bf1fd04cb7c687a7881cc60e8c25)) +* **deps:** update dependency scratch-paint to v1.1.12 ([02003c5](https://github.com/LLK/scratch-gui/commit/02003c5ed1a66bf2838ca9cfaa1c70d23fee3b54)) +* **deps:** update dependency scratch-paint to v1.1.13 ([4dfe042](https://github.com/LLK/scratch-gui/commit/4dfe04212aab619c091e780fe640110696954bed)) +* **deps:** update dependency scratch-paint to v1.1.14 ([e8f3079](https://github.com/LLK/scratch-gui/commit/e8f3079a421f2408f2704418f5ee70d306f7d0c4)) +* **deps:** update dependency scratch-paint to v1.1.4 ([944ed45](https://github.com/LLK/scratch-gui/commit/944ed45a59543795be86df80595857d40db5c668)) +* **deps:** update dependency scratch-paint to v1.1.6 ([c005ecf](https://github.com/LLK/scratch-gui/commit/c005ecfcab55ac7ecbf20506122ac43ff539c61c)) +* **deps:** update dependency scratch-paint to v1.1.7 ([531f3e2](https://github.com/LLK/scratch-gui/commit/531f3e2582213c3685342a07672ca6a024f992cf)) +* **deps:** update dependency scratch-paint to v1.1.8 ([00f5b49](https://github.com/LLK/scratch-gui/commit/00f5b494a5feebef02d4be0e9466379743418fbf)) +* **deps:** update dependency scratch-paint to v1.1.9 ([e1d5a4c](https://github.com/LLK/scratch-gui/commit/e1d5a4cbcc388e4c008a9f4614edfec5b1feec1e)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20210819221425 ([5dbfe59](https://github.com/LLK/scratch-gui/commit/5dbfe5963a4840994e4a119ccc88e381dac721cb)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20211026180558 ([35680ef](https://github.com/LLK/scratch-gui/commit/35680efec7f49c900fcf26524f7ec821fe538d96)) +* **deps:** update dependency scratch-render to v0.1.0-prerelease.20211028200436 ([963728e](https://github.com/LLK/scratch-gui/commit/963728e0afa1addffcf3057e4432913b8fd2a768)) +* **deps:** update dependency scratch-storage to v1.3.6 ([2294edc](https://github.com/LLK/scratch-gui/commit/2294edc7f6fb06642ea7d7f0a158e77c28aa1da4)) +* **deps:** update dependency scratch-svg-renderer to v0.2.0-prerelease.20220912180225 ([a425e3e](https://github.com/LLK/scratch-gui/commit/a425e3e478c04b9f5da626ac03057ec15e21d386)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210727115252 ([801062d](https://github.com/LLK/scratch-gui/commit/801062df2622d7d9395bbabf5c523b00be71f715)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210729092909 ([c49dbac](https://github.com/LLK/scratch-gui/commit/c49dbac8be0572cad862fb481ef1ca9eed87c35f)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210804080338 ([dd8da76](https://github.com/LLK/scratch-gui/commit/dd8da76f54e863c47a72bac8e372b2efb1ad9175)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210805170633 ([7b7877d](https://github.com/LLK/scratch-gui/commit/7b7877df1fb91fc1004f7dba8d46ff1a68ece508)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210806042950 ([2553fc1](https://github.com/LLK/scratch-gui/commit/2553fc1a4a544a7336ab9ab2558467b7add8ace7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210806090752 ([a4130f1](https://github.com/LLK/scratch-gui/commit/a4130f1256752c2b48a61b1a5f1561ed81a6f1ff)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210807080536 ([cb0aa32](https://github.com/LLK/scratch-gui/commit/cb0aa32a9b8517442ad08345ee473ad1ce68aa31)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210808043254 ([1a7526d](https://github.com/LLK/scratch-gui/commit/1a7526d4520685b531a13c3158419f964108e21c)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210808083838 ([6941f59](https://github.com/LLK/scratch-gui/commit/6941f59e4a3f326497a2af56d0f933c47192ab20)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210808215300 ([56b0f4a](https://github.com/LLK/scratch-gui/commit/56b0f4a5b597f96d60708c5d99655d03d0e6c905)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210809125956 ([b4f3ca2](https://github.com/LLK/scratch-gui/commit/b4f3ca24549a86bfd1eda084d66edcfac9cbaefb)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210809181637 ([28b4b61](https://github.com/LLK/scratch-gui/commit/28b4b6148719716eea8de19b47a242a0aa209018)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210809211806 ([1e7565f](https://github.com/LLK/scratch-gui/commit/1e7565f6fb78e0b7ba8909f74402694629cd7205)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210810051657 ([9cb57bc](https://github.com/LLK/scratch-gui/commit/9cb57bcdef6996c6d56601686ab0c5ff2e65a110)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210810085945 ([2eba48f](https://github.com/LLK/scratch-gui/commit/2eba48f398ee626de8b309f925bbccbf36dd5625)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210811102104 ([c41b057](https://github.com/LLK/scratch-gui/commit/c41b057e9193a37e434cbdeceba3e542a4cf7705)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210812043817 ([1a7133b](https://github.com/LLK/scratch-gui/commit/1a7133b49224fe34ec515f8b57fbc42df5990604)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210820052256 ([9018015](https://github.com/LLK/scratch-gui/commit/901801504352847672495e1a6b451d7a7af3cfaf)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210820100332 ([86b91b1](https://github.com/LLK/scratch-gui/commit/86b91b1327a4fe28cdb48e2ea6bb82e67bd6928e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210821083308 ([b0e8416](https://github.com/LLK/scratch-gui/commit/b0e8416a31fdf50473ce8f622db8edd85e34928a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210823083454 ([3158e46](https://github.com/LLK/scratch-gui/commit/3158e46133c79980b76339c84a36cf7d0a46e0de)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210823104738 ([04a2e18](https://github.com/LLK/scratch-gui/commit/04a2e18eafac56135bacc7428270e73e6fa11f17)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210823174229 ([17c5532](https://github.com/LLK/scratch-gui/commit/17c55329b85507781e31ace833f2ac513986a720)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210824074455 ([5b90ccf](https://github.com/LLK/scratch-gui/commit/5b90ccfec3249a2df98484ff8d02ae2093f41524)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210825085024 ([8fec936](https://github.com/LLK/scratch-gui/commit/8fec9362e9a84da665290be10e8e8a7848ddc0b7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210826093057 ([56aa92c](https://github.com/LLK/scratch-gui/commit/56aa92c13319cce3cb846037d5238811efddc867)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210828093631 ([dda2664](https://github.com/LLK/scratch-gui/commit/dda26640acf71db60ebab20b43dae190f0e8b520)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210829051701 ([03e09ff](https://github.com/LLK/scratch-gui/commit/03e09ff314855f052c9ba86362f4370f668e16c3)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210901070526 ([e954c40](https://github.com/LLK/scratch-gui/commit/e954c407010336611c118268a2186ff9af09f131)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210902082329 ([b4f44c0](https://github.com/LLK/scratch-gui/commit/b4f44c0e1dddf1e899e70feac961bce4a55cddde)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210903073113 ([d30dbd1](https://github.com/LLK/scratch-gui/commit/d30dbd10655428527dcac5853e4d29935cd5501f)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210904053505 ([0f2a0f8](https://github.com/LLK/scratch-gui/commit/0f2a0f8841096ab4f6a20156be2e293042501429)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210907050649 ([f5253cf](https://github.com/LLK/scratch-gui/commit/f5253cf7d7ed0cc2be05939e587f04c6262f26c3)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210908050643 ([b65436f](https://github.com/LLK/scratch-gui/commit/b65436f618e30b3716c9a8b99c66bca8f1a55439)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210911080517 ([bb2485e](https://github.com/LLK/scratch-gui/commit/bb2485e6d6c7f2876985277158062d21a08ebe73)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210912085307 ([01c3401](https://github.com/LLK/scratch-gui/commit/01c340138386af277e4a8190af230d5115ec1414)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210913090740 ([8b32e90](https://github.com/LLK/scratch-gui/commit/8b32e909cc676695841ac0723e892c626c01cc7c)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210916044941 ([65c39a4](https://github.com/LLK/scratch-gui/commit/65c39a405d1cd5fd3415830036c225e62ab8a73b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210917052224 ([6a20b6f](https://github.com/LLK/scratch-gui/commit/6a20b6f69bff27c3e2a9a5c14df07262e9c6d4e8)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210920090900 ([033a3ca](https://github.com/LLK/scratch-gui/commit/033a3ca8691cb77bcf8b458ce140716d30841ddf)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210921080609 ([62d35e9](https://github.com/LLK/scratch-gui/commit/62d35e943360a674d4db00ffca6b237c677c8d11)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210922052150 ([bdb9d58](https://github.com/LLK/scratch-gui/commit/bdb9d58394e30d144a3d2a40e4932d16d76733d5)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210925050728 ([8aaae98](https://github.com/LLK/scratch-gui/commit/8aaae98c8b8209870d1dcc20ab13252a2a8bfa69)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210926054918 ([e94a0d6](https://github.com/LLK/scratch-gui/commit/e94a0d607396acf8d8ea9a351da252ece9330a72)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210927090240 ([dac1bed](https://github.com/LLK/scratch-gui/commit/dac1bedaf540dfea37b57283223d90cfa5168815)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210928051744 ([5adc359](https://github.com/LLK/scratch-gui/commit/5adc35995ccdc870ec0840089d10971c5c6eed11)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20210929071152 ([a93c23b](https://github.com/LLK/scratch-gui/commit/a93c23b97308e26ad50cb97f1025f9f241f684e0)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211001045639 ([86372e1](https://github.com/LLK/scratch-gui/commit/86372e17a545b865c667dabbb34f146c55561a76)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211005051307 ([22b59db](https://github.com/LLK/scratch-gui/commit/22b59db88e2e426fdfe9d4b3f7cc42e72ac91d21)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211005205434 ([2067852](https://github.com/LLK/scratch-gui/commit/2067852463709779fc407d2e2bf785039d647b3a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211006040717 ([3888ce7](https://github.com/LLK/scratch-gui/commit/3888ce78f3afb0cc62ea562c0d8d420a29fe8050)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211006091121 ([6f0f8ed](https://github.com/LLK/scratch-gui/commit/6f0f8ed15addcf98515405282af982b28c3fbf1a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211008071547 ([c4fa600](https://github.com/LLK/scratch-gui/commit/c4fa6000befc1f8780411684403b4eee093d686a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211008105237 ([ef37f18](https://github.com/LLK/scratch-gui/commit/ef37f18988a27f43707ab1aa7b6127f7ca5b8abc)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211009094326 ([1a1815f](https://github.com/LLK/scratch-gui/commit/1a1815f0f3cd3d20a032189326ce782576a10d5e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211010104353 ([cdd8c9d](https://github.com/LLK/scratch-gui/commit/cdd8c9def9e91f185b0a22b9f77f06d7f5d2f346)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211011072154 ([38ed577](https://github.com/LLK/scratch-gui/commit/38ed57713e3dbb0374ffdf23db0975ffce377589)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211011104249 ([6127ede](https://github.com/LLK/scratch-gui/commit/6127ede9829565998165e1f820b8423d8248271a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211011184543 ([cfe541b](https://github.com/LLK/scratch-gui/commit/cfe541bb8522b70e11459164833ee7cbfc98f128)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211013123038 ([fe592c4](https://github.com/LLK/scratch-gui/commit/fe592c4810622967a3c524bf46ed58e071750b68)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211015091140 ([a7d41be](https://github.com/LLK/scratch-gui/commit/a7d41be4b0b8e31ddb7237eef3e568df75b872bf)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211021103412 ([5fda789](https://github.com/LLK/scratch-gui/commit/5fda789acec6ea32b942d104595c3c534947352b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211022090033 ([b919463](https://github.com/LLK/scratch-gui/commit/b919463d2c19a5ba3375a68619b06f0c164d924f)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211022115153 ([30fd9b9](https://github.com/LLK/scratch-gui/commit/30fd9b9e8febea0479f262b17bc3b7fa6527ec46)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211023111849 ([b3e6998](https://github.com/LLK/scratch-gui/commit/b3e699823051dfcd89b6e46b5e6533895bcffc9a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211024055909 ([432261c](https://github.com/LLK/scratch-gui/commit/432261cb397d7e409bf3773be0bb3936d740ddac)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211024114722 ([8b96de7](https://github.com/LLK/scratch-gui/commit/8b96de7960d1a76f29008cdca03aeeaa1c0b1b78)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211025082249 ([1c1e64f](https://github.com/LLK/scratch-gui/commit/1c1e64fbd6dfb7acdd26ea24207e8950b1f0ba06)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211025122040 ([18479c8](https://github.com/LLK/scratch-gui/commit/18479c830e4c0d8926d6a502ece24bd40751ef90)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211025203324 ([37c8604](https://github.com/LLK/scratch-gui/commit/37c86042ecc29c75db8b85d6f03e9e69784e2b05)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211026115314 ([e563f34](https://github.com/LLK/scratch-gui/commit/e563f34cb19f6dd54e0a698ec87ecb9cc0a48542)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211026213632 ([bd92197](https://github.com/LLK/scratch-gui/commit/bd92197002d3aa24735a1a626ece8dffac21304f)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211027180616 ([a6589bb](https://github.com/LLK/scratch-gui/commit/a6589bb23b0610626a017152f47973d86edf92a7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211027220853 ([4dd6e8c](https://github.com/LLK/scratch-gui/commit/4dd6e8cf5c0967644b643c0f97c7d6a36ef88f7e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211028133128 ([21ae3ff](https://github.com/LLK/scratch-gui/commit/21ae3ffdf6cc0f1666a775c5dcfd2092094c1ee0)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211029102646 ([b457170](https://github.com/LLK/scratch-gui/commit/b4571703a99ed2dc9ff8a7d3e7886a192fc25f34)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211029143938 ([9170800](https://github.com/LLK/scratch-gui/commit/917080077e5d85d30a441725289bed14c7477beb)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211030130908 ([fa2a296](https://github.com/LLK/scratch-gui/commit/fa2a29642d0cd945b870e01550f745db156eb15b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211031053119 ([80ea58e](https://github.com/LLK/scratch-gui/commit/80ea58ebd05f5993aee5a4d1af8eef0ad20c1430)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211031124056 ([a375966](https://github.com/LLK/scratch-gui/commit/a37596612139c9bf7d28f424a155a4837fa30b8b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211101112118 ([b1cbcf5](https://github.com/LLK/scratch-gui/commit/b1cbcf5d286428923a64a1dcb92515f9282527d6)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211102051808 ([7c6c79d](https://github.com/LLK/scratch-gui/commit/7c6c79d47c325f8c03660feba05777a2de4761c8)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211102113020 ([e350e97](https://github.com/LLK/scratch-gui/commit/e350e9792787c7316871d34e14b5dc6e47f9b92a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211103090905 ([c4031d6](https://github.com/LLK/scratch-gui/commit/c4031d6c6c4dac9f795008469c7fce882cbe9128)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211104115452 ([59c13c5](https://github.com/LLK/scratch-gui/commit/59c13c571f1f23fb73ca20e78f8d8317194e0937)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211105092900 ([df3d4c7](https://github.com/LLK/scratch-gui/commit/df3d4c7e47f5cd393ef079d6e62da106d23c0f5c)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211105184956 ([f9c306a](https://github.com/LLK/scratch-gui/commit/f9c306a22b0a88282bb2a8a140feb26d92c8156d)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211106090836 ([753bca7](https://github.com/LLK/scratch-gui/commit/753bca70e1806534f0142d66e10b3a09c290fa5f)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211106103847 ([76a0a8b](https://github.com/LLK/scratch-gui/commit/76a0a8b6aceb2231774ea18767f47f5f001eda37)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211107091343 ([434538c](https://github.com/LLK/scratch-gui/commit/434538c83451e88d689ff63f92970ef9e3f96b0c)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211107125616 ([2c31782](https://github.com/LLK/scratch-gui/commit/2c31782e5b433422078a04bf7c09df46edec3acd)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211108154240 ([43d1aac](https://github.com/LLK/scratch-gui/commit/43d1aacde454cb8c216b0710ee7cbf7e69a91703)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211109145355 ([3ce2e5f](https://github.com/LLK/scratch-gui/commit/3ce2e5f9223c3457b17ef940a9f7d1fd0cf60afe)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211110095446 ([ec86ca5](https://github.com/LLK/scratch-gui/commit/ec86ca5087f5db1407b807b349be4dcdb4448afa)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211110140254 ([7f155ce](https://github.com/LLK/scratch-gui/commit/7f155ce656de2396cd46b8383a2de83ff15db896)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211118061701 ([e2bbe98](https://github.com/LLK/scratch-gui/commit/e2bbe98d1d8ad425562c8697585cb2fefb8a1253)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211119052147 ([6e7c0e6](https://github.com/LLK/scratch-gui/commit/6e7c0e697902a2a80844eda5d9417078473210b0)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211120080427 ([a4907ed](https://github.com/LLK/scratch-gui/commit/a4907ed81447e960c41bbb9b8f0c2fadb6db76f7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211121093847 ([321b175](https://github.com/LLK/scratch-gui/commit/321b175993aa8453df1e29ddade9ab69b1013938)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211122104443 ([fa56012](https://github.com/LLK/scratch-gui/commit/fa56012db60f5ba8d309a26c8cf25e8bd6366205)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211123084552 ([d4b37cb](https://github.com/LLK/scratch-gui/commit/d4b37cb2e7ca7993e553756bca1b0a0d6a1b25ef)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211124050429 ([74717a6](https://github.com/LLK/scratch-gui/commit/74717a679d7acbe146484dfa36549d329009331b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211125080201 ([a58efca](https://github.com/LLK/scratch-gui/commit/a58efcaa3bcf1e98ece95c1d32d5060d97ae576a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211127063523 ([3527b40](https://github.com/LLK/scratch-gui/commit/3527b40ad42f00edb068f980ba49d79909c0872b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211128043633 ([075c64c](https://github.com/LLK/scratch-gui/commit/075c64c7633d08b79c1bf88d2c08d0159605e87b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211129045030 ([218aec0](https://github.com/LLK/scratch-gui/commit/218aec0f1bfe8b89486e4a958ac6f388f025c476)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211130051508 ([e0dba4f](https://github.com/LLK/scratch-gui/commit/e0dba4f52bfe1fcc6da64e66234f4d393825153e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211201084022 ([fd7fb0d](https://github.com/LLK/scratch-gui/commit/fd7fb0da8264a16a3c925f4704930846ae11dad8)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211203060223 ([40d018c](https://github.com/LLK/scratch-gui/commit/40d018cc95338ac472bedb584de2a22b7498feeb)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211204083735 ([08f0255](https://github.com/LLK/scratch-gui/commit/08f0255cf9e666be53489a49b657ce0c281a07d9)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211209083430 ([5a6920e](https://github.com/LLK/scratch-gui/commit/5a6920e25b4704f7c8f2226a3707718074513f43)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211210053720 ([2554fbb](https://github.com/LLK/scratch-gui/commit/2554fbb4a5b98196f861448342a76ee72c6ba1c5)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211211050601 ([632e26c](https://github.com/LLK/scratch-gui/commit/632e26c4031aa84003619e26613989f7d7101e85)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211212093406 ([63b8ece](https://github.com/LLK/scratch-gui/commit/63b8ececccc1773eb5b40699284168382859c92a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211213100410 ([3db3779](https://github.com/LLK/scratch-gui/commit/3db37791047d7e7fa3079a3631673064ddbf802d)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211214082857 ([ffcf438](https://github.com/LLK/scratch-gui/commit/ffcf4383399be59c4ab8e2f6b6cd51bff56a2a01)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211215095614 ([014f235](https://github.com/LLK/scratch-gui/commit/014f235d37c98ce1c3ecc60573b3d5f09d744dbe)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211216081552 ([0af98d0](https://github.com/LLK/scratch-gui/commit/0af98d0453d15f9850fde136b00ab01d1d19945e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211217083840 ([d5781a9](https://github.com/LLK/scratch-gui/commit/d5781a90740d17d70dfa004b6edd83f9f06cdcae)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211219053340 ([0ffb38e](https://github.com/LLK/scratch-gui/commit/0ffb38e9d23fb352944eb47a9485a6bd53f9ecc4)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211220060623 ([989ff6d](https://github.com/LLK/scratch-gui/commit/989ff6dae80eb38bcd06c6f06878de19f05ed1e2)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211222083554 ([70d76f6](https://github.com/LLK/scratch-gui/commit/70d76f622b4c7eafbc016d9bc5256fee90283068)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211223092737 ([3aa07bc](https://github.com/LLK/scratch-gui/commit/3aa07bc78c1767218fe9380305dfe4c98909c919)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211224083807 ([e9b6263](https://github.com/LLK/scratch-gui/commit/e9b6263d689566049ce0954f632dd693893cff5a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211225084641 ([47105bd](https://github.com/LLK/scratch-gui/commit/47105bd09de6c39be8aff817be75b64cf4d407de)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20211226081757 ([1e295c2](https://github.com/LLK/scratch-gui/commit/1e295c2b495d4ccdabda4a0c2c71bbf3ea1280fb)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220101093808 ([fb30c3c](https://github.com/LLK/scratch-gui/commit/fb30c3c7ede96e7d6c149bdd0d191634e4100283)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220102085704 ([c27b1ea](https://github.com/LLK/scratch-gui/commit/c27b1ea3dbc8e373ed36ff064328ecfdeaea114b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220106083835 ([c009c74](https://github.com/LLK/scratch-gui/commit/c009c744290cebbb7315de72400d089dacdf44ca)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220108084000 ([73c1e49](https://github.com/LLK/scratch-gui/commit/73c1e49146cfcd527e747dcb74238a0d74701c70)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220109081650 ([e8e18e8](https://github.com/LLK/scratch-gui/commit/e8e18e89803bb01cf172b51dae9a80ce8a90ee1d)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220110082209 ([680a923](https://github.com/LLK/scratch-gui/commit/680a92397c52fbd3d09f8cb84930f1b125be199b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220111074529 ([600d378](https://github.com/LLK/scratch-gui/commit/600d3780e3f64bc65174a50fc625f6c1c8b07220)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220118081555 ([682c064](https://github.com/LLK/scratch-gui/commit/682c064c2866751acbcd58e8c42d0c61fa136bc8)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220206074713 ([a93b25a](https://github.com/LLK/scratch-gui/commit/a93b25a081719bbe74aecc3b73014c0b1afca75d)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220208083128 ([a49705a](https://github.com/LLK/scratch-gui/commit/a49705a05bc4634a1eb4e5610aab4816d907807e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220212061125 ([cc91c6c](https://github.com/LLK/scratch-gui/commit/cc91c6c317e327c09d231d8b7872f09213365cdb)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220214082923 ([487664b](https://github.com/LLK/scratch-gui/commit/487664b4c7b8711577c55309bd23857d4756ec7f)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220216234406 ([d0fd197](https://github.com/LLK/scratch-gui/commit/d0fd19738f61331e8a7fe81d05cc5434ef25c7b9)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220217084455 ([c616315](https://github.com/LLK/scratch-gui/commit/c616315464510d1b498344ba57e759585b541025)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220218212736 ([bced5b9](https://github.com/LLK/scratch-gui/commit/bced5b9e80365e39f4651835456197801bd54428)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220219053938 ([f40a10f](https://github.com/LLK/scratch-gui/commit/f40a10f78c2acd0caf0b03340c44034d9ac83225)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220220052305 ([41638ed](https://github.com/LLK/scratch-gui/commit/41638ed84f05fc59d5497260e43991e144dea8ec)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220220115001 ([5921724](https://github.com/LLK/scratch-gui/commit/5921724545d42c9dcd1853ddb3da2fdcd3fe4c1c)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220221053817 ([b0e186d](https://github.com/LLK/scratch-gui/commit/b0e186d8ed227c01e5131cb7d46ef787609f7246)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220221134058 ([c7eba32](https://github.com/LLK/scratch-gui/commit/c7eba3263820826d01b3758c0cb2d994968b91b2)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220222132735 ([298011e](https://github.com/LLK/scratch-gui/commit/298011e80a64b200b1e708aa4bf3b695897e6485)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220223123949 ([e165a14](https://github.com/LLK/scratch-gui/commit/e165a1436d92e1768abfb35787462a46ef3ba818)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220226120543 ([cac747d](https://github.com/LLK/scratch-gui/commit/cac747d2a37c3e2522f9d52ae68e0a8ce3945e37)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220227052855 ([c354317](https://github.com/LLK/scratch-gui/commit/c3543177ae6453b0edcd7644cb647c4669f503cb)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220227113358 ([fa7a7fe](https://github.com/LLK/scratch-gui/commit/fa7a7fe490d15fdd984b79e70013058ab8aef5a3)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220228121800 ([5e3795b](https://github.com/LLK/scratch-gui/commit/5e3795be89ad3b615f8a819f6a0d57953332ebb0)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220301060944 ([8dc4854](https://github.com/LLK/scratch-gui/commit/8dc4854fd4435aebbe2882e809b6ae3e63f7f017)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220302060126 ([7f02982](https://github.com/LLK/scratch-gui/commit/7f029826477c8e219a4982a533395c535a6be2e9)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220302115522 ([9c21c0c](https://github.com/LLK/scratch-gui/commit/9c21c0c2550ea687669573345ab5e6966efd402a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220303171718 ([b7162d9](https://github.com/LLK/scratch-gui/commit/b7162d999ea21c218a9578d93d0060ac7afdc2b7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220304093334 ([b14aeaf](https://github.com/LLK/scratch-gui/commit/b14aeafe7ff3484b8fa6dcac27e14b06683dd0f1)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220304132615 ([746bc33](https://github.com/LLK/scratch-gui/commit/746bc3358b35e8ee35c503f4e2b7f480c040e4b3)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220305151004 ([b4eab70](https://github.com/LLK/scratch-gui/commit/b4eab70b41fe23eaa09a7334df3c09cbd070adf6)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220306071920 ([3bcca42](https://github.com/LLK/scratch-gui/commit/3bcca421a8f8bf8966170bb47b3028d220584195)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220307201104 ([c6a6176](https://github.com/LLK/scratch-gui/commit/c6a6176d8e1c48a6397fd874f527e6aced970390)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220308092939 ([e80fa44](https://github.com/LLK/scratch-gui/commit/e80fa44c465578ff9546ae10e6a43864287c960d)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220309122717 ([83edd98](https://github.com/LLK/scratch-gui/commit/83edd9827c1fca476481537f82d2981f5cfea3dc)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220310145857 ([83dec5f](https://github.com/LLK/scratch-gui/commit/83dec5fabf2a2568f0f20fe7d52c366f244666c8)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220311172602 ([e74c7f8](https://github.com/LLK/scratch-gui/commit/e74c7f887f3877f6a9a480eae7f927bc25a32fa7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220311231411 ([54bfb33](https://github.com/LLK/scratch-gui/commit/54bfb334adfe3edf5fd38c9cc556fab3f79138ec)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220312124733 ([15d2efb](https://github.com/LLK/scratch-gui/commit/15d2efb2cd8a115cc58a6c55dd7838d4a5fe0ff4)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220313113946 ([3717861](https://github.com/LLK/scratch-gui/commit/371786165ce30fa11538d7448677ef4238d93e9e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220314144028 ([5dd6f59](https://github.com/LLK/scratch-gui/commit/5dd6f59a344fe9a0b0079a357ecfbce7a8a11533)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220314211612 ([a027309](https://github.com/LLK/scratch-gui/commit/a027309ccd0ffd558dd354fd00067c4703c56ff7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220315115545 ([cad9bd9](https://github.com/LLK/scratch-gui/commit/cad9bd9da59f36daf2060d991d967d78a6e4c609)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220316133606 ([62f169b](https://github.com/LLK/scratch-gui/commit/62f169baf084e7364325e86388690d482e2edee6)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220317135833 ([b43f17f](https://github.com/LLK/scratch-gui/commit/b43f17f7ffcd640332b05f2a4464447992e0fd76)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220317203426 ([6b6f3d3](https://github.com/LLK/scratch-gui/commit/6b6f3d31d1964ba2128b25b942365f105874fd21)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220318200500 ([3c291a8](https://github.com/LLK/scratch-gui/commit/3c291a81269388d460e2d504e3588ba9940ebcd0)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220318223920 ([0939569](https://github.com/LLK/scratch-gui/commit/0939569b0a01f874b00993945df60e4f0705ee3f)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220319101343 ([4f88477](https://github.com/LLK/scratch-gui/commit/4f88477e2ca0e22c2529458351632ed8f0172fe4)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220320152406 ([d7c9584](https://github.com/LLK/scratch-gui/commit/d7c9584211a02d5f344a0934911b18ecc95851e7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220321181407 ([e525a8e](https://github.com/LLK/scratch-gui/commit/e525a8e4a79d7b707d5b575293796f53d9234ca5)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220322143111 ([4c6fb52](https://github.com/LLK/scratch-gui/commit/4c6fb52de8ad94fbd75c3aba27cea7862a254aee)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220323094707 ([fe75551](https://github.com/LLK/scratch-gui/commit/fe755512f44b654b0d997f85adbd23ccb6da5a9c)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220324055952 ([80536ef](https://github.com/LLK/scratch-gui/commit/80536ef085c86b0648600e1a68ee1046fc53a4dd)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220326095529 ([85dc051](https://github.com/LLK/scratch-gui/commit/85dc051cd7d4f658c9ff31b9fb32592225c8bd58)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220326190446 ([b24a006](https://github.com/LLK/scratch-gui/commit/b24a0067725e8442e00703f4539721912e889ed5)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220327142405 ([b4dfc1f](https://github.com/LLK/scratch-gui/commit/b4dfc1f9366a834cd9b4099a1be730c7c1ce6749)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220328212306 ([f218ae8](https://github.com/LLK/scratch-gui/commit/f218ae8d4521aae4691db35eb615fa2b663e3f05)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220329131843 ([060d119](https://github.com/LLK/scratch-gui/commit/060d119a9873316018a175c474dc340145534c5e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220330211018 ([3fc219a](https://github.com/LLK/scratch-gui/commit/3fc219a1cf7e931b1dce7707e2aeece16cedc513)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220331115441 ([8367614](https://github.com/LLK/scratch-gui/commit/836761436e5d158fcb0e972160966761964e1d5c)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220403065155 ([40b9b08](https://github.com/LLK/scratch-gui/commit/40b9b0870b2a80b07afccd44a4d2020b4d5a1b1f)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220404124039 ([f287a2a](https://github.com/LLK/scratch-gui/commit/f287a2acf9e5542064b48c9f92f5263b02ac0d67)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220409102002 ([99612e5](https://github.com/LLK/scratch-gui/commit/99612e58e0dea05f7b664bc64b77e3a5b8e2d63e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220411065128 ([bac6acb](https://github.com/LLK/scratch-gui/commit/bac6acbb7758f2c2e2ad122e4ca8064e5f14c2d8)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220412111205 ([24ceff4](https://github.com/LLK/scratch-gui/commit/24ceff4d073f08f2675044b735d535b38c4c4974)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220414094757 ([0ebcc18](https://github.com/LLK/scratch-gui/commit/0ebcc18504a90c1223ad590ed92b34e0f90d4428)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220415104225 ([14d82b1](https://github.com/LLK/scratch-gui/commit/14d82b169bcef8360f00c4aeb2538c3af897461b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220416060512 ([7d169f5](https://github.com/LLK/scratch-gui/commit/7d169f5500424be1aee01e62850a052927de4b9a)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220417063801 ([6183b38](https://github.com/LLK/scratch-gui/commit/6183b382bb74f585109950f92d4fd40b622cab59)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220418143646 ([7578696](https://github.com/LLK/scratch-gui/commit/7578696b9827662e5bb6d8f1481ac93c045c3e53)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220419161341 ([ad6a72c](https://github.com/LLK/scratch-gui/commit/ad6a72cd0f802b0a69ad7c4f55af8197d62b1b6d)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220421143546 ([8b85dd5](https://github.com/LLK/scratch-gui/commit/8b85dd5171568a02fa29f3af940eef41d402eb28)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220422102916 ([1cbbbb1](https://github.com/LLK/scratch-gui/commit/1cbbbb1287b70ef1957dc362c10965719bdd093c)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220424101338 ([58bfe76](https://github.com/LLK/scratch-gui/commit/58bfe762976cb8bae7ada61e0e387c719bc534d6)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220425063551 ([591d83c](https://github.com/LLK/scratch-gui/commit/591d83c50bc37d3dc0a294a4f8af0da602ae2ccd)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220426104209 ([5fc72c3](https://github.com/LLK/scratch-gui/commit/5fc72c39be6d366bf24225ccbce91dc65dfca9bf)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220501145413 ([d1b8f3f](https://github.com/LLK/scratch-gui/commit/d1b8f3f05e1da6f78225876560a101166b584698)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220504172200 ([0ccb0d1](https://github.com/LLK/scratch-gui/commit/0ccb0d1d908edd7b5207a9fa2cd4f91e69693231)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220505153212 ([e0e319b](https://github.com/LLK/scratch-gui/commit/e0e319b6c32cd77b21e500ac4085caf4fa0e6502)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220506115922 ([9e79aa3](https://github.com/LLK/scratch-gui/commit/9e79aa3151b3a034e10d6e4a061f6e886104ab15)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220507103119 ([194e1c1](https://github.com/LLK/scratch-gui/commit/194e1c1707d3310081b9940b08c3d1f2996ea692)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220509233646 ([98b1a0f](https://github.com/LLK/scratch-gui/commit/98b1a0fc0161c273a28346a3abb5fabd2946ae74)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220510130158 ([db86d62](https://github.com/LLK/scratch-gui/commit/db86d62596e2af59ea0b67133257098b1ec44472)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220512101505 ([c41cd73](https://github.com/LLK/scratch-gui/commit/c41cd73754b400c71878aed2c8a31a927be058f6)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220513165704 ([1d160b9](https://github.com/LLK/scratch-gui/commit/1d160b9146eb94400dc740ee2d2918220000fc7e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220514125252 ([5e43e35](https://github.com/LLK/scratch-gui/commit/5e43e35d7a6ac71dcdfde1c634150afd289d9fb1)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220515113017 ([1e7ca6e](https://github.com/LLK/scratch-gui/commit/1e7ca6e782638be674b6a2d79c415b94dd515286)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220518112031 ([1c8c9fa](https://github.com/LLK/scratch-gui/commit/1c8c9fabce13fe337518a68e3bbd4d45bac18dc6)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220518214640 ([85a968e](https://github.com/LLK/scratch-gui/commit/85a968e411a7e8b0b949c45e4ea0be624428a750)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220519142410 ([2709f1b](https://github.com/LLK/scratch-gui/commit/2709f1bd6479fad5dbc7bcda1d3ca4cb419605c4)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220519224632 ([c5f0a34](https://github.com/LLK/scratch-gui/commit/c5f0a34d0bdc564ddc4f5cc1c7e43f64f85bb466)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220520162901 ([a984668](https://github.com/LLK/scratch-gui/commit/a98466857cb6c306e2f6eeaf6d9008c63d794ec5)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220521172102 ([3ab0768](https://github.com/LLK/scratch-gui/commit/3ab0768f7987ce27b4fa2fc9455f6fb4eb291c59)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220523235552 ([c05c61d](https://github.com/LLK/scratch-gui/commit/c05c61deec2475ab22bf6617464836663b75189b)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220524142913 ([fd903ae](https://github.com/LLK/scratch-gui/commit/fd903ae05b6c1b9707488ff08aa4dc3f59331403)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220525113513 ([fb3ac58](https://github.com/LLK/scratch-gui/commit/fb3ac586843a254196432c6fa3ceb52958641acc)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220526145309 ([2c2bcfe](https://github.com/LLK/scratch-gui/commit/2c2bcfed22199c30e87bad286c6c06a781cd783e)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220528060302 ([efc0498](https://github.com/LLK/scratch-gui/commit/efc04981c3045250544387a51dbe0c3b2ae5b404)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220530111952 ([5700bc8](https://github.com/LLK/scratch-gui/commit/5700bc8855c01e9147a15c77257850afb6360f30)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220601111129 ([4750942](https://github.com/LLK/scratch-gui/commit/4750942ef2600bb245b44979d6d99e626806c8e7)) +* **deps:** update dependency scratch-vm to v0.2.0-prerelease.20220602121716 ([209fb78](https://github.com/LLK/scratch-gui/commit/209fb780ae054cf3eb3d1d664b5c5310cb91f1fe)) +* **deps:** update dependency scratch-vm to v1 ([d83ef11](https://github.com/LLK/scratch-gui/commit/d83ef112b112cd200bfe3f33eab7c89a39b14546)) +* **deps:** update dependency scratch-vm to v1.0.2 ([ec412ea](https://github.com/LLK/scratch-gui/commit/ec412eab368043ab52b945b6e0478f48f177b6f2)) +* **deps:** update dependency scratch-vm to v1.0.3 ([7d55dec](https://github.com/LLK/scratch-gui/commit/7d55dec208d0cf37ee6482053cbd22788701bae3)) +* **deps:** update dependency scratch-vm to v1.0.4 ([739f695](https://github.com/LLK/scratch-gui/commit/739f695f5fb6824925d41b92c93e329a34311846)) +* **deps:** update dependency scratch-vm to v1.0.5 ([809c0ce](https://github.com/LLK/scratch-gui/commit/809c0ce238df5d9809157354f49a8741ce1bb49a)) +* **deps:** update dependency scratch-vm to v1.0.6 ([21d0282](https://github.com/LLK/scratch-gui/commit/21d02820bf6471da3dd5d600f288b9c54446f0d1)) +* **deps:** update dependency scratch-vm to v1.0.7 ([36d016d](https://github.com/LLK/scratch-gui/commit/36d016d131d933fa2792411677d51baf9c7b7024)) +* **deps:** update dependency scratch-vm to v1.0.8 ([5855196](https://github.com/LLK/scratch-gui/commit/585519643191f52c71fe660b8f80142a7c1a8307)) +* **deps:** update dependency scratch-vm to v1.0.9 ([bc3e703](https://github.com/LLK/scratch-gui/commit/bc3e7032ec908e90df55c808ab6d01dce096ba4d)) +* **deps:** update dependency scratch-vm to v1.1.3 ([640d82c](https://github.com/LLK/scratch-gui/commit/640d82cd014e8b2a013dd299f00e5759f2eb56ad)) +* **deps:** update dependency scratch-vm to v1.1.4 ([266fe8e](https://github.com/LLK/scratch-gui/commit/266fe8e90b5a885dade7171787422ea927565f27)) +* **deps:** update dependency scratch-vm to v1.1.6 ([fa55a1c](https://github.com/LLK/scratch-gui/commit/fa55a1c113e4792336055fa5c8103303b799c66e)) +* **deps:** update dependency scratch-vm to v1.2.10 ([465c4a7](https://github.com/LLK/scratch-gui/commit/465c4a7e7fd8226230be7389b262bcbd522da45c)) +* **deps:** update dependency scratch-vm to v1.2.12 ([737b584](https://github.com/LLK/scratch-gui/commit/737b584249a54e1b38109ac810710e4e59218c9c)) +* **deps:** update dependency scratch-vm to v1.2.13 ([86d746f](https://github.com/LLK/scratch-gui/commit/86d746ff75d0d6e57e8668e620e3b9dc419a2e00)) +* **deps:** update dependency scratch-vm to v1.2.14 ([71d3ee9](https://github.com/LLK/scratch-gui/commit/71d3ee9e61a8f7735e908700d2eb0b091af19789)) +* **deps:** update dependency scratch-vm to v1.2.15 ([88215db](https://github.com/LLK/scratch-gui/commit/88215db96346a534eae8e5dcfebcb0da9a0d973f)) +* **deps:** update dependency scratch-vm to v1.2.17 ([445c6a2](https://github.com/LLK/scratch-gui/commit/445c6a2986fa7985e9e7ac55931f82355ced0f16)) +* **deps:** update dependency scratch-vm to v1.2.19 ([29f4eb2](https://github.com/LLK/scratch-gui/commit/29f4eb26ea8d184c53b7cce1b2ad3d590fbe0860)) +* **deps:** update dependency scratch-vm to v1.2.20 ([470e901](https://github.com/LLK/scratch-gui/commit/470e901f0e013b38d44f5236bd4e769f96cc8955)) +* **deps:** update dependency scratch-vm to v1.2.22 ([61b8028](https://github.com/LLK/scratch-gui/commit/61b8028d13fd0a6968cbe23a5f7d438f00da40c5)) +* **deps:** update dependency scratch-vm to v1.2.23 ([6a39313](https://github.com/LLK/scratch-gui/commit/6a39313cd5dd956b34b3890db01ae7302cdec0fc)) +* **deps:** update dependency scratch-vm to v1.2.6 ([a9e789d](https://github.com/LLK/scratch-gui/commit/a9e789d0086d677204322c7c2cbca3b0dde024e1)) +* **deps:** update dependency scratch-vm to v1.2.8 ([66f89bd](https://github.com/LLK/scratch-gui/commit/66f89bd0b5d804e502c16cc8a2b7a866eea38e5c)) +* **deps:** update scratch-svg-renderer to hopefully fix tests ([b3ca3ba](https://github.com/LLK/scratch-gui/commit/b3ca3ba852a15f5eb3fe745e3e4025d1dc49d436)) +* follow eslint rule ([c3b3257](https://github.com/LLK/scratch-gui/commit/c3b32570be1dcf539c1d0d841fee13c52b54419c)) +* initialize audio context only with user interaction ([39ceac4](https://github.com/LLK/scratch-gui/commit/39ceac4abfdd700e6ecf8e71658e26aff652df91)) +* **Typo:** change 'dserver' to 'server' ([42baacf](https://github.com/LLK/scratch-gui/commit/42baacf6885f1cfff60c6569624a1e510672d5de)) +* **UI:** fix cursor property when hovering account nav items ([742e9e3](https://github.com/LLK/scratch-gui/commit/742e9e327ae32868a871a20e06e4674f7604b3fb)) + + +### Features + +* **deps:** update dependency scratch-l10n to v3.15.20220913031617 ([22d7d58](https://github.com/LLK/scratch-gui/commit/22d7d58b2ef421245e71f98998f57d314de7d891)) +* **deps:** update dependency scratch-paint to v1.1.3 ([f0ddf33](https://github.com/LLK/scratch-gui/commit/f0ddf3370f429ced7ff259f27c8c09016fbbde44)) +* **deps:** update dependency scratch-vm to v1.1.2 ([69d0091](https://github.com/LLK/scratch-gui/commit/69d00919c2b576072c4854d0cdf0a5cc405e8dc2)) +* **deps:** update dependency scratch-vm to v1.2.4 ([9a9dec1](https://github.com/LLK/scratch-gui/commit/9a9dec1e0cce17c6e06592ff3b6585c11fc97c1f)) + + +### Reverts + +* Revert "chore(package): update lockfile package-lock.json" ([c296732](https://github.com/LLK/scratch-gui/commit/c2967327532a30ae00ce2ef0807dfc5ff95fba4c)) +* Revert "chore(package): update dependencies" ([212ffb4](https://github.com/LLK/scratch-gui/commit/212ffb42d35b51c3d8d70b284388d7e241f3c877)) +* Revert "Revert "Limit louder effect with a max RMS"" ([5599626](https://github.com/LLK/scratch-gui/commit/5599626405f57cde0cc1bfafb913f2e95e2bd818)) +* Revert "chore(package): update dependencies" ([9dcb1f8](https://github.com/LLK/scratch-gui/commit/9dcb1f81268db2378c34e690c2bc5d2c657da4e6)) +* Revert and fix tests ([fdd4b61](https://github.com/LLK/scratch-gui/commit/fdd4b61d5de22a670d86e6c16af861b6e5c174ac)) +* Revert "Fix #4262: Saving with Ctrl/Cmd + S" ([5b75c2e](https://github.com/LLK/scratch-gui/commit/5b75c2e9714893e944625fad9b30f2ca03197911)), closes [#4262](https://github.com/LLK/scratch-gui/issues/4262) +* Revert "Fix vernier extension loader" ([dc9f24c](https://github.com/LLK/scratch-gui/commit/dc9f24cc1166d0cb788efdd048295a5f174d5906)) +* Revert "Add when touching hat" ([3d2fba1](https://github.com/LLK/scratch-gui/commit/3d2fba1156d8201fe760d396dfe07c26b0db5a08)) +* Revert "Updates to preview modal for release (#1864)" ([7caddb9](https://github.com/LLK/scratch-gui/commit/7caddb90a993876c2ff512267bf7340de45fdc70)), closes [#1864](https://github.com/LLK/scratch-gui/issues/1864) +* Revert "Changes to hash should happen through project loader hoc. Changes to the current project id and current project data should happen in a reducer since they are part of global state. That way, the load button can affect the global project data as well." ([004b586](https://github.com/LLK/scratch-gui/commit/004b586cad6b2c4461e3c31dd0875296b4fd2157)) +* Revert "Rename md5 property in default sb3 project to md5ext to reflect it's actual contents." ([73ec43d](https://github.com/LLK/scratch-gui/commit/73ec43d0b33b12974ca7404c73ba324bfecb9213)) +* Revert "Adding constraint on min height for large stage" ([d2d15f6](https://github.com/LLK/scratch-gui/commit/d2d15f68d4dbd080ac9c28828c8546ef33b919e3)) +* Revert "Fix deleting costumes not updating the paint editor" ([c9119c5](https://github.com/LLK/scratch-gui/commit/c9119c5e14c6c4bc3050ce44c46d0fa918d8b76e)) +* Revert "Script libraries to process SVG costumes" ([74cba7b](https://github.com/LLK/scratch-gui/commit/74cba7bef421e14d6c10ddd9acd39f13531fea36)) diff --git a/LICENSE b/LICENSE index 6d00c99e825..0ad25db4bd1 100644 --- a/LICENSE +++ b/LICENSE @@ -1,12 +1,661 @@ -Copyright (c) 2016, Massachusetts Institute of Technology -All rights reserved. + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + Preamble -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. -3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md index aa38c0db9f9..6508851ada7 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,71 @@ # scratch-gui -#### Scratch GUI is a set of React components that comprise the interface for creating and running Scratch 3.0 projects -[![Build Status](https://travis-ci.com/LLK/scratch-gui.svg?token=Yfq2ryN1BwaxDME69Lnc&branch=master)](https://travis-ci.com/LLK/scratch-gui) -[![Greenkeeper badge](https://badges.greenkeeper.io/LLK/scratch-gui.svg)](https://greenkeeper.io/) +## **⚠️ NOTICE: Repository Migration to Mono-Repo ⚠️** + +The Scratch Team has migrated the `scratch-gui` module into a new mono-repo, +[`scratch-editor`](https://github.com/scratchfoundation/scratch-editor). This independent `scratch-gui` repository +**will be archived**. Any new issues or pull requests should be opened in the mono-repo. + +The new mono-repo version of `scratch-gui` is published to the NPM registry as +[`@scratch/scratch-gui`](https://www.npmjs.com/package/@scratch/scratch-gui). + +**Contributors:** + +* I would like to thank all past contributors for their work on this repository. +* If you are aware of valuable issues or pull requests, please consider re-opening them in the mono-repo. If you do + so, please link the new issue or pull request to the original one in this repository to help others find it and to + reduce the chance of duplicate work. +* We apologize for the inconvenience and greatly appreciate your help with this transition! + +For more information, see the [`scratch-editor` repository on GitHub](https://github.com/scratchfoundation/scratch-editor). + +## Overview + +Scratch GUI is a set of React components that comprise the interface for creating and running Scratch 3.0 projects. + +To open the current build in your browser on Github Pages: + + ## Installation + This requires you to have Git and Node.js installed. In your own node environment/application: + ```bash -npm install https://github.com/LLK/scratch-gui.git +npm install https://github.com/scratchfoundation/scratch-gui.git ``` + If you want to edit/play yourself: + ```bash -git clone https://github.com/LLK/scratch-gui.git +git clone https://github.com/scratchfoundation/scratch-gui.git cd scratch-gui npm install ``` +**You may want to add `--depth=1` to the `git clone` command because there are some [large files in the git repository +history](https://github.com/scratchfoundation/scratch-gui/issues/5140).** + ## Getting started + Running the project requires Node.js to be installed. ## Running + Open a Command Prompt or Terminal in the repository and run: + ```bash npm start ``` + Then go to [http://localhost:8601/](http://localhost:8601/) - the playground outputs the default GUI component ## Developing alongside other Scratch repositories ### Getting another repo to point to this code - If you wish to develop `scratch-gui` alongside other scratch repositories that depend on it, you may wish to have the other repositories use your local `scratch-gui` build instead of fetching the current production version of the scratch-gui that is found by default using `npm install`. @@ -49,36 +82,45 @@ Here's how to link your local `scratch-gui` code to another project's `node_modu 2. From the top level of each repository (such as `scratch-www`) that depends on `scratch-gui`: 1. Make sure you have run `npm install` 2. Run `npm link scratch-gui` - 3. Build or run the repositoriy + 3. Build or run the repository #### Using `npm run watch` -Instead of `BUILD_MODE=dist npm run build`, you can use `BUILD_MODE=dist npm run watch` instead. This will watch for changes to your `scratch-gui` code, and automatically rebuild when there are changes. Sometimes this has been unreliable; if you are having problems, try going back to `BUILD_MODE=dist npm run build` until you resolve them. +Instead of `BUILD_MODE=dist npm run build`, you can use `BUILD_MODE=dist npm run watch` instead. This will watch for +changes to your `scratch-gui` code, and automatically rebuild when there are changes. Sometimes this has been +unreliable; if you are having problems, try going back to `BUILD_MODE=dist npm run build` until you resolve them. -#### Oh no! It didn't work! +#### Oh no! It didn't work If you can't get linking to work right, try: -* Follow the recipe above step by step and don't change the order. It is especially important to run `npm install` _before_ `npm link`, because installing after the linking will reset the linking. -* Make sure the repositories are siblings on your machine's file tree, like `.../.../MY_SCRATCH_DEV_DIRECTORY/scratch-gui/` and `.../.../MY_SCRATCH_DEV_DIRECTORY/scratch-www/`. -* Consistent node.js version: If you have multiple Terminal tabs or windows open for the different Scratch repositories, make sure to use the same node version in all of them. + +* Follow the recipe above step by step and don't change the order. It is especially important to run `npm install` + _before_ `npm link` as installing after the linking will reset the linking. +* Make sure the repositories are siblings on your machine's file tree, like + `.../.../MY_SCRATCH_DEV_DIRECTORY/scratch-gui/` and `.../.../MY_SCRATCH_DEV_DIRECTORY/scratch-www/`. +* Consistent node.js version: If you have multiple Terminal tabs or windows open for the different Scratch + repositories, make sure to use the same node version in all of them. * If nothing else works, unlink the repositories by running `npm unlink` in both, and start over. ## Testing + ### Documentation -You may want to review the documentation for [Jest](https://facebook.github.io/jest/docs/en/api.html) and [Enzyme](http://airbnb.io/enzyme/docs/api/) as you write your tests. +You may want to review the documentation for [Jest](https://facebook.github.io/jest/docs/en/api.html) and +[Enzyme](http://airbnb.io/enzyme/docs/api/) as you write your tests. See [jest cli docs](https://facebook.github.io/jest/docs/en/cli.html#content) for more options. ### Running tests -*NOTE: If you're a windows user, please run these scripts in Windows `cmd.exe` instead of Git Bash/MINGW64.* +_NOTE: If you're a Windows user, please run these scripts in Windows `cmd.exe` instead of Git Bash/MINGW64._ -Before running any test, make sure you have run `npm install` from this (scratch-gui) repository's top level. +Before running any tests, make sure you have run `npm install` from this (scratch-gui) repository's top level. #### Main testing command To run linter, unit tests, build, and integration tests, all at once: + ```bash npm test ``` @@ -86,11 +128,13 @@ npm test #### Running unit tests To run unit tests in isolation: + ```bash npm run test:unit ``` To run unit tests in watch mode (watches for code changes and continuously runs tests): + ```bash npm run test:unit -- --watch ``` @@ -103,9 +147,11 @@ $(npm bin)/jest --runInBand test/unit/components/button.test.jsx #### Running integration tests -Integration tests use a headless browser to manipulate the actual html and javascript that the repo +Integration tests use a headless browser to manipulate the actual HTML and javascript that the repo produces. You will not see this activity (though you can hear it when sounds are played!). +To run the integration tests, you'll first need to install Chrome, Chromium, or a variant, along with Chromedriver. + Note that integration tests require you to first create a build that can be loaded in a browser: ```bash @@ -134,16 +180,16 @@ USE_HEADLESS=no $(npm bin)/jest --runInBand test/integration/backpack.test.js ### Ignoring optional dependencies -When running `npm install`, you can get warnings about optionsl dependencies: +When running `npm install`, you can get warnings about optional dependencies: -``` +```text npm WARN optional Skipping failed optional dependency /chokidar/fsevents: npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.2.7 ``` You can suppress them by adding the `no-optional` switch: -``` +```bash npm install --no-optional ``` @@ -151,9 +197,9 @@ Further reading: [Stack Overflow](https://stackoverflow.com/questions/36725181/n ### Resolving dependencies -When installing for the first time, you can get warnings which need to be resolved: +When installing for the first time, you can get warnings that need to be resolved: -``` +```text npm WARN eslint-config-scratch@5.0.0 requires a peer of babel-eslint@^8.0.1 but none was installed. npm WARN eslint-config-scratch@5.0.0 requires a peer of eslint@^4.0 but none was installed. npm WARN scratch-paint@0.2.0-prerelease.20190318170811 requires a peer of react-intl-redux@^0.7 but none was installed. @@ -162,19 +208,19 @@ npm WARN scratch-paint@0.2.0-prerelease.20190318170811 requires a peer of react- You can check which versions are available: -``` +```bash npm view react-intl-redux@0.* version ``` -You will neet do install the required version: +You will need to install the required version: -``` +```bash npm install --no-optional --save-dev react-intl-redux@^0.7 ``` The dependency itself might have more missing dependencies, which will show up like this: -``` +```bash user@machine:~/sources/scratch/scratch-gui (491-translatable-library-objects)$ npm install --no-optional --save-dev react-intl-redux@^0.7 scratch-gui@0.1.0 /media/cuideigin/Linux/sources/scratch/scratch-gui ├── react-intl-redux@0.7.0 @@ -183,16 +229,83 @@ scratch-gui@0.1.0 /media/cuideigin/Linux/sources/scratch/scratch-gui You will need to install those as well: -``` +```bash npm install --no-optional --save-dev react-responsive@^5.0.0 ``` Further reading: [Stack Overflow](https://stackoverflow.com/questions/46602286/npm-requires-a-peer-of-but-all-peers-are-in-package-json-and-node-modules) - ## Publishing to GitHub Pages + You can publish the GUI to github.io so that others on the Internet can view it. -[Read the wiki for a step-by-step guide.](https://github.com/LLK/scratch-gui/wiki/Publishing-to-GitHub-Pages) +[Read the wiki for a step-by-step guide.](https://github.com/scratchfoundation/scratch-gui/wiki/Publishing-to-GitHub-Pages) + +## Understanding the project state machine + +Since so much code throughout scratch-gui depends on the state of the project, which goes through many different +phases of loading, displaying and saving, we created a "finite state machine" to make it clear which state it is in at +any moment. This is contained in the file src/reducers/project-state.js . + +It can be hard to understand the code in src/reducers/project-state.js . There are several types of data and functions +used, which relate to each other: + +### Loading states + +These include state constant strings like: + +* `NOT_LOADED` (the default state), +* `ERROR`, +* `FETCHING_WITH_ID`, +* `LOADING_VM_WITH_ID`, +* `REMIXING`, +* `SHOWING_WITH_ID`, +* `SHOWING_WITHOUT_ID`, +* etc. + +### Transitions + +These are names for the action which causes a state change. Some examples are: + +* `START_FETCHING_NEW`, +* `DONE_FETCHING_WITH_ID`, +* `DONE_LOADING_VM_WITH_ID`, +* `SET_PROJECT_ID`, +* `START_AUTO_UPDATING`, + +### How transitions relate to loading states + +Like this diagram of the project state machine shows, various transition actions can move us from one loading state to +another: + +![Project state diagram](docs/project_state_diagram.svg) + +_Note: for clarity, the diagram above excludes states and transitions relating to error handling._ + +#### Example + +Here's an example of how states transition. + +Suppose a user clicks on a project, and the page starts to load with URL `https://scratch.mit.edu/projects/123456`. + +Here's what will happen in the project state machine: + +![Project state example](docs/project_state_example.png) + +1. When the app first mounts, the project state is `NOT_LOADED`. +2. The `SET_PROJECT_ID` redux action is dispatched (from src/lib/project-fetcher-hoc.jsx), with `projectId` set to + `123456`. This transitions the state from `NOT_LOADED` to `FETCHING_WITH_ID`. +3. The `FETCHING_WITH_ID` state. In src/lib/project-fetcher-hoc.jsx, the `projectId` value `123456` is used to request + the data for that project from the server. +4. When the server responds with the data, src/lib/project-fetcher-hoc.jsx dispatches the `DONE_FETCHING_WITH_ID` + action, with `projectData` set. This transitions the state from `FETCHING_WITH_ID` to `LOADING_VM_WITH_ID`. +5. The `LOADING_VM_WITH_ID` state. In src/lib/vm-manager-hoc.jsx, we load the `projectData` into Scratch's virtual + machine ("the vm"). +6. When loading is done, src/lib/vm-manager-hoc.jsx dispatches the `DONE_LOADING_VM_WITH_ID` action. This transitions + the state from `LOADING_VM_WITH_ID` to `SHOWING_WITH_ID`. +7. The `SHOWING_WITH_ID` state. Now the project appears normally and is playable and editable. ## Donate -We provide [Scratch](https://scratch.mit.edu) free of charge, and want to keep it that way! Please consider making a [donation](https://secure.donationpay.org/scratchfoundation/) to support our continued engineering, design, community, and resource development efforts. Donations of any size are appreciated. Thank you! + +We provide [Scratch](https://scratch.mit.edu) free of charge, and want to keep it that way! Please consider making a +[donation](https://www.scratchfoundation.org/donate) to support our continued engineering, design, community, and +resource development efforts. Donations of any size are appreciated. Thank you! diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 00000000000..d89185ea291 --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,4 @@ +module.exports = { + extends: ['@commitlint/config-conventional'], + ignores: [message => message.startsWith('chore(release):')] +}; diff --git a/docs/project_state_diagram.svg b/docs/project_state_diagram.svg new file mode 100644 index 00000000000..e24382e5a0b --- /dev/null +++ b/docs/project_state_diagram.svg @@ -0,0 +1,3 @@ + + +
DONE_LOADING_VM_WITH_ID
DONE_LOADING_VM_WITH_ID
LOADING_VM_WITH_ID
loads projectData into vm
LOADING_VM_WITH_ID...
SET_PROJECT_ID
with projectId > 0
SET_PROJECT_ID...
SET_PROJECT_ID
with projectId == 0
SET_PROJECT_ID...
START_LOADING_VM_FILE_UPLOAD
START_LOADING_VM_FILE_UPLOAD
NOT_LOADED
NOT_LOADED
DONE_FETCHING_WITH_ID
sets projectData
DONE_FETCHING_WITH_ID...
FETCHING_WITH_ID
gets projectData from server
FETCHING_WITH_ID...
DONE_LOADING_VM_WITHOUT_ID
sets projectId = 0
[note: setting projectId here isn't necessary]
DONE_LOADING_VM_WITHOUT_ID...
LOADING_VM_NEW_DEFAULT
loads projectData into vm
LOADING_VM_NEW_DEFAULT...
DONE_FETCHING_DEFAULT
sets projectData
DONE_FETCHING_DEFAULT...
FETCHING_NEW_DEFAULT
gets default projectData
FETCHING_NEW_DEFAULT...
DONE_LOADING_VM_WITHOUT_ID
sets projectId = 0
DONE_LOADING_VM_WITHOUT_ID...
DONE_LOADING_VM_TO_SAVE
DONE_LOADING_VM_TO_SAVE
LOADING_VM_FILE_UPLOAD
loads project data into vm.
Note: projectData object is never set
LOADING_VM_FILE_UPLOAD...
SET_PROJECT_ID
with projectId == 0
or, START_FETCHING_NEW
SET_PROJECT_ID...
START_UPDATING_BEFORE_CREATING_COPY
START_UPDATING_BEFORE_CREATING_COPY
START_MANUAL_UPDATING
START_MANUAL_UPDATING
START_AUTO_UPDATING
START_AUTO_UPDATING
START_REMIXING
START_REMIXING
START_UPDATING_BEFORE_CREATING_NEW
START_UPDATING_BEFORE_CREATING_NEW
SET_PROJECT_ID
with projectId > 0
SET_PROJECT_ID...
START_LOADING_VM_FILE_UPLOAD
START_LOADING_VM_FILE_UPLOAD
SHOWING_WITH_ID
SHOWING_WITH_ID
DONE_CREATING_NEW
sets projectId
DONE_CREATING_NEW...
CREATING_NEW
sends project data to server,
gets project id

CREATING_NEW...
START_CREATING_NEW
START_CREATING_NEW
START_LOADING_VM_FILE_UPLOAD
START_LOADING_VM_FILE_UPLOAD
SET_PROJECT_ID
with projectId > 0
SET_PROJECT_ID...
START_FETCHING_NEW
START_FETCHING_NEW
SHOWING_WITHOUT_ID
SHOWING_WITHOUT_ID
DONE_REMIXING
sets projectId
DONE_REMIXING...
REMIXING
sends project data to server,
gets project id
REMIXING...
DONE_UPDATING
DONE_UPDATING
MANUAL_UPDATING
sends project data to server
MANUAL_UPDATING...
DONE_UPDATING
DONE_UPDATING
AUTO_UPDATING
sends project data to server
AUTO_UPDATING...
DONE_UPDATING_BEFORE_COPY
DONE_UPDATING_BEFORE_COPY
UPDATING_BEFORE_COPY
sends project data to server
UPDATING_BEFORE_COPY...
DONE_UPDATING_BEFORE_NEW
DONE_UPDATING_BEFORE_NEW
UPDATING_BEFORE_NEW
sends project data to server
UPDATING_BEFORE_NEW...
DONE_CREATING_COPY
sets projectId
DONE_CREATING_COPY...
CREATING_COPY
sends project data to server,
gets project id
CREATING_COPY...
\ No newline at end of file diff --git a/docs/project_state_example.png b/docs/project_state_example.png new file mode 100644 index 00000000000..4cda1a5cc36 Binary files /dev/null and b/docs/project_state_example.png differ diff --git a/package-lock.json b/package-lock.json index bba36b2bad4..f2488889ab9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14909 +1,30539 @@ { "name": "scratch-gui", - "version": "0.1.0", - "lockfileVersion": 1, + "version": "5.2.15", + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/cli": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.6.4.tgz", - "integrity": "sha512-tqrDyvPryBM6xjIyKKUwr3s8CzmmYidwgdswd7Uc/Cv0ogZcuS1TYQTLx/eWKP3UbJ6JxZAiYlBZabXm/rtRsQ==", - "dev": true, - "requires": { - "chokidar": "^2.1.8", - "commander": "^2.8.1", - "convert-source-map": "^1.1.0", - "fs-readdir-recursive": "^1.1.0", - "glob": "^7.0.0", - "lodash": "^4.17.13", - "mkdirp": "^0.5.1", - "output-file-sync": "^2.0.0", - "slash": "^2.0.0", - "source-map": "^0.5.0" - } - }, - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "@babel/core": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.4.tgz", - "integrity": "sha512-Rm0HGw101GY8FTzpWSyRbki/jzq+/PkNQJ+nSulrdY6gFGOsNseCqD6KHRYe2E+EdzuBdr2pxCp6s4Uk6eJ+XQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.4", - "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.4", - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.3", - "@babel/types": "^7.6.3", - "convert-source-map": "^1.1.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" + "packages": { + "": { + "name": "scratch-gui", + "version": "5.2.15", + "license": "AGPL-3.0-only", + "dependencies": { + "@microbit/microbit-universal-hex": "^0.2.2", + "arraybuffer-loader": "^1.0.6", + "autoprefixer": "^9.0.1", + "balance-text": "^3.3.1", + "base64-loader": "^1.0.0", + "bowser": "^1.9.4", + "cat-blocks": "npm:scratch-blocks@0.1.0-prerelease.20220318143026", + "classnames": "^2.2.6", + "computed-style-to-inline-style": "^3.0.0", + "cookie": "^0.6.0", + "copy-webpack-plugin": "^6.4.1", + "core-js": "^2.5.7", + "css-loader": "5.2.7", + "dapjs": "^2.3.0", + "es6-object-assign": "^1.1.0", + "fastestsmallesttextencoderdecoder": "^1.0.22", + "get-float-time-domain-data": "^0.1.0", + "get-user-media-promise": "^1.1.4", + "immutable": "^3.8.2", + "intl": "^1.2.5", + "js-base64": "^2.4.9", + "keymirror": "^0.1.1", + "lodash.bindall": "^4.4.0", + "lodash.debounce": "^4.0.8", + "lodash.defaultsdeep": "^4.6.1", + "lodash.omit": "^4.5.0", + "lodash.throttle": "^4.0.1", + "minilog": "^3.1.0", + "omggif": "^1.0.9", + "papaparse": "^5.3.0", + "postcss-import": "^12.0.0", + "postcss-loader": "4.3.0", + "postcss-simple-vars": "^5.0.1", + "prop-types": "^15.5.10", + "query-string": "^5.1.1", + "raw-loader": "^4.0.0", + "react-contextmenu": "^2.9.4", + "react-draggable": "^3.0.5", + "react-ga": "^2.5.3", + "react-intl": "^2.9.0", + "react-modal": "^3.9.1", + "react-popover": "^0.5.10", + "react-redux": "^5.0.7", + "react-responsive": "^5.0.0", + "react-style-proptype": "^3.2.2", + "react-tabs": "^2.3.0", + "react-tooltip": "^4.5.1", + "react-virtualized": "^9.20.1", + "redux": "^3.7.2", + "redux-throttle": "^0.1.1", + "scratch-audio": "^2.0.0", + "scratch-blocks": "^1.1.6", + "scratch-l10n": "^5.0.0", + "scratch-paint": "^3.0.0", + "scratch-render": "^2.0.0", + "scratch-render-fonts": "^1.0.2", + "scratch-storage": "^4.0.0", + "scratch-svg-renderer": "^3.0.0", + "scratch-vm": "^5.0.0", + "startaudiocontext": "^1.2.1", + "style-loader": "4.0.0", + "to-style": "^1.3.3", + "wav-encoder": "^1.3.0", + "xhr": "^2.5.0" }, + "devDependencies": { + "@babel/cli": "7.28.3", + "@babel/core": "7.28.5", + "@babel/eslint-parser": "7.28.5", + "@babel/plugin-proposal-object-rest-spread": "7.20.7", + "@babel/plugin-syntax-dynamic-import": "7.8.3", + "@babel/plugin-transform-async-to-generator": "7.27.1", + "@babel/preset-env": "7.28.5", + "@babel/preset-react": "7.28.5", + "@commitlint/cli": "17.8.1", + "@commitlint/config-conventional": "17.8.1", + "babel-core": "7.0.0-bridge.0", + "babel-loader": "9.2.1", + "cheerio": "1.0.0-rc.3", + "enzyme": "3.11.0", + "enzyme-adapter-react-16": "1.15.8", + "eslint": "8.57.1", + "eslint-config-scratch": "9.0.9", + "eslint-import-resolver-webpack": "0.11.1", + "eslint-plugin-import": "2.32.0", + "eslint-plugin-jest": "22.21.0", + "eslint-plugin-react": "7.37.5", + "file-loader": "6.2.0", + "gh-pages": "3.2.3", + "html-webpack-plugin": "5.6.4", + "husky": "8.0.3", + "jest": "21.2.1", + "jest-junit": "7.0.0", + "raf": "3.4.1", + "react-test-renderer": "16.14.0", + "redux-mock-store": "1.5.5", + "rimraf": "2.7.1", + "scratch-semantic-release-config": "3.0.0", + "scratch-webpack-configuration": "3.1.0", + "selenium-webdriver": "3.6.0", + "semantic-release": "19.0.5", + "stream-browserify": "3.0.0", + "url-loader": "4.1.1", + "web-audio-test-api": "0.5.2", + "webpack": "5.102.1", + "webpack-cli": "5.1.4", + "webpack-dev-server": "5.2.2", + "yauzl": "2.10.0" + }, + "peerDependencies": { + "react": "^16.0.0", + "react-dom": "^16.0.0" + } + }, + "node_modules/@acemir/cssom": { + "version": "0.9.23", + "resolved": "https://registry.npmjs.org/@acemir/cssom/-/cssom-0.9.23.tgz", + "integrity": "sha512-2kJ1HxBKzPLbmhZpxBiTZggjtgCwKg1ma5RHShxvd6zgqhDEdEkzpiwe7jLkI2p2BrZvFCXIihdoMkl1H39VnA==", + "license": "MIT" + }, + "node_modules/@asamuzakjp/css-color": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.0.5.tgz", + "integrity": "sha512-lMrXidNhPGsDjytDy11Vwlb6OIGrT3CmLg3VWNFyWkLWtijKl7xjvForlh8vuj0SHGjgl4qZEQzUmYTeQA2JFQ==", + "license": "MIT", "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "@csstools/css-calc": "^2.1.4", + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "lru-cache": "^11.2.1" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/dom-selector": { + "version": "6.7.4", + "resolved": "https://registry.npmjs.org/@asamuzakjp/dom-selector/-/dom-selector-6.7.4.tgz", + "integrity": "sha512-buQDjkm+wDPXd6c13534URWZqbz0RP5PAhXZ+LIoa5LgwInT9HVJvGIJivg75vi8I13CxDGdTnz+aY5YUJlIAA==", + "license": "MIT", + "dependencies": { + "@asamuzakjp/nwsapi": "^2.3.9", + "bidi-js": "^1.0.3", + "css-tree": "^3.1.0", + "is-potential-custom-element-name": "^1.0.1", + "lru-cache": "^11.2.2" } }, - "@babel/generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.4.tgz", - "integrity": "sha512-jsBuXkFoZxk0yWLyGI9llT9oiQ2FeTASmRFE32U+aaDTfoE92t78eroO7PTpU/OrYq38hlcDM6vbfLDaOLy+7w==", - "dev": true, - "requires": { - "@babel/types": "^7.6.3", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" + "node_modules/@asamuzakjp/dom-selector/node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/@asamuzakjp/dom-selector/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@asamuzakjp/dom-selector/node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "license": "CC0-1.0" + }, + "node_modules/@asamuzakjp/nwsapi": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/@asamuzakjp/nwsapi/-/nwsapi-2.3.9.tgz", + "integrity": "sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==", + "license": "MIT" + }, + "node_modules/@babel/cli": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.28.3.tgz", + "integrity": "sha512-n1RU5vuCX0CsaqaXm9I0KUCNKNQMy5epmzl/xdSSm70bSqhg9GWhgeosypyQLc0bK24+Xpk1WGzZlI9pJtkZdg==", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.28", + "commander": "^6.2.0", + "convert-source-map": "^2.0.0", + "fs-readdir-recursive": "^1.1.0", + "glob": "^7.2.0", + "make-dir": "^2.1.0", + "slash": "^2.0.0" + }, + "bin": { + "babel": "bin/babel.js", + "babel-external-helpers": "bin/babel-external-helpers.js" + }, + "engines": { + "node": ">=6.9.0" + }, + "optionalDependencies": { + "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents.3", + "chokidar": "^3.6.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", - "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", - "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.1.0", - "@babel/types": "^7.0.0" + "node_modules/@babel/compat-data": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-react-jsx": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", - "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0", - "esutils": "^2.0.0" + "node_modules/@babel/core": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/helper-call-delegate": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", - "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "node_modules/@babel/eslint-parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.5.tgz", + "integrity": "sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.4.4", - "@babel/traverse": "^7.4.4", - "@babel/types": "^7.4.4" + "license": "MIT", + "peer": true, + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, - "@babel/helper-define-map": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", - "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/types": "^7.5.5", - "lodash": "^4.17.13" + "node_modules/@babel/generator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-explode-assignable-expression": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", - "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", - "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", "dev": true, - "requires": { - "@babel/types": "^7.4.4" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", - "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", "dev": true, - "requires": { - "@babel/types": "^7.5.5" + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "@babel/helper-module-imports": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", - "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", - "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/template": "^7.4.4", - "@babel/types": "^7.5.5", - "lodash": "^4.17.13" + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", - "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", - "dev": true + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "@babel/helper-regex": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", - "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "dev": true, - "requires": { - "lodash": "^4.17.13" + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", - "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-wrap-function": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.0.0" + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-replace-supers": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", - "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.5.5", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/traverse": "^7.5.5", - "@babel/types": "^7.5.5" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-simple-access": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", - "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "dev": true, - "requires": { - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, - "requires": { - "@babel/types": "^7.4.4" + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-wrap-function": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", - "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/template": "^7.1.0", - "@babel/traverse": "^7.1.0", - "@babel/types": "^7.2.0" + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/helpers": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", - "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", - "dev": true, - "requires": { - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0" + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", - "dev": true, - "requires": { - "chalk": "^2.0.0", - "esutils": "^2.0.2", - "js-tokens": "^4.0.0" + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/parser": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.4.tgz", - "integrity": "sha512-D8RHPW5qd0Vbyo3qb+YjO5nvUVRTXFLQ/FsDxJU2Nqz4uB5EnUN0ZQSEYpvTIbRuttig1XbHWU5oMeQwQSAA+A==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", - "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", + "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0", - "@babel/plugin-syntax-async-generators": "^7.2.0" + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.3", + "@babel/types": "^7.28.2" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", - "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0" + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-proposal-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", - "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-json-strings": "^7.2.0" + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz", - "integrity": "sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.6.2.tgz", - "integrity": "sha512-NxHETdmpeSCtiatMRYWVJo7266rrvAC3DTeG5exQBIH/fMIUK7ejDNznBbn3HQl/o9peymRRg7Yqkx6PdUXmMw==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-syntax-async-generators": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", - "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", - "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", + "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-syntax-json-strings": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", - "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-jsx": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", - "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", - "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", - "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", - "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-remap-async-to-generator": "^7.1.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", - "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz", - "integrity": "sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "lodash": "^4.17.13" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-classes": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", - "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-define-map": "^7.5.5", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-optimise-call-expression": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5", - "@babel/helper-split-export-declaration": "^7.4.4", - "globals": "^11.1.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", - "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", + "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz", - "integrity": "sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.6.2.tgz", - "integrity": "sha512-KGKT9aqKV+9YMZSkowzYoYEiHqgaDhGmPNZlZxX6UeHC4z30nC1J9IrZuGqbYFB1jaIGdv91ujpze0exiVK8bA==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", - "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", - "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", - "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", + "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "@babel/plugin-transform-function-name": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", - "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "dev": true, - "requires": { - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", - "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", - "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", - "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.6.0.tgz", - "integrity": "sha512-Ma93Ix95PNSEngqomy5LSBMAQvYKVe3dy+JlVJSHEXZR5ASL9lQBedMiCyVtmTLraIDVRE3ZjTZvmXXD2Ozw3g==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-simple-access": "^7.1.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", - "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.4.4", - "@babel/helper-plugin-utils": "^7.0.0", - "babel-plugin-dynamic-import-node": "^2.3.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", - "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.1.0", - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.6.3.tgz", - "integrity": "sha512-jTkk7/uE6H2s5w6VlMHeWuH+Pcy2lmdwFoeWCVnvIrDUnB5gQqTVI8WfmEAhF2CDEarGrknZcmSFg1+bkfCoSw==", + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", + "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", "dev": true, - "requires": { - "regexpu-core": "^4.6.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-new-target": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", - "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", + "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", - "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-replace-supers": "^7.5.5" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", - "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "dev": true, - "requires": { - "@babel/helper-call-delegate": "^7.4.4", - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", - "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-display-name": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", - "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-jsx": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", - "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "dev": true, - "requires": { - "@babel/helper-builder-react-jsx": "^7.3.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", - "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", + "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz", - "integrity": "sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.2.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.4.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", - "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "dev": true, - "requires": { - "regenerator-transform": "^0.14.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", - "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", - "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz", - "integrity": "sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", - "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", - "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", - "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.6.2.tgz", - "integrity": "sha512-orZI6cWlR3nk2YmYdb0gImrgCUwb5cBUwjf6Ks6dvNVvXERkwtJWOQaEOjPiu0Gu1Tq6Yq/hruCZZOOi9F34Dw==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/helper-regex": "^7.4.4", - "regexpu-core": "^4.6.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-env": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.6.3.tgz", - "integrity": "sha512-CWQkn7EVnwzlOdR5NOm2+pfgSNEZmvGjOhlCHBDq0J8/EStr+G+FvPEiz9B56dR6MoiUFjXhfE4hjLoAKKJtIQ==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.2.0", - "@babel/plugin-proposal-dynamic-import": "^7.5.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-object-rest-spread": "^7.6.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.6.2", - "@babel/plugin-syntax-async-generators": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-json-strings": "^7.2.0", - "@babel/plugin-syntax-object-rest-spread": "^7.2.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", - "@babel/plugin-transform-arrow-functions": "^7.2.0", - "@babel/plugin-transform-async-to-generator": "^7.5.0", - "@babel/plugin-transform-block-scoped-functions": "^7.2.0", - "@babel/plugin-transform-block-scoping": "^7.6.3", - "@babel/plugin-transform-classes": "^7.5.5", - "@babel/plugin-transform-computed-properties": "^7.2.0", - "@babel/plugin-transform-destructuring": "^7.6.0", - "@babel/plugin-transform-dotall-regex": "^7.6.2", - "@babel/plugin-transform-duplicate-keys": "^7.5.0", - "@babel/plugin-transform-exponentiation-operator": "^7.2.0", - "@babel/plugin-transform-for-of": "^7.4.4", - "@babel/plugin-transform-function-name": "^7.4.4", - "@babel/plugin-transform-literals": "^7.2.0", - "@babel/plugin-transform-member-expression-literals": "^7.2.0", - "@babel/plugin-transform-modules-amd": "^7.5.0", - "@babel/plugin-transform-modules-commonjs": "^7.6.0", - "@babel/plugin-transform-modules-systemjs": "^7.5.0", - "@babel/plugin-transform-modules-umd": "^7.2.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.6.3", - "@babel/plugin-transform-new-target": "^7.4.4", - "@babel/plugin-transform-object-super": "^7.5.5", - "@babel/plugin-transform-parameters": "^7.4.4", - "@babel/plugin-transform-property-literals": "^7.2.0", - "@babel/plugin-transform-regenerator": "^7.4.5", - "@babel/plugin-transform-reserved-words": "^7.2.0", - "@babel/plugin-transform-shorthand-properties": "^7.2.0", - "@babel/plugin-transform-spread": "^7.6.2", - "@babel/plugin-transform-sticky-regex": "^7.2.0", - "@babel/plugin-transform-template-literals": "^7.4.4", - "@babel/plugin-transform-typeof-symbol": "^7.2.0", - "@babel/plugin-transform-unicode-regex": "^7.6.2", - "@babel/types": "^7.6.3", - "browserslist": "^4.6.0", - "core-js-compat": "^3.1.1", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.5.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-react": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.6.3.tgz", - "integrity": "sha512-07yQhmkZmRAfwREYIQgW0HEwMY9GBJVuPY4Q12UC72AbfaawuupVWa8zQs2tlL+yun45Nv/1KreII/0PLfEsgA==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", + "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.0", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/runtime": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz", - "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "dev": true, - "requires": { - "regenerator-runtime": "^0.13.2" - }, + "license": "MIT", "dependencies": { - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/template": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", - "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.0" - } - }, - "@babel/traverse": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.3.tgz", - "integrity": "sha512-unn7P4LGsijIxaAJo/wpoU11zN+2IaClkQAxcJWBNCMS6cmVh802IyLHNkAjQ0iYnRS3nnxk5O3fuXW28IMxTw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.3", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.3", - "@babel/types": "^7.6.3", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", + "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/types": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.3.tgz", - "integrity": "sha512-CqbcpTxMcpuQTMhjI37ZHVgjBkysg5icREQIEZ0eG1yCNwg3oy+5AaLiOKmjsCj6nqOsa6Hf0ObjRVwokb7srA==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", "dev": true, - "requires": { - "esutils": "^2.0.2", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@jest/types": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", - "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^1.1.1", - "@types/yargs": "^13.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@scratch/paper": { - "version": "0.11.20190729152410", - "resolved": "https://registry.npmjs.org/@scratch/paper/-/paper-0.11.20190729152410.tgz", - "integrity": "sha512-8DvLPFbipP7O8fii6xItaA041fdW4pdr63m34xlSs15sYP5fX9yiZiO3G44qk5eBPbFNQTG7uxMd5Jo+cVS5Ow==", - "dev": true + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@types/babel__core": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz", - "integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/babel__generator": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", - "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/babel__template": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", - "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/babel__traverse": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", - "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", "dev": true, - "requires": { - "@babel/types": "^7.3.0" + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", - "dev": true + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", + "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", "dev": true, - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/istanbul-lib-coverage": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==", - "dev": true + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } }, - "@types/istanbul-lib-report": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", - "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/istanbul-reports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", - "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*", - "@types/istanbul-lib-report": "*" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/json-schema": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz", - "integrity": "sha512-Il2DtDVRGDcqjDtE+rF8iqg1CArehSK84HZJCT7AMITlyXRBpuPhqGLDQMowraqqu1coEaimg4ZOqggt6L6L+A==", - "dev": true + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@types/node": { - "version": "12.7.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz", - "integrity": "sha512-KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==", - "dev": true + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@types/yargs": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz", - "integrity": "sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "dev": true, - "requires": { - "@types/yargs-parser": "*" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@types/yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", - "dev": true + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@typescript-eslint/experimental-utils": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", - "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "1.13.0", - "eslint-scope": "^4.0.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@typescript-eslint/typescript-estree": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", - "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "dev": true, - "requires": { - "lodash.unescape": "4.0.1", - "semver": "5.5.0" + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "dev": true, + "license": "MIT", "dependencies": { - "semver": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", - "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@vernier/godirect": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.5.0.tgz", - "integrity": "sha512-vMS0fQubI3WSSLg1Ry3aey/qWCl9XoCsFzgwOWYkeJs45YxjPel+42pLh5pO7uP6oF47sjZUKx8kGOoTiiiirA==", - "dev": true + "node_modules/@babel/preset-env": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", + "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/compat-data": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.0", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.5", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.28.3", + "@babel/plugin-transform-classes": "^7.28.4", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.0", + "@babel/plugin-transform-exponentiation-operator": "^7.28.5", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.28.4", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.4", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", + "node_modules/@commitlint/cli": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz", + "integrity": "sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" + "license": "MIT", + "dependencies": { + "@commitlint/format": "^17.8.1", + "@commitlint/lint": "^17.8.1", + "@commitlint/load": "^17.8.1", + "@commitlint/read": "^17.8.1", + "@commitlint/types": "^17.8.1", + "execa": "^5.0.0", + "lodash.isfunction": "^3.0.9", + "resolve-from": "5.0.0", + "resolve-global": "1.0.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v14" } }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", + "node_modules/@commitlint/config-conventional": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz", + "integrity": "sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg==", "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" + "license": "MIT", + "dependencies": { + "conventional-changelog-conventionalcommits": "^6.1.0" + }, + "engines": { + "node": ">=v14" } }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", + "node_modules/@commitlint/config-validator": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz", + "integrity": "sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA==", "dev": true, - "requires": { - "@xtuc/long": "4.2.2" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v14" } }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", + "node_modules/@commitlint/ensure": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz", + "integrity": "sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v14" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", + "node_modules/@commitlint/execute-rule": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz", + "integrity": "sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "license": "MIT", + "engines": { + "node": ">=v14" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", + "node_modules/@commitlint/format": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz", + "integrity": "sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", + "node_modules/@commitlint/is-ignored": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz", + "integrity": "sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "semver": "7.5.4" + }, + "engines": { + "node": ">=v14" } }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" + "node_modules/@commitlint/is-ignored/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", + "node_modules/@commitlint/is-ignored/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abab": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", - "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", - "dev": true + "node_modules/@commitlint/is-ignored/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "node_modules/@commitlint/lint": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz", + "integrity": "sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA==", "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^17.8.1", + "@commitlint/parse": "^17.8.1", + "@commitlint/rules": "^17.8.1", + "@commitlint/types": "^17.8.1" + }, + "engines": { + "node": ">=v14" } }, - "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", - "dev": true - }, - "acorn-globals": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", - "integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=", + "node_modules/@commitlint/load": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz", + "integrity": "sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA==", "dev": true, - "requires": { - "acorn": "^4.0.4" - }, + "license": "MIT", "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "@commitlint/config-validator": "^17.8.1", + "@commitlint/execute-rule": "^17.8.1", + "@commitlint/resolve-extends": "^17.8.1", + "@commitlint/types": "^17.8.1", + "@types/node": "20.5.1", + "chalk": "^4.1.0", + "cosmiconfig": "^8.0.0", + "cosmiconfig-typescript-loader": "^4.0.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0", + "resolve-from": "^5.0.0", + "ts-node": "^10.8.1", + "typescript": "^4.6.4 || ^5.2.2" + }, + "engines": { + "node": ">=v14" } }, - "acorn-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz", - "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "airbnb-prop-types": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz", - "integrity": "sha512-jUh2/hfKsRjNFC4XONQrxo/n/3GG4Tn6Hl0WlFQN5PY9OMC9loSCoAYKnZsWaP8wEfd5xcrPloK0Zg6iS1xwVA==", + "node_modules/@commitlint/message": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz", + "integrity": "sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA==", "dev": true, - "requires": { - "array.prototype.find": "^2.1.0", - "function.prototype.name": "^1.1.1", - "has": "^1.0.3", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object.assign": "^4.1.0", - "object.entries": "^1.1.0", - "prop-types": "^15.7.2", - "prop-types-exact": "^1.2.0", - "react-is": "^16.9.0" + "license": "MIT", + "engines": { + "node": ">=v14" } }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "node_modules/@commitlint/parse": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz", + "integrity": "sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw==", "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "license": "MIT", + "dependencies": { + "@commitlint/types": "^17.8.1", + "conventional-changelog-angular": "^6.0.0", + "conventional-commits-parser": "^4.0.0" + }, + "engines": { + "node": ">=v14" } }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true + "node_modules/@commitlint/read": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz", + "integrity": "sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^17.8.1", + "@commitlint/types": "^17.8.1", + "fs-extra": "^11.0.0", + "git-raw-commits": "^2.0.11", + "minimist": "^1.2.6" + }, + "engines": { + "node": ">=v14" + } }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true + "node_modules/@commitlint/resolve-extends": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz", + "integrity": "sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^17.8.1", + "@commitlint/types": "^17.8.1", + "import-fresh": "^3.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0", + "resolve-global": "^1.0.0" + }, + "engines": { + "node": ">=v14" + } }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "node_modules/@commitlint/rules": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz", + "integrity": "sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^17.8.1", + "@commitlint/message": "^17.8.1", + "@commitlint/to-lines": "^17.8.1", + "@commitlint/types": "^17.8.1", + "execa": "^5.0.0" + }, + "engines": { + "node": ">=v14" + } }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@commitlint/to-lines": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz", + "integrity": "sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA==", "dev": true, - "requires": { - "color-convert": "^1.9.0" + "license": "MIT", + "engines": { + "node": ">=v14" } }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "node_modules/@commitlint/top-level": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz", + "integrity": "sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA==", "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, + "license": "MIT", "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "find-up": "^5.0.0" + }, + "engines": { + "node": ">=v14" } }, - "append-transform": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", - "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "node_modules/@commitlint/types": { + "version": "17.8.1", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz", + "integrity": "sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ==", "dev": true, - "requires": { - "default-require-extensions": "^1.0.0" + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=v14" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, - "requires": { - "sprintf-js": "~1.0.2" + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } }, - "arr-union": { + "node_modules/@csstools/css-color-parser": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", - "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", - "dev": true - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", - "dev": true + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } }, - "array-find": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", - "integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=", - "dev": true + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.15.tgz", + "integrity": "sha512-q0p6zkVq2lJnmzZVPR33doA51G7YOja+FBvRdp5ISIthL0MtFCgYHHhR563z9WFGxcOn0WfjSkPDJ5Qig3H3Sw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } }, - "array-includes": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz", - "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.7.0" + "license": "MIT", + "engines": { + "node": ">=10.0.0" } }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", "dev": true, - "requires": { - "array-uniq": "^1.0.1" + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "array.prototype.find": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.1.0.tgz", - "integrity": "sha512-Wn41+K1yuO5p7wRZDl7890c3xvv5UBrfVXTVIe28rSQb6LS0fZMDrQB6PAcxQFRFy6vJTLDc3A2+3CjQdzVKRg==", + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.13.0" + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "array.prototype.flat": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.1.tgz", - "integrity": "sha512-rVqIs330nLJvfC7JqYvEWwqVr5QjYF1ib02i3YJtR/fICO6527Tjpc/e4Mvmxh3GIePPreRXMdaGyC99YphWEw==", + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.10.0", - "function-bind": "^1.1.1" + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "arraybuffer-loader": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer-loader/-/arraybuffer-loader-1.0.7.tgz", - "integrity": "sha512-8FPjFP26OF723Oiaj5E208WW2tAgE0noCsrtQZ20TwdHt6qs5iuAaKqX5WY/C3wYdF/2cRUiuIXj98qy/2NB7g==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "requires": { - "loader-utils": "^1.1.0" + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", "dev": true, - "requires": { - "safer-buffer": "~2.1.0" + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "license": "MIT" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" }, - "async": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.2.tgz", - "integrity": "sha1-YSpKtF70KnDN6Aa62G7m2wR+g4U=", + "node_modules/@jest/types": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", + "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", "dev": true, - "requires": { - "lodash": "^4.14.0" + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" + }, + "engines": { + "node": ">= 6" } }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } }, - "audio-context": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/audio-context/-/audio-context-1.0.1.tgz", - "integrity": "sha1-zsTbis5u9KrL8Q7vCXekVxRo1Ks=", - "dev": true, - "requires": { - "global": "^4.3.1" + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "autoprefixer": { - "version": "9.6.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.4.tgz", - "integrity": "sha512-Koz2cJU9dKOxG8P1f8uVaBntOv9lP4yz9ffWvWaicv9gHBPhpQB22nGijwd8gqW9CNT+UdkbQOQNLVI8jN1ZfQ==", + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", "dev": true, - "requires": { - "browserslist": "^4.7.0", - "caniuse-lite": "^1.0.30000998", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.18", - "postcss-value-parser": "^4.0.2" + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "dev": true - }, - "babel-eslint": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", - "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.0.0", - "@babel/traverse": "^7.0.0", - "@babel/types": "^7.0.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "babel-generator": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", - "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", "dev": true, - "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.17.4", - "source-map": "^0.5.7", - "trim-right": "^1.0.1" - }, + "license": "Apache-2.0", "dependencies": { - "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", - "dev": true - } + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "babel-jest": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", - "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", "dev": true, - "requires": { - "babel-plugin-istanbul": "^4.0.0", - "babel-preset-jest": "^21.2.0" + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", - "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" - } + "license": "MIT" }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "node_modules/@microbit/microbit-universal-hex": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@microbit/microbit-universal-hex/-/microbit-universal-hex-0.2.2.tgz", + "integrity": "sha512-qyFt8ATgxAyPkNz9Yado4HXEeCctwP/8L1/v2hFLeVUqw/HFqVqV4piJbqRMmyOefMcQ9OyVPhLXjtbKn9063Q==", + "license": "MIT", + "engines": { + "node": ">=8.5", + "npm": ">=6.0", + "yarn": "^1.0" + }, + "peerDependencies": { + "tslib": ">=1.11.1" } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "node_modules/@nicolo-ribaudo/chokidar-2": { + "version": "2.1.8-no-fsevents.3", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", + "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", + "license": "MIT", + "optional": true + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", "dev": true, - "requires": { - "object.assign": "^4.1.0" + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" } }, - "babel-plugin-istanbul": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", - "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", - "dev": true, - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.13.0", - "find-up": "^2.1.0", - "istanbul-lib-instrument": "^1.10.1", - "test-exclude": "^4.2.1" + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "babel-plugin-jest-hoist": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", - "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", - "dev": true + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } }, - "babel-plugin-react-intl": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.5.1.tgz", - "integrity": "sha512-1jlEJCSmLaJM4tjIKpu64UZ833COCHmwR77bFJDOye+zlwf80uR1b8p41l4tClx1QsrfI+qV6w/5AiPYQgaMUQ==", - "dev": true, - "requires": { - "@babel/core": "^7.4.5", - "@babel/helper-plugin-utils": "^7.0.0", - "@types/babel__core": "^7.1.2", - "fs-extra": "^8.0.1", - "intl-messageformat-parser": "^1.8.1" + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", "dependencies": { - "intl-messageformat-parser": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", - "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", - "dev": true - } + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" } }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "http://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", - "dev": true + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "babel-preset-jest": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", - "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", + "node_modules/@octokit/auth-token": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", + "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^21.2.0", - "babel-plugin-syntax-object-rest-spread": "^6.13.0" + "license": "MIT", + "engines": { + "node": ">= 14" } }, - "babel-register": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", - "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "node_modules/@octokit/core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", + "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", "dev": true, - "requires": { - "babel-core": "^6.26.0", - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.15" - }, + "license": "MIT", + "peer": true, "dependencies": { - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "node_modules/@octokit/endpoint": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", + "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "node_modules/@octokit/graphql": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", + "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "license": "MIT", + "dependencies": { + "@octokit/request": "^6.0.0", + "@octokit/types": "^9.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "node_modules/@octokit/openapi-types": { + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", + "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==", "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" + "license": "MIT" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", + "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/tsconfig": "^1.0.2", + "@octokit/types": "^9.2.3" }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=4" + } + }, + "node_modules/@octokit/plugin-retry": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-4.1.6.tgz", + "integrity": "sha512-obkYzIgEC75r8+9Pnfiiqy3y/x1bc3QLE5B7qvv9wi9Kj0R5tGQFC6QMBg1154WQ9lAVypuQDGyp3hNpp15gQQ==", + "dev": true, + "license": "MIT", "dependencies": { - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - } + "@octokit/types": "^9.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "@octokit/core": ">=3" } }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "node_modules/@octokit/plugin-throttling": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@octokit/plugin-throttling/-/plugin-throttling-5.2.3.tgz", + "integrity": "sha512-C9CFg9mrf6cugneKiaI841iG8DOv6P5XXkjmiNNut+swePxQ7RWEdAZRp5rJoE1hjsIqiYcKa/ZkOQ+ujPI39Q==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "bottleneck": "^2.15.3" + }, + "engines": { + "node": ">= 14" }, + "peerDependencies": { + "@octokit/core": "^4.0.0" + } + }, + "node_modules/@octokit/request": { + "version": "6.2.8", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", + "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "dev": true, + "license": "MIT", "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^9.0.0", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true + "node_modules/@octokit/request-error": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", + "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/types": "^9.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" + } }, - "backo2": { + "node_modules/@octokit/tsconfig": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", + "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", + "dev": true, + "license": "MIT" }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "node_modules/@octokit/types": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", + "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, + "license": "MIT", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "@octokit/openapi-types": "^18.0.0" } }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", - "dev": true - }, - "base64-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz", - "integrity": "sha1-5TC62I6QbdKh+tCvLZ5oP6i9kqg=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "node_modules/@pnpm/config.env-replace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", + "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", "dev": true, - "requires": { - "tweetnacl": "^0.14.3" + "license": "MIT", + "engines": { + "node": ">=12.22.0" } }, - "better-assert": { + "node_modules/@pnpm/network.ca-file": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", + "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", "dev": true, - "requires": { - "callsite": "1.0.0" + "license": "MIT", + "dependencies": { + "graceful-fs": "4.2.10" + }, + "engines": { + "node": ">=12.22.0" } }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true + "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "license": "ISC" }, - "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "node_modules/@pnpm/npm-conf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", + "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "license": "MIT", + "dependencies": { + "@pnpm/config.env-replace": "^1.1.0", + "@pnpm/network.ca-file": "^1.0.1", + "config-chain": "^1.1.11" + }, + "engines": { + "node": ">=12" } }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "bluebird": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.0.tgz", - "integrity": "sha512-aBQ1FxIa7kSWCcmKHlcHFlT2jt6J/l4FzC7KcPELkOJOsPOb/bccdhmIrKDfXhwFrmc7vDoDrrepFvGqjyXGJg==", - "dev": true + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", - "dev": true + "node_modules/@scratch/paper": { + "version": "0.11.20221201200345", + "resolved": "https://registry.npmjs.org/@scratch/paper/-/paper-0.11.20221201200345.tgz", + "integrity": "sha512-I3BZNrHeaQJt2H6TD7HGsuBKJPDDF/BIDOaRvnN7Gj/QBRvpSaRK8JAmzcrRHZ+AqNtKrG50eOkS/acMjTw3rw==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "node_modules/@semantic-release/changelog": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-6.0.3.tgz", + "integrity": "sha512-dZuR5qByyfe3Y03TpmCvAxCyTnp7r5XwtHRf/8vD9EAn4ZWbavUX8adMtXYzE86EVh0gyLA7lm5yW4IV30XUag==", "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, + "license": "MIT", "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "fs-extra": "^11.0.0", + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "node_modules/@semantic-release/commit-analyzer": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz", + "integrity": "sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==", "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "import-from": "^4.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" } }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "bowser": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", - "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "node_modules/@semantic-release/commit-analyzer/node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "brfs": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", - "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "node_modules/@semantic-release/error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz", + "integrity": "sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==", "dev": true, - "requires": { - "quote-stream": "^1.0.1", - "resolve": "^1.1.5", - "static-module": "^2.2.0", - "through2": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=14.17" } }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", - "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "node_modules/@semantic-release/git": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-10.0.1.tgz", + "integrity": "sha512-eWrx5KguUcU2wUPaO6sfvZI0wPafUKAMNC18aXY4EnNcrZL86dEmpNVnC9uMpGZkmZJ9EfCVJBQx4pV4EMGT1w==", "dev": true, - "requires": { - "resolve": "1.1.7" - }, + "license": "MIT", "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "execa": "^5.0.0", + "lodash": "^4.17.4", + "micromatch": "^4.0.0", + "p-reduce": "^2.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0" } }, - "browser-stdout": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", - "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", - "dev": true + "node_modules/@semantic-release/github": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-8.1.0.tgz", + "integrity": "sha512-erR9E5rpdsz0dW1I7785JtndQuMWN/iDcemcptf67tBNOmBUN0b2YNOgcjYUnBpgRpZ5ozfBHrK7Bz+2ets/Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@octokit/core": "^4.2.1", + "@octokit/plugin-paginate-rest": "^6.1.2", + "@octokit/plugin-retry": "^4.1.3", + "@octokit/plugin-throttling": "^5.2.3", + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "debug": "^4.0.0", + "dir-glob": "^3.0.0", + "fs-extra": "^11.0.0", + "globby": "^11.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "issue-parser": "^6.0.0", + "lodash": "^4.17.4", + "mime": "^3.0.0", + "p-filter": "^2.0.0", + "url-join": "^4.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" + } }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "node_modules/@semantic-release/npm": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-9.0.2.tgz", + "integrity": "sha512-zgsynF6McdzxPnFet+a4iO9HpAlARXOM5adz7VGVCvj0ne8wtL2ZOQoDV2wZPDmdEotDIbVeJjafhelZjs9j6g==", "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "license": "MIT", + "dependencies": { + "@semantic-release/error": "^3.0.0", + "aggregate-error": "^3.0.0", + "execa": "^5.0.0", + "fs-extra": "^11.0.0", + "lodash": "^4.17.15", + "nerf-dart": "^1.0.0", + "normalize-url": "^6.0.0", + "npm": "^8.3.0", + "rc": "^1.2.8", + "read-pkg": "^5.0.0", + "registry-auth-token": "^5.0.0", + "semver": "^7.1.2", + "tempy": "^1.0.0" + }, + "engines": { + "node": ">=16 || ^14.17" + }, + "peerDependencies": { + "semantic-release": ">=19.0.0" } }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "node_modules/@semantic-release/npm/node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "node_modules/@semantic-release/npm/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "node_modules/@semantic-release/release-notes-generator": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-10.0.3.tgz", + "integrity": "sha512-k4x4VhIKneOWoBGHkx0qZogNjCldLPRiAjnIpMnlUh6PtaWXp/T+C9U7/TaNDDtgDa5HMbHl4WlREdxHio6/3w==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "license": "MIT", + "dependencies": { + "conventional-changelog-angular": "^5.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-filter": "^2.0.0", + "conventional-commits-parser": "^3.2.3", + "debug": "^4.0.0", + "get-stream": "^6.0.0", + "import-from": "^4.0.0", + "into-stream": "^6.0.0", + "lodash": "^4.17.4", + "read-pkg-up": "^7.0.0" + }, + "engines": { + "node": ">=14.17" + }, + "peerDependencies": { + "semantic-release": ">=18.0.0-beta.1" } }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", "dev": true, - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" } }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, - "requires": { - "pako": "~1.0.5" + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" } }, - "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", + "node_modules/@semantic-release/release-notes-generator/node_modules/into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000989", - "electron-to-chromium": "^1.3.247", - "node-releases": "^1.1.29" + "license": "MIT", + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "bser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz", - "integrity": "sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg==", + "node_modules/@semantic-release/release-notes-generator/node_modules/p-is-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", "dev": true, - "requires": { - "node-int64": "^0.4.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "dev": true + "node_modules/@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "node_modules/@transifex/api": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@transifex/api/-/api-7.1.4.tgz", + "integrity": "sha512-oRWw10V+YPFl1WJuORcQHcjtvqd70lFXxpmXQ/yUn3KE7cLtBMkFeC+2kULw3Rk17hD6EEO2HQLkvpR7NY/Zsw==", + "license": "Apache-2.0", + "dependencies": { + "core-js": "^3.35.0" + }, + "engines": { + "node": ">=16.0.0" } }, - "buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", - "dev": true + "node_modules/@transifex/api/node_modules/core-js": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", + "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true, + "license": "MIT" }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true, + "license": "MIT" }, - "buffer-xor": { + "node_modules/@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true, + "license": "MIT" }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true, + "license": "MIT" }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } }, - "cacache": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", - "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dev": true, - "requires": { - "bluebird": "^3.5.1", - "chownr": "^1.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "lru-cache": "^4.1.1", - "mississippi": "^2.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.2", - "ssri": "^5.2.4", - "unique-filename": "^1.1.0", - "y18n": "^4.0.0" + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" + "license": "MIT", + "dependencies": { + "@types/node": "*" } }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, - "requires": { - "callsites": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } + "@types/node": "*" } }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, - "requires": { - "caller-callsite": "^2.0.0" + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" } }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "^1" } }, - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "node_modules/@types/express-serve-static-core": { + "version": "4.19.7", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", + "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } }, - "caniuse-lite": { - "version": "1.0.30000999", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz", - "integrity": "sha512-1CUyKyecPeksKwXZvYw0tEoaMCo/RwBlXmEtN5vVnabvO0KPd9RQLcaAuR9/1F+KDMv6esmOFWlsXuzDk+8rxg==", - "dev": true + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "dev": true, + "license": "MIT" }, - "canvas-toBlob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", - "integrity": "sha1-m/MrKGu04SUhiyCO7MgyH9Az5sM=", - "dev": true + "node_modules/@types/http-errors": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "dev": true, + "license": "MIT" }, - "capture-exit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", - "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", + "node_modules/@types/http-proxy": { + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", "dev": true, - "requires": { - "rsvp": "^3.3.3" + "license": "MIT", + "dependencies": { + "@types/node": "*" } }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "license": "MIT" }, - "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" } }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "node_modules/@types/istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" } }, - "chownr": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.3.tgz", - "integrity": "sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw==", - "dev": true + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true, - "requires": { - "tslib": "^1.9.0" - } + "license": "MIT" }, - "chromedriver": { - "version": "78.0.1", - "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-78.0.1.tgz", - "integrity": "sha512-eOsyFk4xb9EECs1VMrDbxO713qN+Bu1XUE8K9AuePc3839TPdAegg72kpXSzkeNqRNZiHbnJUItIVCLFkDqceA==", + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true, - "requires": { - "del": "^4.1.1", - "extract-zip": "^1.6.7", - "mkdirp": "^0.5.1", - "request": "^2.88.0", - "tcp-port-used": "^1.0.1" - } + "license": "MIT" }, - "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", - "dev": true + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true, + "license": "MIT" }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "node_modules/@types/node": { + "version": "20.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz", + "integrity": "sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/node-forge": { + "version": "1.3.14", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.14.tgz", + "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "license": "MIT", + "dependencies": { + "@types/node": "*" } }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, + "node_modules/@types/node-hid": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/node-hid/-/node-hid-1.3.4.tgz", + "integrity": "sha512-0ootpsYetN9vjqkDSwm/cA4fk/9yGM/PO0X8SLPE/BzXlUaBelImMWMymtF9QEoEzxY0pnhcROIJM0CNSUqO8w==", + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "@types/node": "*" } }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", - "dev": true + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true, + "license": "MIT" }, - "clean-css": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", - "integrity": "sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==", + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", "dev": true, - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } + "license": "MIT" }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } + "license": "MIT" }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", - "dev": true + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true, + "license": "MIT" }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "node_modules/@types/send": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "@types/node": "*" } }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" + "license": "MIT", + "dependencies": { + "@types/express": "*" } }, - "collections": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/collections/-/collections-0.2.2.tgz", - "integrity": "sha1-HyMCay7zb5J+7MkB6ZxfDUj6M04=", + "node_modules/@types/serve-static": { + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", "dev": true, - "requires": { - "weak-map": "1.0.0" + "license": "MIT", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "<1" } }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", "dev": true, - "requires": { - "color-name": "1.1.3" + "license": "MIT", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" } }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, - "requires": { - "delayed-stream": "~1.0.0" + "license": "MIT", + "dependencies": { + "@types/node": "*" } }, - "commander": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.1.tgz", - "integrity": "sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "node_modules/@types/usb": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/usb/-/usb-1.5.4.tgz", + "integrity": "sha512-NOUza/8yuswu6RoECQyPHEjA34qpDaeONQ72fm+bCnnN2DJjDePAY+NsmV17H88oIlq4JlJ2mD5Kh5d6R2MwTQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true + "node_modules/@types/w3c-web-usb": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@types/w3c-web-usb/-/w3c-web-usb-1.0.13.tgz", + "integrity": "sha512-N2nSl3Xsx8mRHZBvMSdNGtzMyeleTvtlEw+ujujgXalPqOjIA6UtrqcB6OzyUjkTbDm3J7P1RNK1lgoO7jxtsw==", + "license": "MIT" }, - "compressible": { - "version": "2.0.17", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz", - "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==", + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dev": true, - "requires": { - "mime-db": ">= 1.40.0 < 2" + "license": "MIT", + "dependencies": { + "@types/node": "*" } }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "node_modules/@types/yargs": { + "version": "13.0.12", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.12.tgz", + "integrity": "sha512-qCxJE1qgz2y0hA4pIxjBR+PelCH0U5CK1XJXFwCNqfmliatKp47UCXXE9Dyk1OXBDLvsCF57TqQEJaeLfDYEOQ==", "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" } }, - "computed-style-to-inline-style": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/computed-style-to-inline-style/-/computed-style-to-inline-style-3.0.0.tgz", - "integrity": "sha1-klECRGPFVcfhdo13oZ66m49Bivw=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true, + "license": "MIT" }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "node_modules/@typescript-eslint/experimental-utils": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz", + "integrity": "sha512-zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==", "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/typescript-estree": "1.13.0", + "eslint-scope": "^4.0.0" + }, + "engines": { + "node": "^6.14.0 || ^8.10.0 || >=9.10.0" + }, + "peerDependencies": { + "eslint": "*" } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, - "requires": { - "date-now": "^0.1.4" + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "node_modules/@typescript-eslint/experimental-utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "requires": { - "safe-buffer": "5.1.2" + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" } }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "content-type-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", - "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", - "dev": true + "node_modules/@typescript-eslint/typescript-estree": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz", + "integrity": "sha512-b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "lodash.unescape": "4.0.1", + "semver": "5.5.0" + }, + "engines": { + "node": ">=6.14.0" + } }, - "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true + "node_modules/@vernier/godirect": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@vernier/godirect/-/godirect-1.8.3.tgz", + "integrity": "sha512-poS0LZ3jAjH36gIAI0aNBBdsGGbmt11VFbLO+eGDJ/JDSPtMu1iUStvOi0UM/ZH6Jyh34SjVd8Cnxu/Wmcb8iQ==", + "license": "BSD-3-Clause" }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "node_modules/@webassemblyjs/ast": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" }, - "copy-webpack-plugin": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", - "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", - "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "globby": "^7.1.1", - "is-glob": "^4.0.0", - "loader-utils": "^1.1.0", - "minimatch": "^3.0.4", - "p-limit": "^1.0.0", - "serialize-javascript": "^1.4.0" - }, - "dependencies": { - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } - } + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" }, - "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==", - "dev": true + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" }, - "core-js-compat": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz", - "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==", - "dev": true, - "requires": { - "browserslist": "^4.6.6", - "semver": "^6.3.0" - }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", + "@xtuc/long": "4.2.2" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "dependencies": { - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" + "node_modules/@webassemblyjs/ieee754": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" } }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" + "node_modules/@webassemblyjs/leb128": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" } }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "node_modules/@webassemblyjs/utf8": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, - "css-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash": "^4.17.11", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, - "css-mediaquery": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", - "integrity": "sha1-aiw3NEkoYYYxxUvTPO3TAdoYvqA=", - "dev": true + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.14.1", + "@xtuc/long": "4.2.2" + } }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "node_modules/@webpack-cli/configtest": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, - "css-selector-tokenizer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", - "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", + "node_modules/@webpack-cli/info": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, - "requires": { - "cssesc": "^0.1.0", - "fastparse": "^1.1.1", - "regexpu-core": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=14.15.0" }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - } + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, - "css-vendor": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", - "integrity": "sha1-ZCHP0wNM5mT+dnOXL9ARn8KJQfo=", + "node_modules/@webpack-cli/serve": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, - "requires": { - "is-in-browser": "^1.0.2" + "license": "MIT", + "engines": { + "node": ">=14.15.0" + }, + "peerDependencies": { + "webpack": "5.x.x", + "webpack-cli": "5.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } } }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", - "dev": true + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" }, - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "node_modules/abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha512-I+Wi+qiE2kUXyrRhNsWv6XsjUTBJjSoVSctKNBfLG5zG/Xe7Rjbxf13+vqYHNTwHaFU+FtSlVxOCTiMEVtPv0A==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "dev": true, + "license": "ISC" }, - "cssstyle": { - "version": "0.2.37", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", - "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, - "requires": { - "cssom": "0.3.x" + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "node_modules/acorn-globals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz", + "integrity": "sha512-uWttZCk96+7itPxK8xCzY86PnxKTMrReKDqrHzv42VQY0K30PUO8WY13WMOuI+cOdX4EIdzdvQ8k6jkuGRFMYw==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" + "license": "MIT", + "dependencies": { + "acorn": "^4.0.4" } }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/acorn-globals/node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", "dev": true, - "requires": { - "ms": "2.0.0" + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-html": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz", - "integrity": "sha1-fQqIfORCgOYJeKcH67f4CB/WHqo=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz", - "integrity": "sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==", - "dev": true, - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "acorn": "^8.14.0" } }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "default-require-extensions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", - "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "node_modules/acorn-walk": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", + "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==", "dev": true, - "requires": { - "strip-bom": "^2.0.0" + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", "dependencies": { - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "node_modules/airbnb-prop-types": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz", + "integrity": "sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==", + "deprecated": "This package has been renamed to 'prop-types-tools'", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "license": "MIT", + "dependencies": { + "array.prototype.find": "^2.1.1", + "function.prototype.name": "^1.1.2", + "is-regex": "^1.1.0", + "object-is": "^1.1.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.2", + "prop-types": "^15.7.2", + "prop-types-exact": "^1.2.0", + "react-is": "^16.13.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0-alpha" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true } } }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "license": "BSD-3-Clause OR MIT", + "engines": { + "node": ">=0.4.2" + } }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "detect-file": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", - "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", - "dev": true - }, - "detect-indent": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, - "requires": { - "repeating": "^2.0.0" + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" } }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true - }, - "diff-match-patch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.4.tgz", - "integrity": "sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "path-type": "^3.0.0" + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "discontinuous-range": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=", - "dev": true - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "node_modules/ansicolors": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", + "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } + "license": "MIT" }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "devOptional": true, + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha512-Yisb7ew0ZEyDtRYQ+b+26o9KbiYPFxwcsxKzbssigzRRMJ9LpExPVUg6Fos7eP7yP3q7///tzze4nm4lTptPBw==", "dev": true, - "requires": { - "esutils": "^2.0.2" + "license": "MIT", + "dependencies": { + "default-require-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" + "node_modules/archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha512-zV4Ky0v1F8dBrdYElwTvQhweQ0P7Kwc1aluqJsYtOBP01jXcWCyW2IEfI1YiqsG+Iy7ZR+o5LF1N+PGECBxHWA==", + "license": "MIT", + "dependencies": { + "file-type": "^4.2.0" + }, + "engines": { + "node": ">=4" } }, - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.1.2" + "node_modules/archive-type/node_modules/file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha512-f2UbFQEk7LXgWpi5ntcO86OeA/cC80fuDDDaX/fZ2ZGel+AF7leRQqBBW1eJNiiQkrZlAoM6P+VYP5P6bOlDEQ==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } + "license": "MIT" }, - "dom-walk": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", - "dev": true - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true + "node_modules/argv-formatter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz", + "integrity": "sha512-F2+Hkm9xFaRg+GkaNnbwXNDV5O6pnCFEmqyhvfC/Ic5LbgOWjJh3L+mN/s91rxVL3znE7DYVpW0GJFT+4YBgWw==", + "dev": true, + "license": "MIT" }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", "dev": true, - "requires": { - "domelementtype": "1" + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", "dev": true, - "requires": { - "readable-stream": "^2.0.2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "node_modules/array-equal": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.2.tgz", + "integrity": "sha512-gUHx76KtnhEgB3HOuFYiCm3FIdEs6ocM2asHvNTkfu/Y09qQVrrVVaOKENmS2KkSaGoxgXNqC+ZVtR/n0MOkSA==", "dev": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ee-first": { + "node_modules/array-find": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz", + "integrity": "sha512-kO/vVCacW9mnpn3WPWbTVlEnOabK2L7LWi2HViURtCM46y1zb6I8UMjx4LgbiqadTgHnLInUronwn3ampNTJtQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-flatten": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true, + "license": "MIT" }, - "electron-to-chromium": { - "version": "1.3.280", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.280.tgz", - "integrity": "sha512-qYWNMjKLEfQAWZF2Sarvo+ahigu0EArnpCFSoUuZJS3W5wIeVfeEvsgmT2mgIrieQkeQ0+xFmykK3nx2ezekPQ==", - "dev": true + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" }, - "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "emojis-list": { + "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, - "requires": { - "iconv-lite": "~0.4.13" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", "dev": true, - "requires": { - "once": "^1.4.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "engine.io-client": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.1.6.tgz", - "integrity": "sha512-hnuHsFluXnsKOndS4Hv6SvUrgdYx1pk2NqfaDMW+GWdgfU3+/V25Cj7I8a0x92idSpa5PIhJRKxPvp9mnoLsfg==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - } + "node_modules/array.prototype.filter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz", + "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "node_modules/array.prototype.find": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.find/-/array.prototype.find-2.2.3.tgz", + "integrity": "sha512-fO/ORdOELvjbbeIfZfzrXFMhYHGofRGqd+am9zm3tZ4GlJINj/pA2eITyfd65Vg6+ZbHd/Cys7stpoRSWtQFdA==", "dev": true, - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "enhanced-resolve": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", - "integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=", + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.2.0", - "tapable": "^0.1.8" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "enzyme": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.10.0.tgz", - "integrity": "sha512-p2yy9Y7t/PFbPoTvrWde7JIYB2ZyGC+NgTNbVEGvZ5/EyoYSr9aG/2rSbVvyNvMHEhw9/dmGUJHWtfQIEiX9pg==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, - "requires": { - "array.prototype.flat": "^1.2.1", - "cheerio": "^1.0.0-rc.2", - "function.prototype.name": "^1.1.0", - "has": "^1.0.3", - "html-element-map": "^1.0.0", - "is-boolean-object": "^1.0.0", - "is-callable": "^1.1.4", - "is-number-object": "^1.0.3", - "is-regex": "^1.0.4", - "is-string": "^1.0.4", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.6.0", - "object-is": "^1.0.1", - "object.assign": "^4.1.0", - "object.entries": "^1.0.4", - "object.values": "^1.0.4", - "raf": "^3.4.0", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.1.2" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "enzyme-adapter-react-16": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.3.0.tgz", - "integrity": "sha512-TRX+Y5QPreGmqfFU3bPsJUmqNZX9paQCmQ93kj7hnfQoZzufO/pahGN/OviWn60YcgaQojhf0AWv3PxrIDARbA==", + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, - "requires": { - "enzyme-adapter-utils": "^1.6.0", - "function.prototype.name": "^1.1.0", - "object.assign": "^4.1.0", - "object.values": "^1.0.4", - "prop-types": "^15.6.2", - "react-is": "^16.4.2", - "react-test-renderer": "^16.0.0-0" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "enzyme-adapter-utils": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.12.0.tgz", - "integrity": "sha512-wkZvE0VxcFx/8ZsBw0iAbk3gR1d9hK447ebnSYBf95+r32ezBq+XDSAvRErkc4LZosgH8J7et7H7/7CtUuQfBA==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, - "requires": { - "airbnb-prop-types": "^2.13.2", - "function.prototype.name": "^1.1.0", - "object.assign": "^4.1.0", - "object.fromentries": "^2.0.0", - "prop-types": "^15.7.2", - "semver": "^5.6.0" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, - "requires": { - "prr": "~1.0.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" + "node_modules/arraybuffer-loader": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/arraybuffer-loader/-/arraybuffer-loader-1.0.8.tgz", + "integrity": "sha512-CwUVCcxCgcgZUu2w741OV6Xj1tvRVQebq22RCyGXiLgJOJ4e4M/59EPYdtK2MLfIN28t1TDvuh2ojstNq3Kh5g==", + "license": "MIT", + "peer": true, + "dependencies": { + "loader-utils": "^1.1.0" + }, + "engines": { + "node": ">= 4.0.0" } }, - "es-abstract": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.15.0.tgz", - "integrity": "sha512-bhkEqWJ2t2lMeaJDuk7okMkJWI/yqgH/EoGwpcvv0XW9RWQsRspI4wt6xuyuvMvvQE3gg/D9HXppgk21w78GyQ==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, - "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", - "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.1.0", - "string.prototype.trimright": "^2.1.0" + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", - "dev": true - }, - "es6-promise": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", - "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", - "dev": true + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": "~2.1.0" + } }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "dev": true, + "license": "MIT" }, - "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "node_modules/assert": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", + "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, + "license": "MIT", "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } + "object.assign": "^4.1.4", + "util": "^0.10.4" } }, - "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" - }, + "license": "ISC" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "inherits": "2.0.3" } }, - "eslint-config-scratch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-scratch/-/eslint-config-scratch-5.1.0.tgz", - "integrity": "sha512-JQMxERL3eo0TMy87NZFm6yS0i2XOMplffKz9CD/2ta2i/+3FTgajxzF9n7R7vi9C+GMLSTSLZJ5X90tINuAhjg==", + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", "dev": true, - "requires": { - "eslint-plugin-react": ">=7.14.2" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "eslint-import-resolver-node": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz", - "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==", + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.5.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "eslint-import-resolver-webpack": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.11.1.tgz", - "integrity": "sha512-eK3zR7xVQR/MaoBWwGuD+CULYVuqe5QFlDukman71aI6IboCGzggDUohHNfu1ZeBnbHcUHJc0ywWoXUBNB6qdg==", + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, - "requires": { - "array-find": "^1.0.0", - "debug": "^2.6.8", - "enhanced-resolve": "~0.9.0", - "find-root": "^1.1.0", - "has": "^1.0.1", - "interpret": "^1.0.0", - "lodash": "^4.17.4", - "node-libs-browser": "^1.0.0 || ^2.0.0", - "resolve": "^1.10.0", - "semver": "^5.3.0" + "license": "MIT", + "dependencies": { + "lodash": "^4.17.14" } }, - "eslint-module-utils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz", - "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==", + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, - "requires": { - "debug": "^2.6.8", - "pkg-dir": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "atob": "bin/atob.js" }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/audio-context": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/audio-context/-/audio-context-1.0.3.tgz", + "integrity": "sha512-RH3/rM74f2ITlohhjgC7oYZVS97wtv/SEjXLCzEinnrIPIDxc39m2aFc6wmdkM0NYRKo1DMleYPMAIbnTRW0eA==", + "deprecated": "Depends on Web-Audio-API implementation. Use either web-audio-api, web-audio-js or web-audio-engine package.", + "license": "MIT" + }, + "node_modules/autoprefixer": { + "version": "9.8.8", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz", + "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==", + "license": "MIT", "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - } + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "picocolors": "^0.2.1", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" } }, - "eslint-plugin-import": { - "version": "2.18.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz", - "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.11.0" - }, - "dependencies": { - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - } + "node_modules/autoprefixer/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "node_modules/autoprefixer/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "eslint-plugin-jest": { - "version": "22.17.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.17.0.tgz", - "integrity": "sha512-WT4DP4RoGBhIQjv+5D0FM20fAdAUstfYAf/mkufLNTojsfgzc5/IYW22cIg/Q4QBavAZsROQlqppiWDpFZDS8Q==", - "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^1.13.0" + "node_modules/autoprefixer/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "eslint-plugin-react": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz", - "integrity": "sha512-GacBAATewhhptbK3/vTP09CbFrgUJmBSaaRcWdbQLFvUZy9yVcQxigBNHGPU/KE2AyHpzj3AWXpxoMTsIDiHug==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1", - "object.entries": "^1.1.0", - "object.fromentries": "^2.0.0", - "object.values": "^1.1.0", - "prop-types": "^15.7.2", - "resolve": "^1.12.0" + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==", + "license": "MIT" + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==", + "dev": true, + "license": "MIT", "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - } + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "eslint-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", - "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", + "node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", "dev": true, - "requires": { - "eslint-visitor-keys": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==", - "dev": true + "node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "node_modules/babel-code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.8.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg==", + "dev": true, + "license": "MIT" }, - "esquery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", - "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", + "node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", "dev": true, - "requires": { - "estraverse": "^4.0.0" + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true, - "requires": { - "estraverse": "^4.1.0" + "license": "MIT", + "engines": { + "node": ">=0.8.0" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "dev": true, + "license": "MIT", + "peer": true, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } }, - "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==", - "dev": true + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } }, - "events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", - "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", - "dev": true + "node_modules/babel-generator/node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha512-Mke0DA0QjUWuJlhsE0ZPPhYiJkRap642SmI/4ztCFaUs6V2AiH1sfecc+57NgaryfAA2VR3v6O+CSjC1jZJKOA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + } }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "node_modules/babel-generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "requires": { - "original": "^1.0.0" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==", "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, - "exec-sh": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", - "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "node_modules/babel-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-21.2.0.tgz", + "integrity": "sha512-O0W2qLoWu1QOoOGgxiR2JID4O6WSpxPiQanrkyi9SSlM0PJ60Ptzlck47lhtnr9YZO3zYOsxHwnyeWJ6AffoBQ==", "dev": true, - "requires": { - "merge": "^1.2.0" + "license": "MIT", + "dependencies": { + "babel-plugin-istanbul": "^4.0.0", + "babel-preset-jest": "^21.2.0" + }, + "peerDependencies": { + "babel-core": "^6.0.0 || ^7.0.0-alpha || ^7.0.0-beta || ^7.0.0" } }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "node_modules/babel-loader": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "license": "MIT", + "peer": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==", + "dev": true, + "license": "MIT", "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - } + "babel-runtime": "^6.22.0" } }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=", - "dev": true + "node_modules/babel-plugin-istanbul": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" + } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "node_modules/babel-plugin-istanbul/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "node_modules/babel-plugin-istanbul/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, - "requires": { - "fill-range": "^2.1.0" + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", "dependencies": { - "fill-range": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", - "dev": true, - "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" - } - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "node_modules/babel-plugin-istanbul/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "expect": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", - "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", + "node_modules/babel-plugin-istanbul/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "jest-diff": "^21.2.1", - "jest-get-type": "^21.2.0", - "jest-matcher-utils": "^21.2.1", - "jest-message-util": "^21.2.1", - "jest-regex-util": "^21.2.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "exports-loader": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.3.tgz", - "integrity": "sha1-V9x4kX9wm5byR/qR5ptVTIVQE8g=", + "node_modules/babel-plugin-jest-hoist": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-21.2.0.tgz", + "integrity": "sha512-yi5QuiVyyvhBUDLP4ButAnhYzkdrUwWDtvUJv71hjH3fclhnZg4HkDeqaitcR2dZZx/E67kGkRcPVjtVu+SJfQ==", "dev": true, - "requires": { - "loader-utils": "0.2.x", - "source-map": "0.1.x" - }, + "license": "MIT" + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dev": true, + "license": "MIT", "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "dev": true, - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, + "license": "MIT", "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "extract-zip": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", - "dev": true, - "requires": { - "concat-stream": "1.6.2", - "debug": "2.6.9", - "mkdirp": "0.5.1", - "yauzl": "2.4.1" + "node_modules/babel-plugin-react-intl": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.5.1.tgz", + "integrity": "sha512-1jlEJCSmLaJM4tjIKpu64UZ833COCHmwR77bFJDOye+zlwf80uR1b8p41l4tClx1QsrfI+qV6w/5AiPYQgaMUQ==", + "deprecated": "this package has been renamed to babel-plugin-formatjs", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.4.5", + "@babel/helper-plugin-utils": "^7.0.0", + "@types/babel__core": "^7.1.2", + "fs-extra": "^8.0.1", + "intl-messageformat-parser": "^1.8.1" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true - }, - "falafel": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz", - "integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "foreach": "^2.0.5", - "isarray": "0.0.1", - "object-keys": "^1.0.6" - }, + "node_modules/babel-plugin-react-intl/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", "dependencies": { - "acorn": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", - "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - } + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true + "node_modules/babel-plugin-react-intl/node_modules/intl-messageformat-parser": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", + "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", + "license": "BSD-3-Clause" }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true + "node_modules/babel-plugin-react-intl/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" + "node_modules/babel-plugin-react-intl/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" } }, - "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "node_modules/babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha512-C4Aq+GaAj83pRQ0EFgTvw5YO6T3Qz2KGrNRwIj9mSoNHVvdZY4KO2uA6HNtNXCw993iSZnckY1aLW8nOi8i4+w==", "dev": true, - "requires": { - "bser": "^2.0.0" - } + "license": "MIT" }, - "fbjs": { - "version": "0.8.17", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", - "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "node_modules/babel-preset-jest": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-21.2.0.tgz", + "integrity": "sha512-hm9cBnr2h3J7yXoTtAVV0zg+3vg0Q/gT2GYuzlreTU0EPkJRtlNgKJJ3tBKEn0+VjAi3JykV6xCJkuUYttEEfA==", "dev": true, - "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" - }, + "license": "MIT", "dependencies": { - "core-js": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", - "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", - "dev": true - } + "babel-plugin-jest-hoist": "^21.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" } }, - "fd-slicer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", + "node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==", "dev": true, - "requires": { - "pend": "~1.2.0" + "license": "MIT", + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, - "figgy-pudding": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", - "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "node_modules/babel-register/node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" + "license": "MIT", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" } }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "node_modules/babel-register/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true, - "requires": { - "flat-cache": "^2.0.1" - } + "license": "MIT" }, - "file-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", - "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "node_modules/babel-register/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^1.0.0" + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "node_modules/babel-register/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", "dev": true, - "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" + "license": "MIT", + "bin": { + "json5": "lib/cli.js" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "node_modules/babel-register/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, + "license": "MIT", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "node_modules/babel-register/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } + "license": "MIT" }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "node_modules/babel-register/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "node_modules/babel-register/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "requires": { - "locate-path": "^3.0.0" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "findup": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", - "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=", + "node_modules/babel-register/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, - "requires": { - "colors": "~0.6.0-1", - "commander": "~2.1.0" - }, + "license": "MIT", "dependencies": { - "commander": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", - "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", - "dev": true - } + "source-map": "^0.5.6" } }, - "findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" + "license": "MIT", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, - "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "license": "MIT", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" } }, - "follow-redirects": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.9.0.tgz", - "integrity": "sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A==", + "node_modules/babel-traverse/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "debug": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "ms": "2.0.0" } }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/babel-traverse/node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", "dev": true, - "requires": { - "is-callable": "^1.1.3" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "node_modules/babel-traverse/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "requires": { - "for-in": "^1.0.1" - } + "license": "MIT" }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha512-zhe3V/26rCWsEZK8kZN+HaQj5yQ1CilTObixFzKW1UWjqG7618Twz6YEsCnjfg5gBcJh02DrpCkS9h98ZqDY+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true, + "license": "MIT", + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/balance-text": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/balance-text/-/balance-text-3.3.1.tgz", + "integrity": "sha512-tpnHvo1w0rJ5rbu+jZKf7NLKKg6XZ6eAwREP/9jEDJ+ZTBi6jQFqn/UGARL3/oqD8SgQbyTwBXBjhKDdTgoPRw==" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/base64-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64-loader/-/base64-loader-1.0.0.tgz", + "integrity": "sha512-p32+F8dg+ANGx7s8QsZS74ZPHfIycmC2yZcoerzFgbersIYWitPbbF39G6SBx3gyvzyLH5nt1ooocxr0IHuWKA==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.25", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.25.tgz", + "integrity": "sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } }, - "forever-agent": { + "node_modules/batch": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "license": "BSD-3-Clause", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/bidi-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", + "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", + "license": "MIT", + "dependencies": { + "require-from-string": "^2.0.2" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "license": "MIT", + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bl/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/bl/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/bl/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/bonjour-service": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bottleneck": { + "version": "2.19.5", + "resolved": "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz", + "integrity": "sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/bowser": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz", + "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brfs": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz", + "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==", + "license": "MIT", + "dependencies": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^2.2.0", + "through2": "^2.0.0" + }, + "bin": { + "brfs": "bin/cmd.js" + } + }, + "node_modules/brfs/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/brfs/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/brfs/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/brfs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/brfs/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true, + "license": "MIT" + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true, + "license": "MIT" + }, + "node_modules/browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha512-7Rfk377tpSM9TWBEeHs0FlDZGoAIei2V/4MdZJoFMBFAK6BqLpxAIUepGRHGdPFgGsLb02PXovC4qddyHvQqTg==", + "license": "ISC" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.5.tgz", + "integrity": "sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==", + "dev": true, + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.2", + "browserify-rsa": "^4.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.6.1", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.9", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/browserify-sign/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.27.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.27.0.tgz", + "integrity": "sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.8.19", + "caniuse-lite": "^1.0.30001751", + "electron-to-chromium": "^1.5.238", + "node-releases": "^2.0.26", + "update-browserslist-db": "^1.1.4" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "license": "(MIT OR Apache-2.0)", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "license": "MIT", + "dependencies": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "node_modules/buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "license": "MIT" + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", + "license": "MIT" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/buffer/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", + "license": "MIT", + "dependencies": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/cacheable-request/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "license": "MIT" + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001754", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", + "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/canvas-toBlob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canvas-toBlob/-/canvas-toBlob-1.0.0.tgz", + "integrity": "sha512-oU5bawygt/Nef9F+C49eTFmzXzz6yKdGqn6J1wn/LZQF5ulnnZVm0KIZzik85I6tjCbZFH6aa47j4bU2tkHxRw==", + "license": "MIT" + }, + "node_modules/capture-exit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", + "integrity": "sha512-IS4lTgp57lUcpXzyCaiUQcRZBxZAkzl+jNXrMUXZjdnr2yujpKUMG9OYeYL29i6fL66ihypvVJ/MeX0B+9pWOg==", + "dev": true, + "license": "ISC", + "dependencies": { + "rsvp": "^3.3.3" + } + }, + "node_modules/cardinal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", + "integrity": "sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansicolors": "~0.3.2", + "redeyed": "~2.1.0" + }, + "bin": { + "cdl": "bin/cdl.js" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "license": "Apache-2.0" + }, + "node_modules/cat-blocks": { + "name": "scratch-blocks", + "version": "0.1.0-prerelease.20220318143026", + "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20220318143026.tgz", + "integrity": "sha512-eYJYzjYt3fmF5a243eBIgQfNj+c3ApHFE8jkm1KV/tEiFanJ8XlLZay9LmbnhYhK0618+s0uEQrpJ9WC6xnX/Q==", + "deprecated": "Obsolete pre-release", + "license": "Apache-2.0", + "dependencies": { + "exports-loader": "0.6.3", + "google-closure-library": "20190301.0.0", + "imports-loader": "0.6.5", + "scratch-l10n": "3.14.20220317031619" + } + }, + "node_modules/cat-blocks/node_modules/scratch-l10n": { + "version": "3.14.20220317031619", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220317031619.tgz", + "integrity": "sha512-tDKXRFxKFob9htBeOu+873mujoePXc4sGQulWDdMVCM8cYz63geCWziX5fCwp2pu3pJKQLEth0ftd2eoXkT1RA==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "transifex": "1.6.6" + }, + "bin": { + "build-i18n-src": "scripts/build-i18n-src.js", + "tx-push-src": "scripts/tx-push-src.js" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", + "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", + "dev": true, + "license": "MIT", + "dependencies": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.1", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash": "^4.15.0", + "parse5": "^3.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cipher-base": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", + "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/colors": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", + "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "license": "ISC" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "license": "MIT" + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/component-emitter": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz", + "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/computed-style-to-inline-style": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/computed-style-to-inline-style/-/computed-style-to-inline-style-3.0.0.tgz", + "integrity": "sha512-6XAOG2ZZkpCfbM9AhRN4/wjMgQujtH/2q/eowZON190oAASUjEb3jwcodjmRlR8HNDMahJdBQwchuDftOtF7eg==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type-parser": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz", + "integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==", + "deprecated": "Use whatwg-mimetype instead", + "dev": true, + "license": "MIT" + }, + "node_modules/conventional-changelog-angular": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz", + "integrity": "sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz", + "integrity": "sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.3.5", + "meow": "^8.1.2", + "split2": "^3.2.2" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz", + "integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==", + "license": "MIT", + "dependencies": { + "cacache": "^15.0.5", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/copy-webpack-plugin/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/copy-webpack-plugin/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/copy-webpack-plugin/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/copy-webpack-plugin/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/copy-webpack-plugin/node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/copy-webpack-plugin/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true, + "license": "MIT" + }, + "node_modules/core-js-compat": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.46.0.tgz", + "integrity": "sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserslist": "^4.26.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz", + "integrity": "sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=7", + "ts-node": ">=10", + "typescript": ">=4" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-fetch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-loader": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", + "integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/css-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/css-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/css-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/css-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/css-mediaquery": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/css-mediaquery/-/css-mediaquery-0.1.2.tgz", + "integrity": "sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==", + "license": "BSD" + }, + "node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==", + "dev": true, + "license": "BSD-like", + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-vendor": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-0.3.8.tgz", + "integrity": "sha512-Vx/Vl3zsHj32Z+WTNzGjd2iSbSIJTYHMmyGUT2nzCjj0Xk4qLfwpQ8nF6TQ5oo3Cf0s/An3DTc7LclH1BkAXbQ==", + "license": "MIT", + "dependencies": { + "is-in-browser": "^1.0.2" + } + }, + "node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": "*" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha512-FUpKc+1FNBsHUr9IsfSGCovr8VuGOiiuzlgCyppKBjJi2jYTOFLN3oiiNRMIvYqbFzF38mqKj4BgcevzU5/kIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssom": "0.3.x" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "license": "MIT" + }, + "node_modules/dapjs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/dapjs/-/dapjs-2.3.0.tgz", + "integrity": "sha512-quanzq7+2xnqgGqqYgARz9o3iBcZ3Ir5r5mTA7WPsjrp9ilEqqCToSFGTL+8HuGP35dUIL7O+yMBloYHhHgZDA==", + "license": "MIT", + "dependencies": { + "@types/node-hid": "^1.2.0", + "@types/usb": "^1.5.1", + "@types/w3c-web-usb": "^1.0.4" + }, + "engines": { + "node": ">=8.14.0" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", + "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==", + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-urls/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/data-urls/node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-urls/node_modules/webidl-conversions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", + "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=20" + } + }, + "node_modules/data-urls/node_modules/whatwg-url": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "license": "MIT", + "dependencies": { + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, + "node_modules/decode-html": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decode-html/-/decode-html-2.0.0.tgz", + "integrity": "sha512-lVJ+EBozhAXA2nSQG+xAgcD0P5K3uejnIIvM09uoQfS8AALkQ+HhHcEUvKovXi0EIpIZWjm0y8X7ULjaJpgY9w==", + "license": "MIT" + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", + "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "license": "MIT", + "dependencies": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tar/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-tarbz2/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "license": "MIT", + "dependencies": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha512-Iq1nJ6D2+yIO4c8HHg4fyVb8mAJieo1Oloy1mLLaB2PvezNedhBVm+QU7g0qM42aiMbRXTxKKwGD17rjKNJYVQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-targz/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha512-1fqeluvxgnn86MOh66u8FjbtJpAFv5wgCT9Iw8rcBqQcCo5tO8eiJw7NNTrvt9n4CRBVq7CstiS922oPgyGLrw==", + "license": "MIT", + "dependencies": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress-unzip/node_modules/file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha512-AUGhbbemXxrZJRD5cDvKtQxLuYaIbNtDTK8YqupCI393Q2KSTreEsLUN3ZxAWFGiKTzL6nKuzfcIvieflUX9qA==", + "license": "MIT", + "dependencies": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress-unzip/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decompress/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "license": "MIT", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/make-dir/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/decompress/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "license": "MIT" + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha512-Dn2eAftOqXhNXs5f/Xjn7QTZ6kDYkx7u0EXQInN1oyYwsZysu11q7oTtaKcbzLxZRJiDHa8VmwpWmb4lY5FqgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dev": true, + "license": "MIT", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/del/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha512-BDKtmHlOzwI7iRuEkhzsnPoi5ypEhWAJB5RvHWe1kMr06js3uK5B3734i3ui5Yd+wOJV1cpE4JnivPD283GU/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-match-patch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", + "license": "Apache-2.0" + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "license": "BSD-2-Clause" + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/dompurify": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.3.0.tgz", + "integrity": "sha512-r+f6MYR1gGN1eJv0TVQbhA7if/U7P87cdPl3HN5rikqaBSBxLiCb/b9O+2eG0cxz0ghyU+mU1QkbsOwERMYlWQ==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/download": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/download/-/download-8.0.0.tgz", + "integrity": "sha512-ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==", + "license": "MIT", + "dependencies": { + "archive-type": "^4.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.2.1", + "ext-name": "^5.0.0", + "file-type": "^11.1.0", + "filenamify": "^3.0.0", + "get-stream": "^4.1.0", + "got": "^8.3.1", + "make-dir": "^2.1.0", + "p-event": "^2.1.0", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/download/node_modules/filenamify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz", + "integrity": "sha512-5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==", + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/download/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/download/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "license": "BSD-3-Clause", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==", + "license": "BSD-3-Clause" + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "license": "MIT", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true, + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.249", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.249.tgz", + "integrity": "sha512-5vcfL3BBe++qZ5kuFhD/p8WOM1N9m3nwvJPULJx+4xf2usSlZFJ0qoNYO2fOX4hi3ocuDcmDobtA+5SFr4OmBg==", + "license": "ISC" + }, + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz", + "integrity": "sha512-kxpoMgrdtkXZ5h0SeraBS1iRntpTpQ3R8ussdb38+UAFnMGX5DDyJXePm+OCHOcoXvHDw7mc2erbJBpDnl7TPw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.2.0", + "tapable": "^0.1.8" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "license": "BSD-2-Clause" + }, + "node_modules/env-ci": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-5.5.0.tgz", + "integrity": "sha512-o0JdWIbOLP+WJKIUt36hz1ImQQFuN92nhsfTkHHap+J8CiI8WgGpH/a9jEGHh4/TU5BUUGjlnKXNoDb57+ne+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "execa": "^5.0.0", + "fromentries": "^1.3.2", + "java-properties": "^1.0.0" + }, + "engines": { + "node": ">=10.17" + } + }, + "node_modules/envinfo": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.20.0.tgz", + "integrity": "sha512-+zUomDcLXsVkQ37vUqWBvQwLaLlj8eZPSi61llaEFAVBY5mhcXdaSw1pSJVl4yTYD5g/gEfpNl28YYk4IPvrrg==", + "dev": true, + "license": "MIT", + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/enzyme": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz", + "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "array.prototype.flat": "^1.2.3", + "cheerio": "^1.0.0-rc.3", + "enzyme-shallow-equal": "^1.0.1", + "function.prototype.name": "^1.1.2", + "has": "^1.0.3", + "html-element-map": "^1.2.0", + "is-boolean-object": "^1.0.1", + "is-callable": "^1.1.5", + "is-number-object": "^1.0.4", + "is-regex": "^1.0.5", + "is-string": "^1.0.5", + "is-subset": "^0.1.1", + "lodash.escape": "^4.0.1", + "lodash.isequal": "^4.5.0", + "object-inspect": "^1.7.0", + "object-is": "^1.0.2", + "object.assign": "^4.1.0", + "object.entries": "^1.1.1", + "object.values": "^1.1.1", + "raf": "^3.4.1", + "rst-selector-parser": "^2.2.3", + "string.prototype.trim": "^1.2.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/enzyme-adapter-react-16": { + "version": "1.15.8", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.8.tgz", + "integrity": "sha512-uYGC31eGZBp5nGsr4nKhZKvxGQjyHGjS06BJsUlWgE29/hvnpgCsT1BJvnnyny7N3GIIVyxZ4O9GChr6hy2WQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "enzyme-adapter-utils": "^1.14.2", + "enzyme-shallow-equal": "^1.0.7", + "hasown": "^2.0.0", + "object.assign": "^4.1.5", + "object.values": "^1.1.7", + "prop-types": "^15.8.1", + "react-is": "^16.13.1", + "react-test-renderer": "^16.0.0-0", + "semver": "^5.7.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "enzyme": "^3.0.0", + "react": "^16.0.0-0", + "react-dom": "^16.0.0-0" + } + }, + "node_modules/enzyme-adapter-react-16/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/enzyme-adapter-utils": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.2.tgz", + "integrity": "sha512-1ZC++RlsYRaiOWE5NRaF5OgsMt7F5rn/VuaJIgc7eW/fmgg8eS1/Ut7EugSPPi7VMdWMLcymRnMF+mJUJ4B8KA==", + "dev": true, + "license": "MIT", + "dependencies": { + "airbnb-prop-types": "^2.16.0", + "function.prototype.name": "^1.1.6", + "hasown": "^2.0.0", + "object.assign": "^4.1.5", + "object.fromentries": "^2.0.7", + "prop-types": "^15.8.1", + "semver": "^6.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "peerDependencies": { + "react": "0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0" + } + }, + "node_modules/enzyme-shallow-equal": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz", + "integrity": "sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0", + "object-is": "^1.1.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es6-object-assign": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", + "license": "MIT" + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-scratch": { + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/eslint-config-scratch/-/eslint-config-scratch-9.0.9.tgz", + "integrity": "sha512-6OlJ8Gc/X35bMCA1fWnEdJ7r3NC+xLn8qDLUj8hUTM+N7P+AKgS+itWUUoWlVpVvIpQlR6Bq1ctdL5zVp2+1Aw==", + "dev": true, + "license": "BSD-3-Clause", + "optionalDependencies": { + "eslint-plugin-react": ">=7.27.0" + }, + "peerDependencies": { + "@babel/eslint-parser": "^7.11.0", + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-webpack": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.11.1.tgz", + "integrity": "sha512-eK3zR7xVQR/MaoBWwGuD+CULYVuqe5QFlDukman71aI6IboCGzggDUohHNfu1ZeBnbHcUHJc0ywWoXUBNB6qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-find": "^1.0.0", + "debug": "^2.6.8", + "enhanced-resolve": "~0.9.0", + "find-root": "^1.1.0", + "has": "^1.0.1", + "interpret": "^1.0.0", + "lodash": "^4.17.4", + "node-libs-browser": "^1.0.0 || ^2.0.0", + "resolve": "^1.10.0", + "semver": "^5.3.0" + }, + "peerDependencies": { + "eslint-plugin-import": ">=1.4.0", + "webpack": ">=1.11.0" + } + }, + "node_modules/eslint-import-resolver-webpack/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-import-resolver-webpack/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint-import-resolver-webpack/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "22.21.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.21.0.tgz", + "integrity": "sha512-OaqnSS7uBgcGiqXUiEnjoqxPNKvR4JWG5mSRkzVoR6+vDwlqqp11beeql1hYs0HTbdhiwrxWLxbX0Vx7roG3Ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^1.13.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true, + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "merge": "^1.2.0" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==", + "license": "BSD-3-Clause" + }, + "node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/expand-range/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-21.2.1.tgz", + "integrity": "sha512-orfQQqFRTX0jH7znRIGi8ZMR8kTNpXklTTz8+HGTpmTKZo3Occ6JNB5FXMb8cRuiiC/GyDqsr30zUa66ACYlYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.0", + "jest-diff": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0" + } + }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/expect/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/expect/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/exports-loader": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.3.tgz", + "integrity": "sha512-vBQgTnvmEB7qWmr7gzAzJRWptzYhkhvdXeH8sRnS//mIai6MgLZe1crlQ+VWTjCCXLlnhGuiuVMq0YfjA5AUOw==", + "dependencies": { + "loader-utils": "0.2.x", + "source-map": "0.1.x" + } + }, + "node_modules/exports-loader/node_modules/big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/exports-loader/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/exports-loader/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/exports-loader/node_modules/loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "license": "MIT", + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/express/node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.28.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "license": "MIT", + "dependencies": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT" + }, + "node_modules/falafel": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz", + "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "isarray": "^2.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/falafel/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastestsmallesttextencoderdecoder": { + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", + "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==", + "license": "CC0-1.0" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/file-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/file-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/file-type": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz", + "integrity": "sha512-rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha512-UxowFKnAFIwtmSxgKjWAVgjE3Fk7MQJT0ZIyl0NwIFZTrx4913rLaonGJ84V+x/2+w/pe4ULHRns+GZPs1TVuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-versions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver-regex": "^3.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/findup": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", + "integrity": "sha512-Udxo3C9A6alt2GZ2MNsgnIvX7De0V3VGxeP/x98NSVgSlizcDHdmJza61LI7zJy4OEtSiJyE72s0/+tBl5/ZxA==", + "dependencies": { + "colors": "~0.6.0-1", + "commander": "~2.1.0" + }, + "bin": { + "findup": "bin/findup.js" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/findup/node_modules/commander": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", + "integrity": "sha512-J2wnb6TKniXNOtoHS8TSrG9IOQluPrsmyAJ8oCUJOBmv+uLBCyPYAZkD2jFvw2DCzIXNnISIM01NIvr35TkBMQ==", + "engines": { + "node": ">= 0.6.x" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/format-message": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.4.tgz", + "integrity": "sha512-/24zYeSRy2ZlEO2OIctm7jOHvMpoWf+uhqFCaqqyZKi1C229zAAy2E5vF4lSSaMH0a2kewPrOzq6xN4Yy7cQrw==", + "license": "MIT", + "dependencies": { + "format-message-formats": "^6.2.4", + "format-message-interpret": "^6.2.4", + "format-message-parse": "^6.2.4", + "lookup-closest-locale": "^6.2.0" + } + }, + "node_modules/format-message-formats": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.4.tgz", + "integrity": "sha512-smT/fAqBLqusWfWCKRAx6QBDAAbmYznWsIyTyk66COmvwt2Byiqd7SJe2ma9a5oV0kwRaOJpN/F4lr4YK/n6qQ==", + "license": "MIT" + }, + "node_modules/format-message-interpret": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.4.tgz", + "integrity": "sha512-dRvz9mXhITApyOtfuFEb/XqvCe1u6RMkQW49UJHXS8w2S8cAHCqq5LNDFK+QK6XVzcofROycLb/k1uybTAKt2w==", + "license": "MIT", + "dependencies": { + "format-message-formats": "^6.2.4", + "lookup-closest-locale": "^6.2.0" + } + }, + "node_modules/format-message-parse": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz", + "integrity": "sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==", + "license": "MIT" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "license": "MIT", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2-array": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", + "integrity": "sha512-0G0cAp7sYLobH7ALsr835x98PU/YeVF7wlwxdWbCUaea7wsa7lJfKZUAo6p2YZGZ8F94luCuqHZS3JtFER6uPg==", + "license": "MIT", + "dependencies": { + "from2": "^2.0.3" + } + }, + "node_modules/from2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/from2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fromentries": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", + "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "license": "MIT" + }, + "node_modules/fs-extra": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.2.tgz", + "integrity": "sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "license": "MIT" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-float-time-domain-data": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-float-time-domain-data/-/get-float-time-domain-data-0.1.0.tgz", + "integrity": "sha512-6lWdVMny7vJ+xWxGUmVdSW7rd4L2byptiVkjH3QEBsxcHSa8UbC/HsZmixHK/ZQ1EYsOaQjaeRgR+NAsIerEJQ==", + "license": "MIT" + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-user-media-promise": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/get-user-media-promise/-/get-user-media-promise-1.1.4.tgz", + "integrity": "sha512-k49YuV2z0d3gKHLPTFKYfzEA9kduuQk7YBf8ev2dxrKk+DhMyuzfQnK9ZSxkEhE/jv3BZY62M0eICWa7lak9nw==", + "license": "Apache-2.0" + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/gh-pages": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz", + "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify": "^4.3.0", + "find-cache-dir": "^3.3.1", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gh-pages/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/gh-pages/node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/gh-pages/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gh-pages/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/gh-pages/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/gh-pages/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gh-pages/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-pages/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gh-pages/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gh-pages/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/gh-pages/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gh-pages/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/git-log-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.1.tgz", + "integrity": "sha512-PI+sPDvHXNPl5WNOErAK05s3j0lgwUzMN6o8cyQrDaKfT3qd7TmNJKeXX+SknI5I0QhG5fVPAEwSY4tRGDtYoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "argv-formatter": "~1.0.0", + "spawn-error-forwarder": "~1.0.0", + "split2": "~1.0.0", + "stream-combiner2": "~1.1.1", + "through2": "~2.0.0", + "traverse": "0.6.8" + } + }, + "node_modules/git-log-parser/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/git-log-parser/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/git-log-parser/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/git-log-parser/node_modules/split2": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz", + "integrity": "sha512-NKywug4u4pX/AZBB1FCPzZ6/7O+Xhz1qMVbzTvvKvikjO99oPN87SkK08mEY9P63/5lWjK+wgOOgApnTg5r6qg==", + "dev": true, + "license": "ISC", + "dependencies": { + "through2": "~2.0.0" + } + }, + "node_modules/git-log-parser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/git-log-parser/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-base/node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^2.0.0" + } + }, + "node_modules/glob-base/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-base/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "license": "MIT", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/google-closure-library": { + "version": "20190301.0.0", + "resolved": "https://registry.npmjs.org/google-closure-library/-/google-closure-library-20190301.0.0.tgz", + "integrity": "sha512-mpeszbnXpRhXZ0sPqUxBgUmk0RtmzrJRy3KFygp0Ih9JuRUjQTCLhwYQeIlK2vB2lShhY/KUo9E1Z1gvxDFxOQ==", + "license": "Apache-2.0" + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/got/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/got/node_modules/p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/grapheme-breaker": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", + "integrity": "sha512-mB6rwkw1Z7z4z2RkFFTd/+q6Ug1gnCgjKAervAKgBeNI1mSr8E5EUWoYzFNOZsLHFArLfpk+O8X8qXC7uvuawQ==", + "license": "MIT", + "dependencies": { + "brfs": "^1.2.0", + "unicode-trie": "^0.3.1" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", + "license": "MIT", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==", + "dev": true, + "license": "MIT" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "license": "ISC", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "license": "MIT", + "dependencies": { + "has-symbol-support-x": "^1.4.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha512-ycURW7oUxE2sNiPVw1HVEFsW+ecOpJ5zaj7eC0RlwhibhRBod20muUN8qu/gzx956YrLolVvs1MTXwKgC2rVEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hook-std": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz", + "integrity": "sha512-zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-element-map": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", + "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "array.prototype.filter": "^1.0.0", + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.1" + } + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.4.tgz", + "integrity": "sha512-V/PZeWsqhfpE27nKeX9EO2sbR+D17A+tLf6qU+ht66jdUsN0QLKJN27Z+1+gHrVMKgndBahes0PU6rRihDgHTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html-webpack-plugin/node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "license": "MIT", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "license": "BSD-2-Clause" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "license": "MIT", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true, + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/hull.js": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz", + "integrity": "sha512-UO3W30HxhWgeSpNKCdXt00xkwjRTGmhQaoZNP8ll509Nl+DP9juXE3wRGizihuop08FSB4xtAWIbWSe+RxEoog==", + "deprecated": "This package is unmaintained and vulnerable. Do not use it.", + "license": "BSD" + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/husky": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", + "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "lib/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, + "node_modules/hyphenate-style-name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz", + "integrity": "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==", + "license": "BSD-3-Clause" + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ify-loader": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.1.0.tgz", + "integrity": "sha512-EiyC45FRIs+z4g98+jBzuYCfoM6TKG9p7Ek5YZUeM7rucNucaMZIseRj/5Q3I4ypkZXyC2wnU1RcYrVmshe2xw==", + "license": "MIT", + "dependencies": { + "bl": "^1.0.0", + "findup": "^0.1.5", + "from2-array": "0.0.4", + "map-limit": "0.0.1", + "multipipe": "^0.3.0", + "read-package-json": "^2.0.2", + "resolve": "^1.1.6" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imports-loader": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz", + "integrity": "sha512-fYIzBL9JOzJszvfeSGSKVjAtkWEtPUwP+OWiUxIWApcxsYh3iqZWZAp8xjTuhsvqglhqaetxeLLTaYyxIv1d4Q==", + "license": "MIT", + "dependencies": { + "loader-utils": "0.2.x", + "source-map": "0.1.x" + } + }, + "node_modules/imports-loader/node_modules/big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/imports-loader/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/imports-loader/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/imports-loader/node_modules/loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==", + "license": "MIT", + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "license": "ISC" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==", + "license": "MIT" + }, + "node_modules/intl-format-cache": { + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", + "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==", + "license": "BSD-3-Clause" + }, + "node_modules/intl-messageformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", + "integrity": "sha512-I+tSvHnXqJYjDfNmY95tpFMj30yoakC6OXAo+wu/wTMy6tA/4Fd4mvV7Uzs4cqK/Ap29sHhwjcY+78a8eifcXw==", + "license": "BSD-3-Clause", + "dependencies": { + "intl-messageformat-parser": "1.4.0" + } + }, + "node_modules/intl-messageformat-parser": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", + "integrity": "sha512-/XkqFHKezO6UcF4Av2/Lzfrez18R0jyw7kRFhSeB/YRakdrgSc9QfFZUwNJI9swMwMoNPygK1ArC5wdFSjPw+A==", + "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", + "license": "BSD-3-Clause" + }, + "node_modules/intl-relativeformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", + "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", + "deprecated": "This package has been deprecated, please see migration guide at 'https://github.com/formatjs/formatjs/tree/master/packages/intl-relativeformat#migration-guide'", + "license": "BSD-3-Clause", + "dependencies": { + "intl-messageformat": "^2.0.0" + } + }, + "node_modules/into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha512-TcdjPibTksa1NQximqep2r17ISRiNE9fwlfbg3F8ANdvP5/yrFTew86VcO//jk4QTaMlbjypPBq76HN2zaKfZQ==", + "license": "MIT", + "dependencies": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", + "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha512-C2wz7Juo5pUZTFQVer9c+9b4qw3I5T/CHQxQyhVu7BJel6C22FmsLIWsdseYyOw6xz9Pqy9eJWSkQ7+3iN1HVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "builtin-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", + "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", + "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", + "license": "MIT" + }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==", + "license": "MIT" + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-network-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", + "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", + "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "license": "MIT" + }, + "node_modules/is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-retry-allowed": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", + "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-subset": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", + "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-dompurify": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/isomorphic-dompurify/-/isomorphic-dompurify-2.31.0.tgz", + "integrity": "sha512-/XPACpfVJeEiy28UgkBWUWdhgKN8xwFYkoVFsqrcSJJ5pXZ3HStuF3ih/Hr8PwhCXHqFAys+b4tcgw0pbUT4rw==", + "license": "MIT", + "dependencies": { + "dompurify": "^3.3.0", + "jsdom": "^27.1.0" + }, + "engines": { + "node": ">=20.19.5" + } + }, + "node_modules/isomorphic-dompurify/node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/isomorphic-dompurify/node_modules/cssstyle": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-5.3.3.tgz", + "integrity": "sha512-OytmFH+13/QXONJcC75QNdMtKpceNk3u8ThBjyyYjkEcy/ekBwR1mMAuNvi3gdBPW3N5TlCzQ0WZw8H0lN/bDw==", + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^4.0.3", + "@csstools/css-syntax-patches-for-csstree": "^1.0.14", + "css-tree": "^3.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/isomorphic-dompurify/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/isomorphic-dompurify/node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/isomorphic-dompurify/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-dompurify/node_modules/jsdom": { + "version": "27.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-27.1.0.tgz", + "integrity": "sha512-Pcfm3eZ+eO4JdZCXthW9tCDT3nF4K+9dmeZ+5X39n+Kqz0DDIABRP5CAEOHRFZk8RGuC2efksTJxrjp8EXCunQ==", + "license": "MIT", + "dependencies": { + "@acemir/cssom": "^0.9.19", + "@asamuzakjp/dom-selector": "^6.7.3", + "cssstyle": "^5.3.2", + "data-urls": "^6.0.0", + "decimal.js": "^10.6.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "parse5": "^8.0.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^6.0.0", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^8.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.1.0", + "ws": "^8.18.3", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/isomorphic-dompurify/node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "license": "CC0-1.0" + }, + "node_modules/isomorphic-dompurify/node_modules/parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-8.0.0.tgz", + "integrity": "sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==", + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/isomorphic-dompurify/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/isomorphic-dompurify/node_modules/tough-cookie": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", + "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/isomorphic-dompurify/node_modules/tr46": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/isomorphic-dompurify/node_modules/webidl-conversions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", + "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=20" + } + }, + "node_modules/isomorphic-dompurify/node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/isomorphic-dompurify/node_modules/whatwg-url": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "license": "MIT", + "dependencies": { + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/isomorphic-dompurify/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "license": "MIT" + }, + "node_modules/issue-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-6.0.0.tgz", + "integrity": "sha512-zKa/Dxq2lGsBIXQ7CUZWTHfvxPC2ej0KfO7fIPqLlHB9J2hJ7rGhZ5rilhuufylr4RXYPzJUeFjKxz305OsNlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.capitalize": "^4.2.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.uniqby": "^4.7.0" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "node_modules/istanbul-api/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/istanbul-api/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/istanbul-api/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "append-transform": "^0.4.0" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha512-DyYHfIYwAJmjAjSSPKANxI8bFY9YtFrgkAfinBojQ8YJTOuOuav64tMUJv584SES4xl74PmuaevIyaLESHdTAA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-report/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha512-Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "handlebars": "^4.0.3" + } + }, + "node_modules/isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "license": "MIT", + "dependencies": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/java-properties": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz", + "integrity": "sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/jest": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", + "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-cli": "^21.2.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/jest-changed-files": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", + "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "throat": "^4.0.0" + } + }, + "node_modules/jest-cli": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", + "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "istanbul-api": "^1.1.1", + "istanbul-lib-coverage": "^1.0.1", + "istanbul-lib-instrument": "^1.4.2", + "istanbul-lib-source-maps": "^1.1.0", + "jest-changed-files": "^21.2.0", + "jest-config": "^21.2.1", + "jest-environment-jsdom": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-message-util": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve-dependencies": "^21.2.0", + "jest-runner": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-snapshot": "^21.2.1", + "jest-util": "^21.2.1", + "micromatch": "^2.3.11", + "node-notifier": "^5.0.2", + "pify": "^3.0.0", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "worker-farm": "^1.3.1", + "yargs": "^9.0.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/jest-cli/node_modules/cliui/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/cliui/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/cliui/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-cli/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-cli/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/jest-cli/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/path-type/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jest-cli/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-cli/node_modules/yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha512-XS0NJoM9Iz0azh1cdgfLF5VFK6BSWfrrqA0V2tIx3fV6aGrWCseVDwOkIBg746ev0hes59od5ZvQAfdET4H0pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "node_modules/jest-cli/node_modules/yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/jest-config": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", + "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^21.2.1", + "jest-environment-node": "^21.2.1", + "jest-get-type": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "jest-validate": "^21.2.1", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-config/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-diff": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", + "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-diff/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-environment-jsdom": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", + "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1", + "jsdom": "^9.12.0" + } + }, + "node_modules/jest-environment-node": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", + "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-mock": "^21.2.0", + "jest-util": "^21.2.1" + } + }, + "node_modules/jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", + "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-haste-map": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", + "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-docblock": "^21.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0", + "worker-farm": "^1.3.1" + } + }, + "node_modules/jest-haste-map/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-jasmine2": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", + "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1", + "expect": "^21.2.1", + "graceful-fs": "^4.1.11", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-snapshot": "^21.2.1", + "p-cancelable": "^0.3.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-jasmine2/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-7.0.0.tgz", + "integrity": "sha512-ljUdO0hLyu0A92xk7R2Wet3kj99fmazTo+ZFYQP6b7AGOBxJUj8ZkJWzJ632ajpXko2Y5oNoGR2kvOwiDdu6hg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jest-validate": "^24.0.0", + "mkdirp": "^0.5.1", + "strip-ansi": "^4.0.0", + "xml": "^1.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/jest-junit/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-junit/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-junit/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-junit/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/jest-get-type": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/jest-validate": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", + "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-junit/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/jest-junit/node_modules/pretty-format": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", + "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-junit/node_modules/pretty-format/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-junit/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-junit/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-matcher-utils": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", + "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-matcher-utils/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-message-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", + "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-message-util/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-message-util/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-message-util/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-mock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", + "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-regex-util": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", + "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-resolve": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", + "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", + "dev": true, + "license": "MIT", + "dependencies": { + "browser-resolve": "^1.11.2", + "chalk": "^2.0.1", + "is-builtin-module": "^1.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", + "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-regex-util": "^21.2.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-resolve/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runner": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", + "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-config": "^21.2.1", + "jest-docblock": "^21.2.0", + "jest-haste-map": "^21.2.0", + "jest-jasmine2": "^21.2.1", + "jest-message-util": "^21.2.1", + "jest-runtime": "^21.2.1", + "jest-util": "^21.2.1", + "pify": "^3.0.0", + "throat": "^4.0.0", + "worker-farm": "^1.3.1" + } + }, + "node_modules/jest-runtime": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", + "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-core": "^6.0.0", + "babel-jest": "^21.2.0", + "babel-plugin-istanbul": "^4.0.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "graceful-fs": "^4.1.11", + "jest-config": "^21.2.1", + "jest-haste-map": "^21.2.0", + "jest-regex-util": "^21.2.0", + "jest-resolve": "^21.2.0", + "jest-util": "^21.2.1", + "json-stable-stringify": "^1.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "^2.1.0", + "yargs": "^9.0.0" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/jest-runtime/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/jest-runtime/node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/cliui/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-runtime/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-runtime/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/jest-runtime/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-runtime/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-runtime/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jest-runtime/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha512-3p6ZOGNbiX4CdvEd1VcE6yi78UrGNpjHO33noGwHCnT/o2fyllJDepsm8+mFFv/DvtwFHht5HIHSyOy5a+ChVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-runtime/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/jest-runtime/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha512-dUnb5dXUf+kzhC/W/F4e5/SkluXIFf5VUHolW1Eg1irn1hGWjPGdsRcvYJ1nD6lhk8Ir7VM0bHJKsYTx8Jx9OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha512-eFIBOPW7FGjzBuk3hdXEuNSiTZS/xEMlH49HxMyzb0hyPfu4EhVjT2DH32K1hSSmVq4sebAWnZuuY5auISUTGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha512-1orxQfbWGUiTn9XsPlChs6rLie/AV9jwZTGmu2NZw/CUDJQchXJFYE0Fq5j7+n558T1JhDWLdhyd1Zj+wLY//w==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jest-runtime/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==", + "dev": true, + "license": "MIT", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/jest-runtime/node_modules/yargs": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", + "integrity": "sha512-XS0NJoM9Iz0azh1cdgfLF5VFK6BSWfrrqA0V2tIx3fV6aGrWCseVDwOkIBg746ev0hes59od5ZvQAfdET4H0pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha512-WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/jest-snapshot": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", + "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1", + "jest-diff": "^21.2.1", + "jest-matcher-utils": "^21.2.1", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-snapshot/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-snapshot/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-util": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", + "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "jest-message-util": "^21.2.1", + "jest-mock": "^21.2.0", + "jest-validate": "^21.2.1", + "mkdirp": "^0.5.1" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-util/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-util/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", + "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-validate/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "license": "BSD-3-Clause" + }, + "node_modules/js-md5": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", + "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "license": "MIT" + }, + "node_modules/jsdom": { + "version": "9.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", + "integrity": "sha512-Qw4oqNxo4LyzkSqVIyCnEltTc4xV3g1GBaI88AvYTesWzmWHUSoMNmhBjUBa+6ldXIBJS9xoeLNJPfUAykTyxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "abab": "^1.0.3", + "acorn": "^4.0.4", + "acorn-globals": "^3.1.0", + "array-equal": "^1.0.0", + "content-type-parser": "^1.0.1", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": ">= 0.2.37 < 0.3.0", + "escodegen": "^1.6.1", + "html-encoding-sniffer": "^1.0.1", + "nwmatcher": ">= 1.3.9 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.79.0", + "sax": "^1.2.1", + "symbol-tree": "^3.2.1", + "tough-cookie": "^2.3.2", + "webidl-conversions": "^4.0.0", + "whatwg-encoding": "^1.0.1", + "whatwg-url": "^4.3.0", + "xml-name-validator": "^2.0.1" + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha512-fu2ygVGuMmlzG8ZeRJ0bvR41nsAkxxhbyk8bZ1SS521Z7vmgJFTQQlfz/Mp/nJexGBz+v8sC9bM6+lNgskt4Ug==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsdom/node_modules/parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha512-w2jx/0tJzvgKwZa58sj2vAYq/S/K1QJfIB3cWYea/Iu1scFPDQQ3IQiVZTHWtRBwAjv2Yd7S/xeZf3XqLDb3bA==", + "dev": true + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json-stable-stringify": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz", + "integrity": "sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "dev": true, + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "license": "MIT", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/keymirror": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/keymirror/-/keymirror-0.1.1.tgz", + "integrity": "sha512-vIkZAFWoDijgQT/Nvl2AHCMmnegN2ehgTPYuyy2hWQkQSntI0S7ESYqdLkoSe1HyEBFHHkCgSIvVdSEiWwKvCg==" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/launch-editor": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.12.0.tgz", + "integrity": "sha512-giOHXoOtifjdHqUamwKq6c49GzBdLjvxrd2D+Q4V6uOHopJv7p9VJxikDsQ/CBXZbEITgUqSVHXLTG3VhPP1Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/linebreak": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", + "integrity": "sha512-zt8pzlM3oq4moDN8U5mP1SbZ44yKV6dXCu44Ez6iTXmxUl8/jRFWeho2SDqL5YDBv0TBKPgU/XGovZwnXAKlOQ==", + "license": "MIT", + "dependencies": { + "base64-js": "0.0.8", + "brfs": "^1.3.0", + "unicode-trie": "^0.3.0" + } + }, + "node_modules/linebreak/node_modules/base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "license": "MIT", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-runner": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", + "license": "MIT" + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", + "license": "MIT" + }, + "node_modules/lodash.bindall": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.bindall/-/lodash.bindall-4.4.0.tgz", + "integrity": "sha512-NQ+QvFohS2gPbWpyLfyuiF0ZQA3TTaJ+n0XDID5jwtMZBKE32gN5vSyy7xBVsqvJkvT/UY9dvHXIk9tZmBVF3g==", + "license": "MIT" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.capitalize": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz", + "integrity": "sha512-kZzYOKspf8XVX5AvmQF94gQW0lejFVgb80G85bU4ZWzoJ6C03PQg3coYAUpSTpQWelrZELd3XWgHzw4Ck5kaIw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" + }, + "node_modules/lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", + "license": "MIT" + }, + "node_modules/lodash.escape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", + "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.flattendeep": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", + "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "deprecated": "This package is deprecated. Use destructuring assignment syntax instead.", + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", + "license": "MIT" + }, + "node_modules/lodash.unescape": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", + "integrity": "sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniqby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz", + "integrity": "sha512-e/zcLx6CSbmaEgFHCA7BnoQKyCtKMxnuWrJygbwPs/AIn+IMKl66L8/s+wBUn5LRw2pZx3bUHibiV1b6aTWIww==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lookup-closest-locale": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", + "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==", + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "license": "MIT", + "dependencies": { + "vlq": "^0.2.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true, + "license": "ISC" + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-limit": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", + "integrity": "sha512-pJpcfLPnIF/Sk3taPW21G/RQsEEirGaFpCW3oXRwH9dnFHPHNGjNyvh++rdmC2fNqEaTw2MhYJraoJWAHx8kEg==", + "license": "MIT", + "dependencies": { + "once": "~1.3.0" + } + }, + "node_modules/map-limit/node_modules/once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha512-6vaNInhu+CHxtONf3zw3vq4SP2DOQhjBvIa3rNcG0+P7eKWlYH6Peu7rHizSloRU2EwMz6GraLieis9Ac9+p1w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/marked-terminal": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-5.2.0.tgz", + "integrity": "sha512-Piv6yNwAQXGFjZSaiNljyNFw7jKDdGrw70FSbtxEyldLsyeuV5ZHm/1wW++kWbrOF1VPnUgYOhB2oLL0ZpnekA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^6.2.0", + "cardinal": "^2.1.1", + "chalk": "^5.2.0", + "cli-table3": "^0.6.3", + "node-emoji": "^1.11.0", + "supports-hyperlinks": "^2.3.0" + }, + "engines": { + "node": ">=14.13.1 || >=16.0.0" + }, + "peerDependencies": { + "marked": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/marked-terminal/node_modules/ansi-escapes": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.1.tgz", + "integrity": "sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/marked-terminal/node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/matchmediaquery": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.1.tgz", + "integrity": "sha512-Hlk20WQHRIm9EE9luN1kjRjYXAQToHOIAHPJn9buxBwuhfTHoKUcX+lXBbxc85DVQfXYbEQ4HcwQdd128E3qHQ==", + "license": "MIT", + "dependencies": { + "css-mediaquery": "^0.1.2" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true, + "license": "MIT" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha512-nOBDrc/wgpkd3X/JOhMqYR+/eLqlfLP4oQfoBA6QExIxEl+GU01oyEkwWyueyO8110pUKijtiHGhEmYoOn88oQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/memfs": { + "version": "4.50.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.50.0.tgz", + "integrity": "sha512-N0LUYQMUA1yS5tJKmMtU9yprPm6ZIg24yr/OVv/7t6q0kKDIho4cBbXRi1XKttUmNYDYgF/q45qrKE/UhGO0CA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "node_modules/memory-fs": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", + "integrity": "sha512-+y4mDxU4rvXXu5UDSGCGNiesFmwCHuefGMoPCO1WYucNYj7DsLqrFaa2fXVI0H+NNiPTwwzKwspn9yTZqUGqng==", + "dev": true, + "license": "MIT" + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "license": "MIT", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/microee": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", + "integrity": "sha512-/LdL3jiBWDJ3oQIRLgRhfeCZNE3patM1LiwCC124+/HHn10sI/G2OAyiMfTNzH5oYWoZBk0tRZADAUOv+0Wt0A==", + "license": "BSD" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.1.tgz", + "integrity": "sha512-8lqe85PkqQJzIcs2iD7xW/WSxcncC3/DPVbTOafKNJDIMXwGfwXS350mH4SJslomntN2iYtFBuC0yNO3CEap6g==", + "license": "MIT", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minilog": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", + "integrity": "sha512-Xfm4jWjWzSAduvEWtuZX/8TMkxfJlCfH7XvikCZe3ptojYTBq1eoEs3rh9/3LNLOckUP86m+8l8+Iw5NU/pBww==", + "license": "MIT", + "dependencies": { + "microee": "0.0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true, + "license": "ISC" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", + "integrity": "sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==", + "license": "MIT" + }, + "node_modules/mocha": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "license": "MIT", + "dependencies": { + "browser-stdout": "1.3.0", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.3.1", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "license": "MIT" + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mocha/node_modules/diff": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha512-P+1n3MnwjR/Epg9BBo1KT8qbye2g2Ou4sFumihwt6I4tsUX7jnLcX4BTOSKg/B1ZrIYMN9FcEnG4x5a7NB8Eng==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha/node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha512-z/GDPjlRMNOa2XJiB4em8wJpuuBfrFOlYKTZxtpkdr1uPdibHI8rYA3MY0KDObpVyaes0e/aunid/t88ZI2EKA==", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==", + "license": "MIT" + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "license": "MIT", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "license": "MIT", + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multipipe": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz", + "integrity": "sha512-ZUcepNdMeKBRn/ksm2XTxFnhBaqnBJSZNqwajmiem6b7Rp3fNAAq+twYn3kqw9YMY7HJuc7I7OObX9cMgB1ANg==", + "license": "MIT", + "dependencies": { + "duplexer2": "^0.1.2" + } + }, + "node_modules/nan": { + "version": "2.23.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.23.1.tgz", + "integrity": "sha512-r7bBUGKzlqk8oPBDYxt6Z0aEdF1G1rwlMcLk8LCOMbOzf0mG+JUfUzG4fIMWwHWP0iyaLWEQZJmtB7nOHEm/qw==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, + "node_modules/nearley/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" + }, + "node_modules/nerf-dart": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz", + "integrity": "sha512-EZSPZB70jiVsivaBLYDCyntd5eH8NTSMOn3rB+HxwdmKThGELLdYv8qVIMWvZEFy9w8ZZpW9h9OB32l1rGtj7g==", + "dev": true, + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-libs-browser/node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/node-libs-browser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/node-notifier": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz", + "integrity": "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "node_modules/node-notifier/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/node-notifier/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "license": "MIT" + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm": { + "version": "8.19.4", + "resolved": "https://registry.npmjs.org/npm/-/npm-8.19.4.tgz", + "integrity": "sha512-3HANl8i9DKnUA89P4KEgVNN28EjSeDCmvEqbzOAuxCFDzdBZzjUl99zgnGpOUumvW5lvJo2HKcjrsc+tfyv1Hw==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/ci-detect", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/run-script", + "abbrev", + "archy", + "cacache", + "chalk", + "chownr", + "cli-columns", + "cli-table3", + "columnify", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "mkdirp", + "mkdirp-infer-owner", + "ms", + "node-gyp", + "nopt", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "npmlog", + "opener", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "read-package-json", + "read-package-json-fast", + "readdir-scoped-modules", + "rimraf", + "semver", + "ssri", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dev": true, + "license": "Artistic-2.0", + "workspaces": [ + "docs", + "smoke-tests", + "workspaces/*" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^5.6.3", + "@npmcli/ci-detect": "^2.0.0", + "@npmcli/config": "^4.2.1", + "@npmcli/fs": "^2.1.0", + "@npmcli/map-workspaces": "^2.0.3", + "@npmcli/package-json": "^2.0.0", + "@npmcli/run-script": "^4.2.1", + "abbrev": "~1.1.1", + "archy": "~1.0.0", + "cacache": "^16.1.3", + "chalk": "^4.1.2", + "chownr": "^2.0.0", + "cli-columns": "^4.0.0", + "cli-table3": "^0.6.2", + "columnify": "^1.6.0", + "fastest-levenshtein": "^1.0.12", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "graceful-fs": "^4.2.10", + "hosted-git-info": "^5.2.1", + "ini": "^3.0.1", + "init-package-json": "^3.0.2", + "is-cidr": "^4.0.2", + "json-parse-even-better-errors": "^2.3.1", + "libnpmaccess": "^6.0.4", + "libnpmdiff": "^4.0.5", + "libnpmexec": "^4.0.14", + "libnpmfund": "^3.0.5", + "libnpmhook": "^8.0.4", + "libnpmorg": "^4.0.4", + "libnpmpack": "^4.1.3", + "libnpmpublish": "^6.0.5", + "libnpmsearch": "^5.0.4", + "libnpmteam": "^4.0.4", + "libnpmversion": "^3.0.7", + "make-fetch-happen": "^10.2.0", + "minimatch": "^5.1.0", + "minipass": "^3.1.6", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "mkdirp-infer-owner": "^2.0.0", + "ms": "^2.1.2", + "node-gyp": "^9.1.0", + "nopt": "^6.0.0", + "npm-audit-report": "^3.0.0", + "npm-install-checks": "^5.0.0", + "npm-package-arg": "^9.1.0", + "npm-pick-manifest": "^7.0.2", + "npm-profile": "^6.2.0", + "npm-registry-fetch": "^13.3.1", + "npm-user-validate": "^1.0.1", + "npmlog": "^6.0.2", + "opener": "^1.5.2", + "p-map": "^4.0.0", + "pacote": "^13.6.2", + "parse-conflict-json": "^2.0.2", + "proc-log": "^2.0.1", + "qrcode-terminal": "^0.12.0", + "read": "~1.0.7", + "read-package-json": "^5.0.2", + "read-package-json-fast": "^2.0.3", + "readdir-scoped-modules": "^1.1.0", + "rimraf": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^9.0.1", + "tar": "^6.1.11", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^2.0.0", + "validate-npm-package-name": "^4.0.0", + "which": "^2.0.2", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "license": "ISC" + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/@colors/colors": { + "version": "1.5.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/npm/node_modules/@gar/promisify": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "5.6.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/map-workspaces": "^2.0.3", + "@npmcli/metavuln-calculator": "^3.0.1", + "@npmcli/move-file": "^2.0.0", + "@npmcli/name-from-folder": "^1.0.1", + "@npmcli/node-gyp": "^2.0.0", + "@npmcli/package-json": "^2.0.0", + "@npmcli/query": "^1.2.0", + "@npmcli/run-script": "^4.1.3", + "bin-links": "^3.0.3", + "cacache": "^16.1.3", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^5.2.1", + "json-parse-even-better-errors": "^2.3.1", + "json-stringify-nice": "^1.1.4", + "minimatch": "^5.1.0", + "mkdirp": "^1.0.4", + "mkdirp-infer-owner": "^2.0.0", + "nopt": "^6.0.0", + "npm-install-checks": "^5.0.0", + "npm-package-arg": "^9.0.0", + "npm-pick-manifest": "^7.0.2", + "npm-registry-fetch": "^13.0.0", + "npmlog": "^6.0.2", + "pacote": "^13.6.1", + "parse-conflict-json": "^2.0.1", + "proc-log": "^2.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^1.0.1", + "read-package-json-fast": "^2.0.2", + "readdir-scoped-modules": "^1.1.0", + "rimraf": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^9.0.0", + "treeverse": "^2.0.0", + "walk-up-path": "^1.0.0" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/ci-detect": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "4.2.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^2.0.2", + "ini": "^3.0.0", + "mkdirp-infer-owner": "^2.0.0", + "nopt": "^6.0.0", + "proc-log": "^2.0.0", + "read-package-json-fast": "^2.0.3", + "semver": "^7.3.5", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/disparity-colors": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "ansi-styles": "^4.3.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^3.0.0", + "lru-cache": "^7.4.4", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^7.0.0", + "proc-log": "^2.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents/node_modules/npm-bundled": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^1.0.1", + "glob": "^8.0.1", + "minimatch": "^5.0.1", + "read-package-json-fast": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^16.0.0", + "json-parse-even-better-errors": "^2.3.1", + "pacote": "^13.0.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "infer-owner": "^1.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "1.2.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^9.1.0", + "postcss-selector-parser": "^6.0.10", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^2.0.0", + "@npmcli/promise-spawn": "^3.0.0", + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3", + "which": "^2.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/@tootallnate/once": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/agent-base": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/npm/node_modules/agentkeepalive": { + "version": "4.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/are-we-there-yet": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/asap": { + "version": "2.0.6", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "3.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^5.0.0", + "mkdirp-infer-owner": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0", + "read-cmd-shim": "^3.0.0", + "rimraf": "^3.0.0", + "write-file-atomic": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/bin-links/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/builtins": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "16.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "4.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^4.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cli-table3": { + "version": "0.6.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/npm/node_modules/clone": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mkdirp-infer-owner": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/color-support": { + "version": "1.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/npm/node_modules/columnify": { + "version": "1.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/concat-map": { + "version": "0.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/console-control-strings": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/debuglog": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/defaults": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/npm/node_modules/delegates": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/depd": { + "version": "1.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/dezalgo": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/diff": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.12", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "2.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/fs.realpath": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/function-bind": { + "version": "1.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/gauge": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "8.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.10", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/has": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/npm/node_modules/has-flag": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/has-unicode": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "5.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/humanize-ms": { + "version": "1.2.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "5.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^5.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/infer-owner": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/inflight": { + "version": "1.0.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/inherits": { + "version": "2.0.4", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/ini": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^9.0.1", + "promzard": "^0.3.0", + "read": "^1.0.7", + "read-package-json": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/ip": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "4.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^3.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/is-core-module": { + "version": "2.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "5.1.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.4.1", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "6.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "minipass": "^3.1.1", + "npm-package-arg": "^9.0.1", + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "4.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/disparity-colors": "^2.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "binary-extensions": "^2.2.0", + "diff": "^5.1.0", + "minimatch": "^5.0.1", + "npm-package-arg": "^9.0.1", + "pacote": "^13.6.1", + "tar": "^6.1.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "4.0.14", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^5.6.3", + "@npmcli/ci-detect": "^2.0.0", + "@npmcli/fs": "^2.1.1", + "@npmcli/run-script": "^4.2.0", + "chalk": "^4.1.0", + "mkdirp-infer-owner": "^2.0.0", + "npm-package-arg": "^9.0.1", + "npmlog": "^6.0.2", + "pacote": "^13.6.1", + "proc-log": "^2.0.0", + "read": "^1.0.7", + "read-package-json-fast": "^2.0.2", + "semver": "^7.3.7", + "walk-up-path": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "3.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^5.6.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "8.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "4.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/run-script": "^4.1.3", + "npm-package-arg": "^9.0.1", + "pacote": "^13.6.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "6.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "normalize-package-data": "^4.0.0", + "npm-package-arg": "^9.0.1", + "npm-registry-fetch": "^13.0.0", + "semver": "^7.3.7", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "5.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "4.0.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^13.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "3.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^3.0.0", + "@npmcli/run-script": "^4.1.3", + "json-parse-even-better-errors": "^2.3.1", + "proc-log": "^2.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "7.13.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "10.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "5.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "3.3.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "2.1.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-json-stream": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/mkdirp-infer-owner": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "infer-owner": "^1.0.4", + "mkdirp": "^1.0.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "0.0.8", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "9.1.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.22 || ^14.13 || >=16" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/node-gyp/node_modules/nopt": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "4.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "5.0.0", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "9.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "5.1.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "7.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^5.0.0", + "npm-normalize-package-bin": "^2.0.0", + "npm-package-arg": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "6.2.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "13.3.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "make-fetch-happen": "^10.0.6", + "minipass": "^3.1.6", + "minipass-fetch": "^2.0.3", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^9.0.1", + "proc-log": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/npmlog": { + "version": "6.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/once": { + "version": "1.4.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/npm/node_modules/opener": { + "version": "1.5.2", + "dev": true, + "inBundle": true, + "license": "(WTFPL OR MIT)", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/pacote": { + "version": "13.6.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^3.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/run-script": "^4.1.0", + "cacache": "^16.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.6", + "mkdirp": "^1.0.4", + "npm-package-arg": "^9.0.0", + "npm-packlist": "^5.1.0", + "npm-pick-manifest": "^7.0.0", + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^5.0.0", + "read-package-json-fast": "^2.0.3", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "2.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.1", + "just-diff": "^5.0.1", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/path-is-absolute": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "0.3.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "1" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "1.0.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "3.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json": { + "version": "5.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^8.0.1", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "2.0.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/read-package-json/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/readable-stream": { + "version": "3.6.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/npm/node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/rimraf": { + "version": "3.0.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/npm/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/npm/node_modules/safe-buffer": { + "version": "5.2.1", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.3.7", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "3.0.7", + "dev": true, + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.7.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "7.0.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.1.1", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.3.0", + "dev": true, + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.11", + "dev": true, + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/ssri": { + "version": "9.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm/node_modules/string_decoder": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "7.2.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/npm/node_modules/tar": { + "version": "6.1.11", "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" } }, - "format-message": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/format-message/-/format-message-6.2.1.tgz", - "integrity": "sha512-6gBXI+MOE9pu9QNeZf95V87GKYiLCdUvhisjts75xonaPAshtBu20NTZt2l8kbYcoMtxNyH9E9af+aieIRfVmw==", + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", "dev": true, - "requires": { - "format-message-formats": "^6.2.0", - "format-message-interpret": "^6.2.0", - "format-message-parse": "^6.2.0", - "lookup-closest-locale": "^6.2.0" + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "dev": true, + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "2.0.0", + "dev": true, + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "format-message-formats": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/format-message-formats/-/format-message-formats-6.2.0.tgz", - "integrity": "sha512-QP0dl1O9P3fDCG5klj101nfizgiWiv0T+DMNBqwi25FvB1LIenQQW4PpULk5zO5PiOSvmMu5pW4HS542kJRAww==", - "dev": true + "node_modules/npm/node_modules/unique-filename": { + "version": "2.0.1", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } }, - "format-message-interpret": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/format-message-interpret/-/format-message-interpret-6.2.3.tgz", - "integrity": "sha512-OoOdB5yHLzW89RwDQW4fj+8p2Eay9Dtmx4B7Tz8C/QQl/j+aVjy65A5xasQhQD+4JumYU/OxMBdjYzBSR8+ivA==", + "node_modules/npm/node_modules/unique-slug": { + "version": "3.0.0", "dev": true, - "requires": { - "format-message-formats": "^6.2.0", - "lookup-closest-locale": "^6.2.0" + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "format-message-parse": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.3.tgz", - "integrity": "sha512-ZSL3nZ0zaDktDAGwkoGJ439rS9ZfTcMOrWAVav9BOAoKs0qE2Ozal2H6vVJOuIdDhwaJuFqvJ7fdRSE+qR5oNg==", - "dev": true + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "MIT" }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "dev": true, + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "4.0.0", "dev": true, - "requires": { - "map-cache": "^0.2.2" + "inBundle": true, + "license": "ISC", + "dependencies": { + "builtins": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "node_modules/npm/node_modules/walk-up-path": { + "version": "1.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "node_modules/npm/node_modules/wcwidth": { + "version": "1.0.1", "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "inBundle": true, + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" } }, - "from2-array": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz", - "integrity": "sha1-6vwWtl9uJxm81X/cGGkAWsEzLNY=", + "node_modules/npm/node_modules/which": { + "version": "2.0.2", "dev": true, - "requires": { - "from2": "^2.0.3" + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/npm/node_modules/wide-align": { + "version": "1.1.5", "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" } }, - "fs-readdir-recursive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", - "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", - "dev": true + "node_modules/npm/node_modules/wrappy": { + "version": "1.0.2", + "dev": true, + "inBundle": true, + "license": "ISC" }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "node_modules/npm/node_modules/write-file-atomic": { + "version": "4.0.2", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", + "inBundle": true, + "license": "ISC", + "dependencies": { "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "dev": true, + "inBundle": true, + "license": "ISC" }, - "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, - "optional": true, - "requires": { - "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", + "license": "MIT" + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "license": "Apache-2.0", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "license": "MIT", "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": false, - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": false, - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": false, - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": false, - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": false, - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true, - "optional": true - }, - "debug": { - "version": "4.1.1", - "resolved": false, - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": false, - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": false, - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": false, - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "resolved": false, - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.3", - "resolved": false, - "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, - "optional": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": false, - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.1", - "resolved": false, - "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", - "dev": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": false, - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": false, - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "resolved": false, - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": false, - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "resolved": false, - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "0.0.8", - "resolved": false, - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true - }, - "minipass": { - "version": "2.3.5", - "resolved": false, - "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.2.1", - "resolved": false, - "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^2.2.1" - } - }, - "mkdirp": { - "version": "0.5.1", - "resolved": false, - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "optional": true, - "requires": { - "minimist": "0.0.8" - } - }, - "ms": { - "version": "2.1.1", - "resolved": false, - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true, - "optional": true - }, - "needle": { - "version": "2.3.0", - "resolved": false, - "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==", - "dev": true, - "optional": true, - "requires": { - "debug": "^4.1.0", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.12.0", - "resolved": false, - "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==", - "dev": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, - "nopt": { - "version": "4.0.1", - "resolved": false, - "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", - "dev": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.0.6", - "resolved": false, - "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", - "dev": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.1", - "resolved": false, - "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", - "dev": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": false, - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": false, - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": false, - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "resolved": false, - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": false, - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "resolved": false, - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": false, - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.3.6", - "resolved": false, - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "rimraf": { - "version": "2.6.3", - "resolved": false, - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": false, - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": false, - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "resolved": false, - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true, - "optional": true - }, - "semver": { - "version": "5.7.0", - "resolved": false, - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "resolved": false, - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "resolved": false, - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": false, - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": false, - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": false, - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "optional": true - }, - "tar": { - "version": "4.4.8", - "resolved": false, - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "resolved": false, - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": false, - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "optional": true - }, - "yallist": { - "version": "3.0.3", - "resolved": false, - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true, - "optional": true - } + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "function.prototype.name": { + "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.1.tgz", - "integrity": "sha512-e1NzkiJuw6xqVH7YSdiW/qDHebcmMhPNe6w+4ZYYEg0VA+LaLzx37RimbPLuonHhYGFGPx1ME2nSi74JiaCr/Q==", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1", - "functions-have-names": "^1.1.1", - "is-callable": "^1.1.4" + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "functional-red-black-tree": { + "node_modules/object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "functions-have-names": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.1.1.tgz", - "integrity": "sha512-U0kNHUoxwPNPWOJaMG7Z00d4a/qZVrFtzWJRaK8V9goaVOCXBSQSJpt3MYGNtkScKEBKovxLjnNdC9MlXwo5Pw==", - "dev": true + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } }, - "get-caller-file": { + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "get-float-time-domain-data": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-float-time-domain-data/-/get-float-time-domain-data-0.1.0.tgz", - "integrity": "sha1-XYVZJKQwOITJY4qrEnzOTQBlljs=", - "dev": true + "node_modules/object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", + "dev": true, + "license": "MIT", + "dependencies": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } }, - "get-user-media-promise": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/get-user-media-promise/-/get-user-media-promise-1.1.4.tgz", - "integrity": "sha512-k49YuV2z0d3gKHLPTFKYfzEA9kduuQk7YBf8ev2dxrKk+DhMyuzfQnK9ZSxkEhE/jv3BZY62M0eICWa7lak9nw==", - "dev": true + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true, + "license": "MIT" }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "node_modules/omggif": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", + "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, - "requires": { - "assert-plus": "^1.0.0" + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "gh-pages": { - "version": "github:rschamp/gh-pages#47e5e5c376ca65f4b407325e115174172d9c12ae", - "from": "github:rschamp/gh-pages#publish-branch-to-subfolder", - "dev": true, - "requires": { - "async": "2.1.2", - "commander": "2.9.0", - "globby": "^6.1.0", - "graceful-fs": "4.1.10", - "q": "1.4.1", - "q-io": "1.13.2", - "rimraf": "^2.5.4" - }, - "dependencies": { - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "graceful-fs": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.10.tgz", - "integrity": "sha1-8tcgwiCS90Mih3XHXjYSYyUB8TE=", - "dev": true - } + "node_modules/on-headers": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", "dev": true, - "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", "dependencies": { - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true, - "requires": { - "is-glob": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true, + "license": "MIT" + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "node_modules/os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" + "license": "MIT", + "dependencies": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dev": true, - "requires": { - "global-prefix": "^3.0.0" - }, - "dependencies": { - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - } + "node_modules/os-locale/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "node_modules/os-locale/node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" + "license": "MIT", + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "node_modules/os-locale/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "node_modules/os-locale/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "license": "ISC", "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", - "dev": true + "node_modules/os-locale/node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true + "node_modules/os-locale/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "grapheme-breaker": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz", - "integrity": "sha1-W55reMODJFLSuiuxy4MPlidkEKw=", + "node_modules/os-locale/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", "dev": true, - "requires": { - "brfs": "^1.2.0", - "unicode-trie": "^0.3.1" + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "growl": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", - "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", - "dev": true + "node_modules/os-locale/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true + "node_modules/os-locale/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } }, - "handle-thing": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.0.tgz", - "integrity": "sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==", - "dev": true + "node_modules/os-locale/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true, + "license": "ISC" }, - "handlebars": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.4.3.tgz", - "integrity": "sha512-B0W4A2U1ww3q7VVthTKfh+epHx+q4mCt6iK+zEAzbMBpWQAwxCeKxEGpj/1oQTpzPXDNSOG7hmG14TsISH50yw==", + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, - "requires": { - "neo-async": "^2.6.0", - "optimist": "^0.6.1", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4" + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "dev": true, - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "node_modules/p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "license": "MIT", + "dependencies": { + "p-timeout": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", "dev": true, - "requires": { - "function-bind": "^1.1.1" + "license": "MIT", + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "node_modules/p-filter/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, - "requires": { - "ansi-regex": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "has-cors": { + "node_modules/p-is-promise": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha512-zL7VE4JVS2IFSkR2GQKDSPEVxkoH43/p7oEnwpdCndKYJO0HVeRB7fA8TJwuLOTBREtK0ea8eHaxdwcpob5dmg==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", - "dev": true + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "node_modules/p-retry": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "license": "MIT", "dependencies": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "p-finally": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/papaparse": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==", + "license": "MIT" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hmac-drbg": { + "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "hoist-non-react-statics": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz", - "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==", - "dev": true, - "requires": { - "react-is": "^16.7.0" + "node_modules/parent-module/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "home-or-tmp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "node_modules/parse-asn1": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz", + "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.1" + "license": "ISC", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "pbkdf2": "^3.1.5", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "requires": { - "parse-passwd": "^1.0.0" + "node_modules/parse-color": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", + "integrity": "sha512-fuDHYgFHJGbpGMgw9skY/bj3HL/Jrn4l/5rSspy00DoT4RyLnDcRvPxdZ+r6OFwIsgAuhDh4I09tAId4mI12bw==", + "license": "MIT", + "dependencies": { + "color-convert": "~0.5.0" } }, - "hosted-git-info": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", - "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", - "dev": true + "node_modules/parse-color/node_modules/color-convert": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", + "integrity": "sha512-RwBeO/B/vZR3dfKL1ye/vx8MHZ40ugzpyfeVG5GsiuGnrlMWe2o8wxBbLCpw9CsxV+wHuzYlCiWnybrIA0ling==" }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "node_modules/parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "license": "MIT", + "dependencies": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "html-element-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.1.0.tgz", - "integrity": "sha512-iqiG3dTZmy+uUaTmHarTL+3/A2VW9ox/9uasKEZC+R/wAtUrTcRlXPSaPqsnWPfIu8wqn09jQNwMRqzL54jSYA==", + "node_modules/parse-glob/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, - "requires": { - "array-filter": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "html-encoding-sniffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", - "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "node_modules/parse-glob/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, - "requires": { - "whatwg-encoding": "^1.0.1" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "html-minifier": { - "version": "3.5.21", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", - "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", - "dev": true, - "requires": { - "camel-case": "3.0.x", - "clean-css": "4.2.x", - "commander": "2.17.x", - "he": "1.2.x", - "param-case": "2.1.x", - "relateurl": "0.2.x", - "uglify-js": "3.4.x" - }, - "dependencies": { - "commander": { - "version": "2.17.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", - "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", - "dev": true - } + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "html-webpack-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", - "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", - "dev": true, - "requires": { - "html-minifier": "^3.2.3", - "loader-utils": "^0.2.16", - "lodash": "^4.17.3", - "pretty-error": "^2.0.2", - "tapable": "^1.0.0", - "toposort": "^1.0.0", - "util.promisify": "1.0.0" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - } + "node_modules/parse-headers": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.6.tgz", + "integrity": "sha512-Tz11t3uKztEW5FEVZnj1ox8GKblWn+PvHY9TmJV5Mll2uHEwRdR/5Li1OlXoECjLYkApdhWy44ocONwXLiKO5A==", + "license": "MIT" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "node_modules/parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, + "license": "MIT", "dependencies": { - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "@types/node": "*" } }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, + "license": "MIT", "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", - "dev": true - }, - "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true, - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, - "hull.js": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/hull.js/-/hull.js-0.2.10.tgz", - "integrity": "sha1-LT44P26Hk9TsdDVakrfaLrit41s=", - "dev": true + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "dev": true, + "license": "MIT" }, - "hyphenate-style-name": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz", - "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ==", - "dev": true + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" + } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/pbkdf2": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", + "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "license": "MIT", + "dependencies": { + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "ripemd160": "^2.0.3", + "safe-buffer": "^5.2.1", + "sha.js": "^2.4.12", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", - "dev": true + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" }, - "icss-utils": { + "node_modules/performance-now": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "dev": true, - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "license": "MIT" }, - "ify-loader": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/ify-loader/-/ify-loader-1.0.4.tgz", - "integrity": "sha1-fpGe6A3RBYv9Q508GPY8CKixayo=", - "dev": true, - "requires": { - "bl": "^1.0.0", - "findup": "^0.1.5", - "from2-array": "0.0.4", - "map-limit": "0.0.1", - "multipipe": "^0.3.0", - "read-package-json": "^2.0.2", - "resolve": "^1.1.6" + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "immutable": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", - "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", - "dev": true + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "requires": { - "import-from": "^2.1.0" + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "license": "MIT", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "import-fresh": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", - "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "node_modules/pkg-conf": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz", + "integrity": "sha512-C+VUP+8jis7EsQZIhDYmS5qlNtjv2yP4SNtjXK9AP1ZcTRlnSfuumaTnRfYZnYgUUYVIKqL0fRvmUGDV2fmp6g==", "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "license": "MIT", + "dependencies": { + "find-up": "^2.0.0", + "load-json-file": "^4.0.0" + }, + "engines": { + "node": ">=4" } }, - "import-from": { + "node_modules/pkg-conf/node_modules/find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "import-local": { + "node_modules/pkg-conf/node_modules/locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "license": "MIT", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "imports-loader": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz", - "integrity": "sha1-rnRlMDHVnjezwvslRKxhrq41MKY=", + "node_modules/pkg-conf/node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, - "requires": { - "loader-utils": "0.2.x", - "source-map": "0.1.x" - }, + "license": "MIT", "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" - } - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "node_modules/pkg-conf/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "license": "MIT", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "node_modules/pkg-conf/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", "dev": true, - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "interpret": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", - "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", - "dev": true + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "intl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", - "integrity": "sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=", - "dev": true + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "intl-format-cache": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/intl-format-cache/-/intl-format-cache-2.2.9.tgz", - "integrity": "sha512-Zv/u8wRpekckv0cLkwpVdABYST4hZNTDaX7reFetrYTJwxExR2VyTqQm+l0WmL0Qo8Mjb9Tf33qnfj0T7pjxdQ==", - "dev": true + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "intl-messageformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-2.2.0.tgz", - "integrity": "sha1-NFvNRt5jC3aDMwwuUhd/9eq0hPw=", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, - "requires": { - "intl-messageformat-parser": "1.4.0" + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "intl-messageformat-parser": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.4.0.tgz", - "integrity": "sha1-tD1FqXRoytvkQzHXS7Ho3qRPwHU=", - "dev": true + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } }, - "intl-relativeformat": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/intl-relativeformat/-/intl-relativeformat-2.2.0.tgz", - "integrity": "sha512-4bV/7kSKaPEmu6ArxXf9xjv1ny74Zkwuey8Pm01NH4zggPP7JHwg2STk8Y3JdspCKRDriwIyLRfEXnj2ZLr4Bw==", + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", "dev": true, - "requires": { - "intl-messageformat": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true, - "requires": { - "loose-envify": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true + "node_modules/postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true + "node_modules/postcss-import/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "node_modules/postcss-import/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } }, - "ipaddr.js": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", - "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", - "dev": true + "node_modules/postcss-import/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "license": "MIT" }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true + "node_modules/postcss-import/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, + "node_modules/postcss-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.3.0.tgz", + "integrity": "sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==", + "license": "MIT", "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^4.0.0 || ^5.0.0" } }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "node_modules/postcss-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" + "node_modules/postcss-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" } }, - "is-boolean-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.0.tgz", - "integrity": "sha1-mPiygDBoQhmpXzdc+9iM40Bd/5M=", - "dev": true + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "node_modules/postcss-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, - "requires": { - "builtin-modules": "^1.0.0" + "node_modules/postcss-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", - "dev": true - }, - "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", - "dev": true, - "requires": { - "ci-info": "^1.5.0" + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "peerDependencies": { + "postcss": "^8.1.0" } }, - "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "node_modules/postcss-modules-local-by-default": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" + "node_modules/postcss-modules-scope": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^7.0.0" }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true + "node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true + "node_modules/postcss-simple-vars": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.2.tgz", + "integrity": "sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg==", + "license": "MIT", + "dependencies": { + "postcss": "^7.0.14" + } }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true, - "requires": { - "is-primitive": "^2.0.0" + "node_modules/postcss-simple-vars/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "license": "ISC" + }, + "node_modules/postcss-simple-vars/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "node_modules/postcss-simple-vars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" }, - "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "requires": { - "number-is-nan": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.8.0" } }, - "is-fullwidth-code-point": { + "node_modules/prepend-http": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", - "dev": true + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "node_modules/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", "dev": true, - "requires": { - "is-extglob": "^2.1.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "is-in-browser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, + "license": "MIT", "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "lodash": "^4.17.20", + "renderkid": "^3.0.0" } }, - "is-number-object": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.3.tgz", - "integrity": "sha1-8mWrian0RQNO9q/xWo8AsA9VF5k=", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "node_modules/pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", + "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { - "is-path-inside": "^2.1.0" + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "node_modules/pretty-format/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { - "path-is-inside": "^1.0.2" + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" } }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", - "dev": true + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "license": "ISC" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } }, - "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "node_modules/prop-types-exact": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.7.tgz", + "integrity": "sha512-A4RaV6mg3jocQqBYmqi2ojJ2VnV4AKTEHhl3xHsud08/u87gcVJc8DUOtgnPegoOCQv/shUqEk4eZGYibjnHzQ==", "dev": true, - "requires": { - "has": "^1.0.1" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "isarray": "^2.0.5", + "object.assign": "^4.1.7", + "own-keys": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-string": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.4.tgz", - "integrity": "sha1-zDqbaYV9Yh6WNyWiTK7shzuCbmQ=", - "dev": true - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", - "dev": true + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" }, - "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "requires": { - "has-symbols": "^1.0.0" + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "license": "MIT" }, - "is-windows": { + "node_modules/pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true, + "license": "ISC" }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "node_modules/psl": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, - "is2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz", - "integrity": "sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==", + "node_modules/psl/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, - "requires": { - "deep-is": "^0.1.3", - "ip-regex": "^2.1.0", - "is-url": "^1.2.2" + "license": "MIT", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "dev": true, + "license": "MIT" }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", "dev": true, - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" } }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.6" + } }, - "istanbul-api": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", - "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", - "dev": true, - "requires": { - "async": "^2.1.4", - "fileset": "^2.0.2", - "istanbul-lib-coverage": "^1.2.1", - "istanbul-lib-hook": "^1.2.2", - "istanbul-lib-instrument": "^1.10.2", - "istanbul-lib-report": "^1.1.5", - "istanbul-lib-source-maps": "^1.2.6", - "istanbul-reports": "^1.5.1", - "js-yaml": "^3.7.0", - "mkdirp": "^0.5.1", - "once": "^1.4.0" - }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "license": "MIT", "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - } + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "istanbul-lib-coverage": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", - "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==", - "dev": true - }, - "istanbul-lib-hook": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", - "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true, - "requires": { - "append-transform": "^0.4.0" + "engines": { + "node": ">=0.4.x" } }, - "istanbul-lib-instrument": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", - "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, - "requires": { - "babel-generator": "^6.18.0", - "babel-template": "^6.16.0", - "babel-traverse": "^6.18.0", - "babel-types": "^6.18.0", - "babylon": "^6.18.0", - "istanbul-lib-coverage": "^1.2.1", - "semver": "^5.3.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "istanbul-lib-report": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", - "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "path-parse": "^1.0.5", - "supports-color": "^3.1.2" - }, + "node_modules/quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", + "license": "MIT", "dependencies": { - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true, - "requires": { - "has-flag": "^1.0.0" - } - } + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "bin": { + "quote-stream": "bin/cmd.js" } }, - "istanbul-lib-source-maps": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", - "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "istanbul-lib-coverage": "^1.2.1", - "mkdirp": "^0.5.1", - "rimraf": "^2.6.1", - "source-map": "^0.5.3" - }, + "node_modules/quote-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/quote-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "istanbul-reports": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", - "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", - "dev": true, - "requires": { - "handlebars": "^4.0.3" + "node_modules/quote-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/quote-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "jest": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-21.2.1.tgz", - "integrity": "sha512-mXN0ppPvWYoIcC+R+ctKxAJ28xkt/Z5Js875padm4GbgUn6baeR5N4Ng6LjatIRpUQDZVJABT7Y4gucFjPryfw==", - "dev": true, - "requires": { - "jest-cli": "^21.2.1" - }, + "node_modules/quote-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "jest-cli": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-21.2.1.tgz", - "integrity": "sha512-T1BzrbFxDIW/LLYQqVfo94y/hhaj1NzVQkZgBumAC+sxbjMROI7VkihOdxNR758iYbQykL2ZOWUBurFgkQrzdg==", - "dev": true, - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.1", - "glob": "^7.1.2", - "graceful-fs": "^4.1.11", - "is-ci": "^1.0.10", - "istanbul-api": "^1.1.1", - "istanbul-lib-coverage": "^1.0.1", - "istanbul-lib-instrument": "^1.4.2", - "istanbul-lib-source-maps": "^1.1.0", - "jest-changed-files": "^21.2.0", - "jest-config": "^21.2.1", - "jest-environment-jsdom": "^21.2.1", - "jest-haste-map": "^21.2.0", - "jest-message-util": "^21.2.1", - "jest-regex-util": "^21.2.0", - "jest-resolve-dependencies": "^21.2.0", - "jest-runner": "^21.2.1", - "jest-runtime": "^21.2.1", - "jest-snapshot": "^21.2.1", - "jest-util": "^21.2.1", - "micromatch": "^2.3.11", - "node-notifier": "^5.0.2", - "pify": "^3.0.0", - "slash": "^1.0.0", - "string-length": "^2.0.0", - "strip-ansi": "^4.0.0", - "which": "^1.2.12", - "worker-farm": "^1.3.1", - "yargs": "^9.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "jest-changed-files": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-21.2.0.tgz", - "integrity": "sha512-+lCNP1IZLwN1NOIvBcV5zEL6GENK6TXrDj4UxWIeLvIsIDa+gf6J7hkqsW2qVVt/wvH65rVvcPwqXdps5eclTQ==", + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "dev": true, - "requires": { - "throat": "^4.0.0" + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" } }, - "jest-config": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-21.2.1.tgz", - "integrity": "sha512-fJru5HtlD/5l2o25eY9xT0doK3t2dlglrqoGpbktduyoI0T5CwuB++2YfoNZCrgZipTwPuAGonYv0q7+8yDc/A==", + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", "dev": true, - "requires": { - "chalk": "^2.0.1", - "glob": "^7.1.1", - "jest-environment-jsdom": "^21.2.1", - "jest-environment-node": "^21.2.1", - "jest-get-type": "^21.2.0", - "jest-jasmine2": "^21.2.1", - "jest-regex-util": "^21.2.0", - "jest-resolve": "^21.2.0", - "jest-util": "^21.2.1", - "jest-validate": "^21.2.1", - "pretty-format": "^21.2.1" - } + "license": "CC0-1.0" }, - "jest-diff": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-21.2.1.tgz", - "integrity": "sha512-E5fu6r7PvvPr5qAWE1RaUwIh/k6Zx/3OOkZ4rk5dBJkEWRrUuSgbMt2EO8IUTPTd6DOqU3LW6uTIwX5FRvXoFA==", + "node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", "dev": true, - "requires": { - "chalk": "^2.0.1", - "diff": "^3.2.0", - "jest-get-type": "^21.2.0", - "pretty-format": "^21.2.1" + "license": "MIT", + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" } }, - "jest-docblock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", - "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", - "dev": true - }, - "jest-environment-jsdom": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-21.2.1.tgz", - "integrity": "sha512-mecaeNh0eWmzNrUNMWARysc0E9R96UPBamNiOCYL28k7mksb1d0q6DD38WKP7ABffjnXyUWJPVaWRgUOivwXwg==", + "node_modules/randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, - "requires": { - "jest-mock": "^21.2.0", - "jest-util": "^21.2.1", - "jsdom": "^9.12.0" + "license": "MIT", + "dependencies": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" } }, - "jest-environment-node": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-21.2.1.tgz", - "integrity": "sha512-R211867wx9mVBVHzrjGRGTy5cd05K7eqzQl/WyZixR/VkJ4FayS8qkKXZyYnwZi6Rxo6WEV81cDbiUx/GfuLNw==", + "node_modules/randomatic/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true, - "requires": { - "jest-mock": "^21.2.0", - "jest-util": "^21.2.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "jest-get-type": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-21.2.0.tgz", - "integrity": "sha512-y2fFw3C+D0yjNSDp7ab1kcd6NUYfy3waPTlD8yWkAtiocJdBRQqNoRqVfMNxgj+IjT0V5cBIHJO0z9vuSSZ43Q==", - "dev": true + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } }, - "jest-haste-map": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-21.2.0.tgz", - "integrity": "sha512-5LhsY/loPH7wwOFRMs+PT4aIAORJ2qwgbpMFlbWbxfN0bk3ZCwxJ530vrbSiTstMkYLao6JwBkLhCJ5XbY7ZHw==", + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, - "requires": { - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.1.11", - "jest-docblock": "^21.2.0", - "micromatch": "^2.3.11", - "sane": "^2.0.0", - "worker-farm": "^1.3.1" - }, + "license": "MIT", "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "jest-jasmine2": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-21.2.1.tgz", - "integrity": "sha512-lw8FXXIEekD+jYNlStfgNsUHpfMWhWWCgHV7n0B7mA/vendH7vBFs8xybjQsDzJSduptBZJHqQX9SMssya9+3A==", + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, - "requires": { - "chalk": "^2.0.1", - "expect": "^21.2.1", - "graceful-fs": "^4.1.11", - "jest-diff": "^21.2.1", - "jest-matcher-utils": "^21.2.1", - "jest-message-util": "^21.2.1", - "jest-snapshot": "^21.2.1", - "p-cancelable": "^0.3.0" + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "jest-junit": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jest-junit/-/jest-junit-7.0.0.tgz", - "integrity": "sha512-ljUdO0hLyu0A92xk7R2Wet3kj99fmazTo+ZFYQP6b7AGOBxJUj8ZkJWzJ632ajpXko2Y5oNoGR2kvOwiDdu6hg==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "requires": { - "jest-validate": "^24.0.0", - "mkdirp": "^0.5.1", - "strip-ansi": "^4.0.0", - "xml": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "jest-get-type": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", - "dev": true - }, - "jest-validate": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", - "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "camelcase": "^5.3.1", - "chalk": "^2.0.1", - "jest-get-type": "^24.9.0", - "leven": "^3.1.0", - "pretty-format": "^24.9.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "pretty-format": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", - "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "ansi-regex": "^4.0.0", - "ansi-styles": "^3.2.0", - "react-is": "^16.8.4" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } - } + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "jest-matcher-utils": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-21.2.1.tgz", - "integrity": "sha512-kn56My+sekD43dwQPrXBl9Zn9tAqwoy25xxe7/iY4u+mG8P3ALj5IK7MLHZ4Mi3xW7uWVCjGY8cm4PqgbsqMCg==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^21.2.0", - "pretty-format": "^21.2.1" + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "jest-message-util": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-21.2.1.tgz", - "integrity": "sha512-EbC1X2n0t9IdeMECJn2BOg7buOGivCvVNjqKMXTzQOu7uIfLml+keUfCALDh8o4rbtndIeyGU8/BKfoTr/LVDQ==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "micromatch": "^2.3.11", - "slash": "^1.0.0" - }, + "node_modules/raw-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "peer": true, "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "jest-mock": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-21.2.0.tgz", - "integrity": "sha512-aZDfyVf0LEoABWiY6N0d+O963dUQSyUa4qgzurHR3TBDPen0YxKCJ6l2i7lQGh1tVdsuvdrCZ4qPj+A7PievCw==", - "dev": true + "node_modules/raw-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "jest-regex-util": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-21.2.0.tgz", - "integrity": "sha512-BKQ1F83EQy0d9Jen/mcVX7D+lUt2tthhK/2gDWRgLDJRNOdRgSp1iVqFxP8EN1ARuypvDflRfPzYT8fQnoBQFQ==", - "dev": true + "node_modules/raw-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, - "jest-resolve": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-21.2.0.tgz", - "integrity": "sha512-vefQ/Lr+VdNvHUZFQXWtOqHX3HEdOc2MtSahBO89qXywEbUxGPB9ZLP9+BHinkxb60UT2Q/tTDOS6rYc6Mwigw==", - "dev": true, - "requires": { - "browser-resolve": "^1.11.2", - "chalk": "^2.0.1", - "is-builtin-module": "^1.0.0" + "node_modules/raw-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "jest-resolve-dependencies": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-21.2.0.tgz", - "integrity": "sha512-ok8ybRFU5ScaAcfufIQrCbdNJSRZ85mkxJ1EhUp8Bhav1W1/jv/rl1Q6QoVQHObNxmKnbHVKrfLZbCbOsXQ+bQ==", - "dev": true, - "requires": { - "jest-regex-util": "^21.2.0" + "node_modules/raw-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "jest-runner": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-21.2.1.tgz", - "integrity": "sha512-Anb72BOQlHqF/zETqZ2K20dbYsnqW/nZO7jV8BYENl+3c44JhMrA8zd1lt52+N7ErnsQMd2HHKiVwN9GYSXmrg==", + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, - "requires": { - "jest-config": "^21.2.1", - "jest-docblock": "^21.2.0", - "jest-haste-map": "^21.2.0", - "jest-jasmine2": "^21.2.1", - "jest-message-util": "^21.2.1", - "jest-runtime": "^21.2.1", - "jest-util": "^21.2.1", - "pify": "^3.0.0", - "throat": "^4.0.0", - "worker-farm": "^1.3.1" - }, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" } }, - "jest-runtime": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-21.2.1.tgz", - "integrity": "sha512-6omlpA3+NSE+rHwD0PQjNEjZeb2z+oRmuehMfM1tWQVum+E0WV3pFt26Am0DUfQkkPyTABvxITRjCUclYgSOsA==", + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", "dev": true, - "requires": { - "babel-core": "^6.0.0", - "babel-jest": "^21.2.0", - "babel-plugin-istanbul": "^4.0.0", - "chalk": "^2.0.1", - "convert-source-map": "^1.4.0", - "graceful-fs": "^4.1.11", - "jest-config": "^21.2.1", - "jest-haste-map": "^21.2.0", - "jest-regex-util": "^21.2.0", - "jest-resolve": "^21.2.0", - "jest-util": "^21.2.1", - "json-stable-stringify": "^1.0.1", - "micromatch": "^2.3.11", - "slash": "^1.0.0", - "strip-bom": "3.0.0", - "write-file-atomic": "^2.1.0", - "yargs": "^9.0.0" - }, - "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "babel-core": { - "version": "6.26.3", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", - "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-generator": "^6.26.0", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.26.0", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "convert-source-map": "^1.5.1", - "debug": "^2.6.9", - "json5": "^0.5.1", - "lodash": "^4.17.4", - "minimatch": "^3.0.4", - "path-is-absolute": "^1.0.1", - "private": "^0.1.8", - "slash": "^1.0.0", - "source-map": "^0.5.7" - } - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "jest-snapshot": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-21.2.1.tgz", - "integrity": "sha512-bpaeBnDpdqaRTzN8tWg0DqOTo2DvD3StOemxn67CUd1p1Po+BUpvePAp44jdJ7Pxcjfg+42o4NHw1SxdCA2rvg==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-diff": "^21.2.1", - "jest-matcher-utils": "^21.2.1", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^21.2.1" + "node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "license": "MIT", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "jest-util": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-21.2.1.tgz", - "integrity": "sha512-r20W91rmHY3fnCoO7aOAlyfC51x2yeV3xF+prGsJAUsYhKeV670ZB8NO88Lwm7ASu8SdH0S+U+eFf498kjhA4g==", - "dev": true, - "requires": { - "callsites": "^2.0.0", - "chalk": "^2.0.1", - "graceful-fs": "^4.1.11", - "jest-message-util": "^21.2.1", - "jest-mock": "^21.2.0", - "jest-validate": "^21.2.1", - "mkdirp": "^0.5.1" + "node_modules/react-contextmenu": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/react-contextmenu/-/react-contextmenu-2.14.0.tgz", + "integrity": "sha512-ktqMOuad6sCFNJs/ltEwppN8F0YeXmqoZfwycgtZR/MxOXMYx1xgYC44SzWH259HdGyshk1/7sXGuIRwj9hzbw==", + "license": "MIT", + "dependencies": { + "classnames": "^2.2.5", + "object-assign": "^4.1.0" }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": "^0.14.0 || ^15.0.0 || ^16.0.1", + "react-dom": "^0.14.0 || ^15.0.0 || ^16.0.1" + } + }, + "node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "license": "MIT", + "peer": true, "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - } + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" } }, - "jest-validate": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-21.2.1.tgz", - "integrity": "sha512-k4HLI1rZQjlU+EC682RlQ6oZvLrE5SCh3brseQc24vbZTxzT/k/3urar5QMCVgjadmSO7lECeGdc6YxnM3yEGg==", - "dev": true, - "requires": { - "chalk": "^2.0.1", - "jest-get-type": "^21.2.0", - "leven": "^2.1.0", - "pretty-format": "^21.2.1" + "node_modules/react-draggable": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-3.3.2.tgz", + "integrity": "sha512-oaz8a6enjbPtx5qb0oDWxtDNuybOylvto1QLydsXgKmwT7e3GXC2eMVDwEMIUYJIFqVG72XpOv673UuuAq6LhA==", + "license": "MIT", + "dependencies": { + "classnames": "^2.2.5", + "prop-types": "^15.6.0" } }, - "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", - "dev": true - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true - }, - "js-md5": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz", - "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ==", - "dev": true + "node_modules/react-ga": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-2.7.0.tgz", + "integrity": "sha512-AjC7UOZMvygrWTc2hKxTDvlMXEtbmA0IgJjmkhgmQQ3RkXrWR11xEagLGFGaNyaPnmg24oaIiaNPnEoftUhfXA==", + "license": "Apache-2.0", + "peerDependencies": { + "prop-types": "^15.6.0", + "react": "^15.6.2 || ^16.0" + } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "node_modules/react-intl": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", + "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", + "license": "BSD-3-Clause", + "peer": true, + "dependencies": { + "hoist-non-react-statics": "^3.3.0", + "intl-format-cache": "^2.0.5", + "intl-messageformat": "^2.1.0", + "intl-relativeformat": "^2.1.0", + "invariant": "^2.1.1" + }, + "peerDependencies": { + "prop-types": "^15.5.4", + "react": "^0.14.9 || ^15.0.0 || ^16.0.0" + } }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "node_modules/react-intl-redux": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-intl-redux/-/react-intl-redux-2.4.1.tgz", + "integrity": "sha512-EYTNmHJTnTam4phQj1nTdJvcdVjz+F56nLl6JtpqWsKzG5ZnQh/hoqLLJUjP0dgeNKSESIcjhYsTyBWDUwjo0A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.17.9", + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "@babel/runtime": "^7.17.9", + "prop-types": "^15.8.1", + "react": "^16.12.0 || ^17.0.2 || ^18.0.0", + "react-intl": "^2.2.2 || ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0", + "react-redux": "^5.0.1 || ^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, - "jsdom": { - "version": "9.12.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz", - "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=", - "dev": true, - "requires": { - "abab": "^1.0.3", - "acorn": "^4.0.4", - "acorn-globals": "^3.1.0", - "array-equal": "^1.0.0", - "content-type-parser": "^1.0.1", - "cssom": ">= 0.3.2 < 0.4.0", - "cssstyle": ">= 0.2.37 < 0.3.0", - "escodegen": "^1.6.1", - "html-encoding-sniffer": "^1.0.1", - "nwmatcher": ">= 1.3.9 < 2.0.0", - "parse5": "^1.5.1", - "request": "^2.79.0", - "sax": "^1.2.1", - "symbol-tree": "^3.2.1", - "tough-cookie": "^2.3.2", - "webidl-conversions": "^4.0.0", - "whatwg-encoding": "^1.0.1", - "whatwg-url": "^4.3.0", - "xml-name-validator": "^2.0.1" + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" + }, + "node_modules/react-modal": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.3.tgz", + "integrity": "sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw==", + "license": "MIT", + "dependencies": { + "exenv": "^1.2.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19", + "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-popover": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/react-popover/-/react-popover-0.5.10.tgz", + "integrity": "sha512-5SYDTfncywSH00I70oHd4gFRUR8V0rJ4sRADSI/P6G0RVXp9jUgaWloJ0Bk+SFnjpLPuipTKuzQNNd2CTs5Hrw==", + "license": "MIT", "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - }, - "parse5": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", - "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", - "dev": true - } + "css-vendor": "^0.3.1", + "debug": "^2.6.8", + "lodash.throttle": "^3.0.3", + "prop-types": "^15.5.10" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "node_modules/react-popover/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true + "node_modules/react-popover/node_modules/lodash.debounce": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", + "integrity": "sha512-lcmJwMpdPAtChA4hfiwxTtgFeNAaow701wWUgVUqeD0XJF7vMXIN+bu/2FJSGxT0NUbZy9g9VFrlOFfPjl+0Ew==", + "license": "MIT", + "dependencies": { + "lodash._getnative": "^3.0.0" + } }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "node_modules/react-popover/node_modules/lodash.throttle": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-3.0.4.tgz", + "integrity": "sha512-dRU/xiF4W8a521NYnQosG5drDqv4+hp3ND6yWNJUMnwO1E87Q/A7oc9M/g6pk29K9U3j/ZWhM3BAQZyr/P6TTQ==", + "license": "MIT", + "dependencies": { + "lodash.debounce": "^3.0.0" + } }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/react-popover/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true, - "requires": { - "jsonify": "~0.0.0" + "node_modules/react-redux": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz", + "integrity": "sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.1.2", + "hoist-non-react-statics": "^3.3.0", + "invariant": "^2.2.4", + "loose-envify": "^1.1.0", + "prop-types": "^15.6.1", + "react-is": "^16.6.0", + "react-lifecycles-compat": "^3.0.0" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0-0 || ^16.0.0-0", + "redux": "^2.0.0 || ^3.0.0 || ^4.0.0-0" } }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", - "dev": true + "node_modules/react-responsive": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-5.0.0.tgz", + "integrity": "sha512-oEimZ0FTCC3/pjGDEBHOz06nWbBNDIbMGOdRYp6K9SBUmrqgNAX77hTiqvmRQeLyI97zz4F4kiaFRxFspDxE+w==", + "license": "MIT", + "peer": true, + "dependencies": { + "hyphenate-style-name": "^1.0.0", + "matchmediaquery": "^0.3.0", + "prop-types": "^15.6.1" + }, + "engines": { + "node": ">= 0.10" + }, + "peerDependencies": { + "react": "^16.0.0" + } }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "node_modules/react-style-proptype": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", + "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "prop-types": "^15.5.4" + } }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true + "node_modules/react-tabs": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.3.1.tgz", + "integrity": "sha512-SIT1Yx2LY5uwQQsCTQ9hXhywNKqyBdGBAzFZvzYUisztVwOWzfNWjZ7QWNOvuayT5/AF0RAHNbRedur8Yiz2pA==", + "license": "MIT", + "dependencies": { + "classnames": "^2.2.0", + "prop-types": "^15.5.0" + }, + "peerDependencies": { + "react": "^0.14.9 || ^15.3.0 || ^16.0.0" + } }, - "json5": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", - "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", + "node_modules/react-test-renderer": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.14.0.tgz", + "integrity": "sha512-L8yPjqPE5CZO6rKsKXRO/rVPiaCOy0tQQJbC+UjPNlobl5mad59lvPjwFsQHTvL03caVDIVr9x9/OSgDe6I5Eg==", "dev": true, - "requires": { - "minimist": "^1.2.0" + "license": "MIT", + "dependencies": { + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "react-is": "^16.8.6", + "scheduler": "^0.19.1" }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/react-tooltip": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-4.5.1.tgz", + "integrity": "sha512-Zo+CSFUGXar1uV+bgXFFDe7VeS2iByeIp5rTgTcc2HqtuOS5D76QapejNNfx320MCY91TlhTQat36KGFTqgcvw==", + "license": "MIT", + "peer": true, "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "prop-types": "^15.8.1", + "uuid": "^7.0.3" + }, + "engines": { + "npm": ">=6.13" + }, + "peerDependencies": { + "react": ">=16.0.0", + "react-dom": ">=16.0.0" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" + "node_modules/react-virtualized": { + "version": "9.22.6", + "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.22.6.tgz", + "integrity": "sha512-U5j7KuUQt3AaMatlMJ0UJddqSiX+Km0YJxSqbAzIiGw5EmNz0khMyqP2hzgu4+QUtm+QPIrxzUX4raJxmVJnHg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.7.2", + "clsx": "^1.0.4", + "dom-helpers": "^5.1.3", + "loose-envify": "^1.4.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" } }, - "jsx-ast-utils": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz", - "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==", - "dev": true, - "requires": { - "array-includes": "^3.0.3", - "object.assign": "^4.1.0" + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "jszip": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", - "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" } }, - "keymirror": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/keymirror/-/keymirror-0.1.1.tgz", - "integrity": "sha1-kYiJ6hP40KQufFVyUO7nE63JXDU=", - "dev": true + "node_modules/read-package-json/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true + "node_modules/read-package-json/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, - "requires": { - "invert-kv": "^1.0.0" + "license": "MIT", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" } }, - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "license": "MIT", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "requires": { - "immediate": "~3.0.5" + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "linebreak": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-0.3.0.tgz", - "integrity": "sha1-BSZICmLAW9Z58+nZmDDgnGp9DtY=", + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { - "base64-js": "0.0.8", - "brfs": "^1.3.0", - "unicode-trie": "^0.3.0" - }, + "license": "MIT", "dependencies": { - "base64-js": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", - "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", - "dev": true - } + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "load-img": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-img/-/load-img-1.0.0.tgz", - "integrity": "sha1-CVN0SYk8MqhwkHRkVWbExfqprCY=", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true - }, - "lodash-es": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.15.tgz", - "integrity": "sha512-rlrc3yU3+JNOpZ9zj5pQtxnx2THmvRykwL4Xlxoa8I9lHBlVbbyPhgyPMioxVZ4NqyxaVVtaJnzsyOidQIhyyQ==", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash.bindall": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.bindall/-/lodash.bindall-4.4.0.tgz", - "integrity": "sha1-p7/Ugro9LnBxad/NyZPrv2w9eZg=", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.defaultsdeep": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.0.tgz", - "integrity": "sha1-vsECT4WxvZbL6kBbI8FK1kQ6b4E=", - "dev": true - }, - "lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=", - "dev": true - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", - "dev": true - }, - "lodash.isequal": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", - "dev": true - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "lodash.omit": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", - "integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=", - "dev": true - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", - "dev": true - }, - "lodash.throttle": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.0.1.tgz", - "integrity": "sha1-syEWYu6dgvVpA9BzEmKqqoc6YzA=", + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, - "requires": { - "lodash.debounce": "^4.0.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "lodash.unescape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", - "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=", - "dev": true - }, - "loglevel": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.4.tgz", - "integrity": "sha512-p0b6mOGKcGa+7nnmKbpzR6qloPbrgLcnio++E+14Vo/XffOGwZtRpUhr8dTH/x2oCMmEoIU0Zwm3ZauhvYD17g==", - "dev": true - }, - "lookup-closest-locale": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.2.0.tgz", - "integrity": "sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==", - "dev": true + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true, + "license": "ISC" }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", - "dev": true - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "license": "ISC", + "bin": { + "semver": "bin/semver" } }, - "magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, - "requires": { - "vlq": "^0.2.2" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" } }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/rechoir": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, - "requires": { - "tmpl": "1.0.x" + "license": "MIT", + "dependencies": { + "resolve": "^1.20.0" + }, + "engines": { + "node": ">= 10.13.0" } }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "node_modules/redeyed": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", + "integrity": "sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ==", "dev": true, - "requires": { - "p-defer": "^1.0.0" + "license": "MIT", + "dependencies": { + "esprima": "~4.0.0" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "node_modules/redux": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", + "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", + "license": "MIT", + "peer": true, + "dependencies": { + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" + } }, - "map-limit": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/map-limit/-/map-limit-0.0.1.tgz", - "integrity": "sha1-63lhAxwPDo0AG/LVb6toXViCLzg=", + "node_modules/redux-mock-store": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.5.tgz", + "integrity": "sha512-YxX+ofKUTQkZE4HbhYG4kKGr7oCTJfB0GLy7bSeqx86GLpGirrbUWstMnqXkqHNaQpcnbMGbof2dYs5KsPE6Zg==", "dev": true, - "requires": { - "once": "~1.3.0" - }, + "license": "MIT", "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, - "requires": { - "wrappy": "1" - } - } + "lodash.isplainobject": "^4.0.6" + }, + "peerDependencies": { + "redux": "*" } }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" + "node_modules/redux-throttle": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/redux-throttle/-/redux-throttle-0.1.1.tgz", + "integrity": "sha512-24stzg4+1xtlO8ubP4HKudpBdPsG4qvbn0Z9hv8tz6fM6ZcQJe2dKEwYIqTl8+yPMGgjNKHp1lzTwRqjWCxj/Q==", + "license": "MIT", + "dependencies": { + "lodash.throttle": "4.0.1" } }, - "matchmediaquery": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/matchmediaquery/-/matchmediaquery-0.3.0.tgz", - "integrity": "sha512-u0dlv+VENJ+3YepvwSPBieuvnA6DWfaYa/ctwysAR13y4XLJNyt7bEVKzNj/Nvjo+50d88Pj+xL9xaSo6JmX/w==", - "dev": true, - "requires": { - "css-mediaquery": "^0.1.2" + "node_modules/redux-throttle/node_modules/lodash.throttle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.0.1.tgz", + "integrity": "sha512-vEeVrketgBFJ268V478NKyLk142uvnlFHuRHUUcu5NhsMQQpTs5EIGZduGNqdJOOhnb+Rwkz0XvfQuwOYzRo1Q==", + "license": "MIT", + "dependencies": { + "lodash.debounce": "^4.0.0" } }, - "math-random": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true, + "license": "MIT" }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "dev": true, - "requires": { - "mimic-fn": "^1.0.0" + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "memory-fs": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz", - "integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=", - "dev": true - }, - "merge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", - "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==", - "dev": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true, + "license": "MIT" }, - "merge-source-map": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", - "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "node_modules/regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, - "requires": { - "source-map": "^0.5.6" + "license": "MIT", + "dependencies": { + "is-equal-shallow": "^0.1.3" + }, + "engines": { + "node": ">=0.10.0" } }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true - }, - "microee": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/microee/-/microee-0.0.6.tgz", - "integrity": "sha1-oSvbAQNoHosSapsHHrpMRnx4//4=", - "dev": true - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", + "license": "MIT", + "dependencies": { "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", - "dev": true - }, - "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "dev": true, - "requires": { - "mime-db": "1.40.0" + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" } }, - "mimeparse": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/mimeparse/-/mimeparse-0.1.4.tgz", - "integrity": "sha1-2vsCdSNw/SJgk64xUsJxrwGsJUo=", - "dev": true + "node_modules/registry-auth-token": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", + "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pnpm/npm-conf": "^2.1.0" + }, + "engines": { + "node": ">=14" + } }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "dev": true, - "requires": { - "dom-walk": "^0.1.0" + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" } }, - "minilog": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minilog/-/minilog-3.1.0.tgz", - "integrity": "sha1-0tDxiHyjY9Gs8OqG1cTfKTs/tnU=", + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true, - "requires": { - "microee": "0.0.6" + "license": "MIT", + "engines": { + "node": ">= 0.10" } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true, + "license": "ISC" }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, - "requires": { - "brace-expansion": "^1.1.7" + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" } }, - "minimist": { - "version": "0.0.8", - "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mississippi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", - "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^2.0.1", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "node_modules/renderkid/node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "mkdirp": { - "version": "0.5.1", - "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, - "requires": { - "minimist": "0.0.8" + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "mkpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", - "integrity": "sha1-67Opd+evHGg65v2hK1Raa6bFhT0=", - "dev": true + "node_modules/renderkid/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" }, - "mocha": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", - "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, - "requires": { - "browser-stdout": "1.3.0", - "commander": "2.11.0", - "debug": "3.1.0", - "diff": "3.3.1", - "escape-string-regexp": "1.0.5", - "glob": "7.1.2", - "growl": "1.10.3", - "he": "1.1.1", - "mkdirp": "0.5.1", - "supports-color": "4.4.0" - }, + "license": "BSD-2-Clause", "dependencies": { - "commander": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", - "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "diff": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", - "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", - "dev": true - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true - }, - "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", - "dev": true - }, - "supports-color": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", - "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", - "dev": true, - "requires": { - "has-flag": "^2.0.0" - } - } + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "moo": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.4.3.tgz", - "integrity": "sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==", - "dev": true - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } }, - "multipipe": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.3.1.tgz", - "integrity": "sha1-kmJVJXYboE/qoJYFtjgrziyR8R8=", + "node_modules/renderkid/node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "requires": { - "duplexer2": "^0.1.2" + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, - "optional": true + "license": "MIT", + "engines": { + "node": ">=0.10" + } }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==", "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "license": "MIT", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "license": "Apache-2.0", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" } }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "license": "MIT", + "bin": { + "uuid": "bin/uuid" + } }, - "nearley": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.19.0.tgz", - "integrity": "sha512-2v52FTw7RPqieZr3Gth1luAXZR7Je6q3KaDHY5bjl/paDUdMu35fZ8ICNgiYJRr3tf3NMvIQQR1r27AvEr9CRA==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "requires": { - "commander": "^2.19.0", - "moo": "^0.4.3", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6", - "semver": "^5.4.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", - "dev": true + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", + "dev": true, + "license": "ISC" }, - "nets": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/nets/-/nets-3.2.0.tgz", - "integrity": "sha1-1RH7q3rxHaAT8huX7pF0fTOFLTg=", + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true, - "requires": { - "request": "^2.65.0", - "xhr": "^2.1.0" - } + "license": "MIT" }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "requires": { - "lower-case": "^1.1.1" + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" } }, - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "node_modules/resolve-global": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz", + "integrity": "sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==", "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "global-dirs": "^0.1.1" + }, + "engines": { + "node": ">=8" } }, - "node-notifier": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", - "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^1.1.0", - "semver": "^5.5.0", - "shellwords": "^0.1.1", - "which": "^1.3.0" - } + "license": "MIT" }, - "node-releases": { - "version": "1.1.35", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.35.tgz", - "integrity": "sha512-JGcM/wndCN/2elJlU0IGdVEJQQnJwsLbgPCFd2pY7V0mxf17bZ0Gb/lgOtL29ZQhvEX5shnVhxQyZz3ex94N8w==", - "dev": true, - "requires": { - "semver": "^6.3.0" - }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "license": "MIT", "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "lowercase-keys": "^1.0.0" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "license": "MIT", + "engines": { + "node": ">=0.12" } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "requires": { - "path-key": "^2.0.0" + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "node_modules/ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", "dev": true, - "requires": { - "boolbase": "~1.0.0" + "license": "MIT", + "dependencies": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "engines": { + "node": ">= 0.8" } }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "nwmatcher": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", - "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "node_modules/ripemd160/node_modules/hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.8" } }, - "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", - "dev": true - }, - "object-is": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", - "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "node_modules/ripemd160/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "node_modules/ripemd160/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "requires": { - "isobject": "^3.0.0" + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } + "license": "MIT" }, - "object.entries": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", - "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==", + "node_modules/ripemd160/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "object.fromentries": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.1.tgz", - "integrity": "sha512-PUQv8Hbg3j2QX0IQYv3iAGCbGcu4yY4KQ92/dhA4sFSixBmSmp13UpDLs6jGK8rBtbmhNNIK99LD2k293jpiGA==", + "node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.15.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } + "license": "MIT" }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "node_modules/rst-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", + "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "license": "BSD-3-Clause", + "dependencies": { + "lodash.flattendeep": "^4.4.0", + "nearley": "^2.7.10" } }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "node_modules/rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", "dev": true, - "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "license": "MIT", + "engines": { + "node": "0.12.* || 4.* || 6.* || >= 7.*" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "object.values": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", - "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.12.0", - "function-bind": "^1.1.1", - "has": "^1.0.3" + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "omggif": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.9.tgz", - "integrity": "sha1-3LcCTazVDFK00wPwSALJHAV8dl8=", - "dev": true + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, - "requires": { - "ee-first": "1.1.1" + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, - "requires": { - "wrappy": "1" + "license": "MIT", + "dependencies": { + "ret": "~0.1.10" } }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "dev": true, - "requires": { - "mimic-fn": "^1.0.0" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/sane": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", + "integrity": "sha512-OuZwD1QJ2R9Dbnhd7Ur8zzD8l+oADp9npyxK63Q9nZ4AjhB2QwDQcQlD8iuUsGm5AZZqtEuCaJvK1rxGRxyQ1Q==", + "deprecated": "some dependency vulnerabilities fixed, support for node < 10 dropped, and newer ECMAScript syntax/features added", "dev": true, - "requires": { - "is-wsl": "^1.1.0" + "license": "MIT", + "dependencies": { + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": ">=0.6.0" + }, + "optionalDependencies": { + "fsevents": "^1.2.3" } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, - "requires": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - }, + "license": "ISC", "dependencies": { - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true - } + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "node_modules/sane/node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "node_modules/sane/node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, - "requires": { - "url-parse": "^1.4.3" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-locale": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", - "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, - "requires": { - "execa": "^0.7.0", - "lcid": "^1.0.0", - "mem": "^1.1.0" + "license": "MIT", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "output-file-sync": { + "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz", - "integrity": "sha512-mDho4qm7WgIXIGf4eYU1RHN2UU5tPfVYVSRwDJw0uTmj35DQUt/eNp19N7v6T3SrR0ESTEf2up2CGO73qI35zQ==", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "is-plain-obj": "^1.1.0", - "mkdirp": "^0.5.1" + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", - "dev": true - }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "node_modules/sane/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "p-try": "^2.0.0" + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/sane/node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, - "requires": { - "p-limit": "^2.0.0" + "license": "MIT", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "node_modules/sane/node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, - "requires": { - "retry": "^0.12.0" + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pako": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", - "dev": true - }, - "papaparse": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-4.6.2.tgz", - "integrity": "sha512-P/4p6S6wZyXAjcFPnJAjFn7lxMIkd+23prFELhcbfWswQfg7dG1XJfV8/lKvk5lu5BGSSJZFHSDMejjFcB1feg==", - "dev": true + "node_modules/sane/node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "node_modules/sane/node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" } }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "node_modules/sane/node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, - "requires": { - "no-case": "^2.2.0" + "license": "MIT", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "node_modules/sane/node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, - "requires": { - "callsites": "^3.0.0" + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", + "node_modules/sane/node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "parse-color": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-color/-/parse-color-1.0.0.tgz", - "integrity": "sha1-e3SLlag/A/FqlPU15S1/PZRlhhk=", + "node_modules/sane/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, - "requires": { - "color-convert": "~0.5.0" + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "license": "MIT", "dependencies": { - "color-convert": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-0.5.3.tgz", - "integrity": "sha1-vbbGnOZg+t/+CwAHzER+G59ygr0=", - "dev": true - } + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "node_modules/sane/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/sane/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "license": "MIT", "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - } + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "parse-headers": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", - "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", + "node_modules/sane/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, - "requires": { - "for-each": "^0.3.3", - "string.prototype.trim": "^1.1.2" + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, - "requires": { - "error-ex": "^1.2.0" + "license": "MIT", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", - "dev": true + "node_modules/sane/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "node_modules/sane/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, - "requires": { - "@types/node": "*" + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "node_modules/sane/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, - "requires": { - "better-assert": "~1.0.0" + "license": "MIT", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "node_modules/sax": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", + "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", "dev": true, - "requires": { - "better-assert": "~1.0.0" + "license": "BlueOak-1.0.0" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "node_modules/schema-utils": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true + "node_modules/scratch-audio": { + "version": "2.0.258", + "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-2.0.258.tgz", + "integrity": "sha512-SbyRlYBsFgIsOU2JPSkK8cQFin51FzzjhIaIa4fo2zHI0eOZklIvU5z6ant3k/0a5QT6rcWWnJH118WN0EEaVg==", + "license": "AGPL-3.0-only", + "dependencies": { + "audio-context": "^1.0.1", + "minilog": "^3.0.1", + "startaudiocontext": "^1.2.1" + } }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true + "node_modules/scratch-blocks": { + "version": "1.1.227", + "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-1.1.227.tgz", + "integrity": "sha512-GPuYoRV5yJDE8EYcNJejbtyGezKN+r/WVR+wm6+N+9qmp1upVeCCqU3TPyA1t/S72IvsQy8X+3tPkFulTpRfQw==", + "license": "Apache-2.0", + "dependencies": { + "exports-loader": "^0.7.0", + "google-closure-library": "^20190301.0.0", + "imports-loader": "^0.8.0", + "scratch-l10n": "^3.18.3" + } }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true + "node_modules/scratch-blocks/node_modules/@transifex/api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@transifex/api/-/api-4.3.0.tgz", + "integrity": "sha512-RCpqAqxZlrHDo7rfam8tLSoT02wvF8LQeNRC0VZG5IGrH+wv+G6fB8PWLLHrvUuaqO6XCwkMmYlJ/X9U9TLTHw==", + "license": "Apache-2.0", + "dependencies": { + "core-js": "^3.22.4" + }, + "engines": { + "node": ">=14.0.0" + } }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "node_modules/scratch-blocks/node_modules/core-js": { + "version": "3.46.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.46.0.tgz", + "integrity": "sha512-vDMm9B0xnqqZ8uSBpZ8sNtRtOdmfShrvT6h2TuQGLs0Is+cR0DYbj/KWP6ALVNbWPpqA/qPLoOuppJN07humpA==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "node_modules/scratch-blocks/node_modules/exports-loader": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.7.0.tgz", + "integrity": "sha512-RKwCrO4A6IiKm0pG3c9V46JxIHcDplwwGJn6+JJ1RcVnh/WSGJa0xkmk5cRVtgOPzCAtTMGj2F7nluh9L0vpSA==", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.1.0", + "source-map": "0.5.0" + }, + "engines": { + "node": ">= 4" + } }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "node_modules/scratch-blocks/node_modules/imports-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.8.0.tgz", + "integrity": "sha512-kXWL7Scp8KQ4552ZcdVTeaQCZSLW+e6nJfp3cwUMB673T7Hr98Xjx5JK+ql7ADlJUvj1JS5O01RLbKoutN5QDQ==", + "license": "MIT", + "dependencies": { + "loader-utils": "^1.0.2", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 4" + } }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "node_modules/scratch-blocks/node_modules/imports-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/scratch-blocks/node_modules/scratch-l10n": { + "version": "3.18.357", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.18.357.tgz", + "integrity": "sha512-Rs3YmUa2dzpYqT1O/YT15g99sIwnC7j9TOOmOhUphVKLeiYUvJWiRPKZCugA7/hbIMYZV5VLkmuDgGXhgfSOBw==", + "license": "BSD-3-Clause", + "dependencies": { + "@transifex/api": "4.3.0", + "download": "8.0.0", + "transifex": "1.6.6" + }, + "bin": { + "build-i18n-src": "scripts/build-i18n-src.js", + "tx-push-src": "scripts/tx-push-src.js" + } }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true + "node_modules/scratch-blocks/node_modules/source-map": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.0.tgz", + "integrity": "sha512-gjGnxNN0K+/Pr4Mi4fs/pOtda10dKB6Wn9QvjOrH6v5TWsI7ghHuJUHoIgyM6DkUL5kr2GtPFGererzKpMBWfA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/scratch-l10n": { + "version": "5.0.309", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-5.0.309.tgz", + "integrity": "sha512-Hx1llD/6fVhx46K1PD/uZxAXfhHxsrS9fk7xIMw+miAurpfqtqWgVJuhPN+sHuzF4bcnK49QtYIUdh6igDXlAA==", + "license": "AGPL-3.0-only", + "dependencies": { + "@transifex/api": "7.1.4", + "download": "8.0.0", + "transifex": "1.6.6" + }, + "bin": { + "build-i18n-src": "scripts/build-i18n-src.js", + "tx-push-src": "scripts/tx-push-src.js" + } }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" + "node_modules/scratch-paint": { + "version": "3.0.339", + "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-3.0.339.tgz", + "integrity": "sha512-nOEDjEZ1lpTsaKcCq2CRcv/mTqCQN6DYPw2t7ZPy1B79dAi1c7vyPfsObbRaN07BTSpqH/2O5/4UmJi1TKr3tQ==", + "license": "AGPL-3.0-only", + "dependencies": { + "@scratch/paper": "^0.11.20221201200345", + "classnames": "^2.2.5", + "keymirror": "^0.1.1", + "lodash.bindall": "^4.4.0", + "lodash.omit": "^4.5.0", + "minilog": "^3.1.0", + "parse-color": "^1.0.0", + "prop-types": "^15.5.10" }, + "peerDependencies": { + "react": "^16", + "react-dom": "^16", + "react-intl": "^2", + "react-intl-redux": "^0.7 || ^2.0.0", + "react-popover": "^0.5", + "react-redux": "^5", + "react-responsive": "^5", + "react-style-proptype": "^3", + "react-tooltip": "^4", + "redux": "^3", + "scratch-render-fonts": "^1.0.0" + } + }, + "node_modules/scratch-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-6.0.0.tgz", + "integrity": "sha512-LXcKxJIupqBtXSe2+SXkQxwdMWg4JCdZfoSdPYj1ZtV/UhejyUYju6ptYUrr98RsLFT5UyCmmUaev8gA1SNvhQ==", + "license": "AGPL-3.0-only", "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } + "ajv": "^6.3.0", + "jszip": "^3.1.5", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=8.0" } }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "node_modules/scratch-parser/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", - "dev": true - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "node_modules/scratch-parser/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, - "pify": { + "node_modules/scratch-parser/node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" + "node_modules/scratch-render": { + "version": "2.2.70", + "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-2.2.70.tgz", + "integrity": "sha512-0+KhQg6sxK991YBarxDVzrtJJDG3Sw2mh4HJn6nQosWumnSH6DR9KJNZzIs/xFMg7Kl+tInm01ujeutM4fbNbg==", + "license": "AGPL-3.0-only", + "dependencies": { + "grapheme-breaker": "^0.3.2", + "hull.js": "0.2.10", + "ify-loader": "^1.0.4", + "linebreak": "^0.3.0", + "minilog": "^3.1.0", + "raw-loader": "^0.5.1", + "scratch-svg-renderer": "^3.0.0", + "twgl.js": "^4.4.0" + }, + "peerDependencies": { + "scratch-render-fonts": "^1.0.0" } }, - "portfinder": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.24.tgz", - "integrity": "sha512-ekRl7zD2qxYndYflwiryJwMioBI7LI7rVXg3EnLK3sjkouT5eOuhS3gS255XxBksa30VG8UPZYZCdgfGOfkSUg==", - "dev": true, - "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" - }, + "node_modules/scratch-render-fonts": { + "version": "1.0.250", + "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.250.tgz", + "integrity": "sha512-B8IW5C75u0BBuptKpqujS7/l4fi3d+0kTmMynf6ucu1BeT84ib8lgso1Ib1l1o2xYmF8h9m4v+vCmtRLOvg4YA==", + "peer": true, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - } + "base64-loader": "^1.0.0" } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "node_modules/scratch-render/node_modules/raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==" }, - "postcss": { - "version": "7.0.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.18.tgz", - "integrity": "sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, + "node_modules/scratch-sb1-converter": { + "version": "2.0.272", + "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-2.0.272.tgz", + "integrity": "sha512-CFwdN10s9nS/5GfIRy6SvQSgKeVVPynpYhiBqFS6G3q/f5f6KkpFqCIvbe7cE8q41PM93tZbINQNHtRrMd78Jw==", + "license": "AGPL-3.0-only", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + "js-md5": "^0.7.3", + "minilog": "^3.1.0", + "text-encoding": "^0.7.0" } }, - "postcss-import": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", - "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "node_modules/scratch-semantic-release-config": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/scratch-semantic-release-config/-/scratch-semantic-release-config-3.0.0.tgz", + "integrity": "sha512-Hrw1naLR3MTzZjM3FmCW89cEv2L9NO1pLNsohF2npbNPFYpNd4yjEN5RPneLRtY5jX/NbqQVQChvhxiI+lJ+hQ==", "dev": true, - "requires": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, + "license": "BSD-3-Clause", "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } - }, - "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" + "@semantic-release/changelog": "^6.0.1", + "@semantic-release/commit-analyzer": "^9.0.2", + "@semantic-release/git": "^10.0.1", + "@semantic-release/github": "^8.0.4", + "@semantic-release/npm": "^9.0.1", + "@semantic-release/release-notes-generator": "^10.0.3" + }, + "peerDependencies": { + "semantic-release": ">=19.0.2" } }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" + "node_modules/scratch-storage": { + "version": "4.1.27", + "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-4.1.27.tgz", + "integrity": "sha512-pkn/tGbk6XkMhChZzX6PsG+l/LF+hNXJasPn9bz2uEA0tNSB3spESlf1bww1VIouV+kuQcN+oZiHSzXDTzZbpw==", + "license": "AGPL-3.0-only", + "dependencies": { + "@babel/runtime": "^7.21.0", + "arraybuffer-loader": "^1.0.3", + "base64-js": "^1.3.0", + "buffer": "6.0.3", + "cross-fetch": "^4.1.0", + "fastestsmallesttextencoderdecoder": "^1.0.7", + "js-md5": "^0.7.3", + "minilog": "^3.1.0" + } + }, + "node_modules/scratch-storage/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "dev": true, - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "node_modules/scratch-svg-renderer": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-3.1.14.tgz", + "integrity": "sha512-AN5pg6jstvltWm//YogYcmLh2Dk7w5WEpgDbNhBeirVYOLlJrdOfhyFEcZ64uS54PI050lVaqirsyaeKt2OZNw==", + "license": "AGPL-3.0-only", + "dependencies": { + "base64-js": "^1.2.1", + "base64-loader": "^1.0.0", + "css-tree": "^1.1.3", + "fastestsmallesttextencoderdecoder": "^1.0.22", + "isomorphic-dompurify": "^2.4.0", + "minilog": "^3.1.0", + "transformation-matrix": "^1.15.0" + }, + "peerDependencies": { + "scratch-render-fonts": "^1.0.0" } }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "node_modules/scratch-translate-extension-languages": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-1.0.7.tgz", + "integrity": "sha512-6+bQU9iVYv23T8J0SjpV6MTugm0y8myh/4DPgu1BGfccysdkaWzu3MkNGQyQRUlbqAiW9wM7ctfv3USPEkzTgg==", + "license": "BSD-3-Clause" + }, + "node_modules/scratch-vm": { + "version": "5.0.300", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-5.0.300.tgz", + "integrity": "sha512-S7pWgtUKJPAsqfPkfuBejEABPBxjhFjVXmVTW/Q+2OirwsSySiSEKO7A0kfuXMINOZ0G3JcCCJMJl5ZWUwjHqw==", + "license": "AGPL-3.0-only", + "dependencies": { + "@vernier/godirect": "^1.5.0", + "arraybuffer-loader": "^1.0.6", + "atob": "^2.1.2", + "btoa": "^1.2.1", + "buffer": "^6.0.3", + "canvas-toBlob": "^1.0.0", + "decode-html": "^2.0.0", + "diff-match-patch": "^1.0.4", + "format-message": "^6.2.1", + "htmlparser2": "^3.10.0", + "immutable": "^3.8.1", + "jszip": "^3.1.5", + "minilog": "^3.1.0", + "scratch-audio": "^2.0.0", + "scratch-parser": "^6.0.0", + "scratch-render": "^2.0.0", + "scratch-sb1-converter": "^2.0.0", + "scratch-storage": "^4.0.0", + "scratch-svg-renderer": "3.0.114", + "scratch-translate-extension-languages": "^1.0.0", + "text-encoding": "^0.7.0", + "uuid": "^8.3.2", + "web-worker": "^1.3.0" + } + }, + "node_modules/scratch-vm/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "node_modules/scratch-vm/node_modules/scratch-svg-renderer": { + "version": "3.0.114", + "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-3.0.114.tgz", + "integrity": "sha512-JQNRf7m8UiCQ7LoLZjUvoBA4XsssCNbo0f9x8bxRXtISY3yHB0fkboMQEHubBZdNt33qrhm9XnpKPMORVHFVaQ==", + "license": "AGPL-3.0-only", + "dependencies": { + "base64-js": "^1.2.1", + "base64-loader": "^1.0.0", + "css-tree": "^1.1.3", + "fastestsmallesttextencoderdecoder": "^1.0.22", + "isomorphic-dompurify": "^2.4.0", + "minilog": "^3.1.0", + "transformation-matrix": "^1.15.0" + }, + "peerDependencies": { + "scratch-render-fonts": "^1.0.0" } }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "node_modules/scratch-vm/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "postcss-simple-vars": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-simple-vars/-/postcss-simple-vars-5.0.2.tgz", - "integrity": "sha512-xWIufxBoINJv6JiLb7jl5oElgp+6puJwvT5zZHliUSydoLz4DADRB3NDDsYgfKVwojn4TDLiseoC65MuS8oGGg==", + "node_modules/scratch-webpack-configuration": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/scratch-webpack-configuration/-/scratch-webpack-configuration-3.1.0.tgz", + "integrity": "sha512-7hdjePBCaoFMmsWeRYqmb237OfFTHNEDgsf4q7a4g4cy9A1yL4QxQbJegUJj330ZnymOX1MRZbFNZzy1EUYJSQ==", "dev": true, - "requires": { - "postcss": "^7.0.14" + "license": "BSD-3-Clause", + "dependencies": { + "lodash.merge": "^4.6.2", + "webpack-node-externals": "^3.0.0" + }, + "peerDependencies": { + "@babel/preset-env": "^7.24.0", + "arraybuffer-loader": "^1.0.8", + "autoprefixer": "^9.0.1", + "babel-loader": "^9.1.3", + "css-loader": "5.2.7", + "postcss-import": "^12.0.0", + "postcss-loader": "4.3.0", + "postcss-simple-vars": "^5.0.1", + "style-loader": "4.0.0", + "ts-loader": "^9.5.1", + "url-loader": "4.1.1", + "webpack": "^5.90.3" + } + }, + "node_modules/seek-bzip": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz", + "integrity": "sha512-e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==", + "license": "MIT", + "dependencies": { + "commander": "^2.8.1" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" } }, - "postcss-value-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", - "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", - "dev": true + "node_modules/seek-bzip/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true, + "license": "MIT" }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" + "license": "MIT", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" } }, - "pretty-format": { - "version": "21.2.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-21.2.1.tgz", - "integrity": "sha512-ZdWPGYAnYfcVP8yKA3zFjCn8s4/17TeYH28MXuC8vTp0o21eXjbFGcOAXZEaDaOFJjc3h2qa7HQNHNshhvoh2A==", + "node_modules/semantic-release": { + "version": "19.0.5", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-19.0.5.tgz", + "integrity": "sha512-NMPKdfpXTnPn49FDogMBi36SiBfXkSOJqCkk0E4iWOY1tusvvgBwqUmxTX1kmlT6kIYed9YwNKD1sfPpqa5yaA==", "dev": true, - "requires": { - "ansi-regex": "^3.0.0", - "ansi-styles": "^3.2.0" + "license": "MIT", + "peer": true, + "dependencies": { + "@semantic-release/commit-analyzer": "^9.0.2", + "@semantic-release/error": "^3.0.0", + "@semantic-release/github": "^8.0.0", + "@semantic-release/npm": "^9.0.0", + "@semantic-release/release-notes-generator": "^10.0.0", + "aggregate-error": "^3.0.0", + "cosmiconfig": "^7.0.0", + "debug": "^4.0.0", + "env-ci": "^5.0.0", + "execa": "^5.0.0", + "figures": "^3.0.0", + "find-versions": "^4.0.0", + "get-stream": "^6.0.0", + "git-log-parser": "^1.2.0", + "hook-std": "^2.0.0", + "hosted-git-info": "^4.0.0", + "lodash": "^4.17.21", + "marked": "^4.0.10", + "marked-terminal": "^5.0.0", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "p-reduce": "^2.0.0", + "read-pkg-up": "^7.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.3.2", + "semver-diff": "^3.1.1", + "signale": "^1.2.1", + "yargs": "^16.2.0" + }, + "bin": { + "semantic-release": "bin/semantic-release.js" }, + "engines": { + "node": ">=16 || ^14.17" + } + }, + "node_modules/semantic-release/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "license": "ISC", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true + "node_modules/semantic-release/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "node_modules/semantic-release/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "node_modules/semantic-release/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, - "requires": { - "asap": "~2.0.3" + "license": "MIT", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" } }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "node_modules/semver-regex": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.4.tgz", + "integrity": "sha512-6IiqeZNgq01qGf0TId0t3NvKzSvUsjcpdEO3AQNeIjR6A2+ckTnQlDpl4qu1bjRv0RzN3FP9hzFmws3lKqRWkA==", "dev": true, - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "prop-types-exact": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/prop-types-exact/-/prop-types-exact-1.2.0.tgz", - "integrity": "sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==", + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, - "requires": { - "has": "^1.0.3", - "object.assign": "^4.1.0", - "reflect.ownkeys": "^0.2.0" + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "proxy-addr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", - "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.0" + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, - "pseudomap": { + "node_modules/send/node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", - "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" } }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } }, - "q-io": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/q-io/-/q-io-1.13.2.tgz", - "integrity": "sha1-7qEw1IHdteGqG8WmaFX3OR0G8AM=", - "dev": true, - "requires": { - "collections": "^0.2.0", - "mime": "^1.2.11", - "mimeparse": "^0.1.4", - "q": "^1.0.1", - "qs": "^1.2.1", - "url2": "^0.0.0" - }, - "dependencies": { - "qs": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz", - "integrity": "sha1-GbV/8k3CqZzh+L32r82ln472H4g=", - "dev": true - } + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "license": "ISC" }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", - "dev": true + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true, + "license": "ISC" }, - "quote-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", - "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, - "requires": { - "buffer-equal": "0.0.1", - "minimist": "^1.1.3", - "through2": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, + "license": "ISC" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, - "requires": { - "performance-now": "^2.1.0" + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "railroad-diagrams": { + "node_modules/set-proto": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=", - "dev": true - }, - "randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, - "requires": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "randomatic": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, - "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" - }, + "license": "MIT", "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, - "requires": { - "safe-buffer": "^5.1.0" + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, + "license": "ISC" + }, + "node_modules/sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "dev": true, + "license": "(MIT AND BSD-3-Clause)", "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + }, + "bin": { + "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", - "dev": true - }, - "react": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.2.0.tgz", - "integrity": "sha512-ZmIomM7EE1DvPEnSFAHZn9Vs9zJl5A9H7el0EGTE6ZbW9FKe/14IYAlPbC8iH25YarEQxZL+E8VW7Mi7kfQrDQ==", + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" + "license": "MIT", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "react-contextmenu": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/react-contextmenu/-/react-contextmenu-2.9.4.tgz", - "integrity": "sha512-ma4YQw4J7JNv8L8mMVd1NHHbvH3+gaK/rQ6FC5Tft7OCUweKi7PHqHEE0fDF2009FLSGoV5JnjPnTTEyThqaJg==", + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "requires": { - "classnames": "^2.2.5", - "object-assign": "^4.1.0" + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "react-dom": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.2.0.tgz", - "integrity": "sha512-zpGAdwHVn9K0091d+hr+R0qrjoJ84cIBFL2uU60KvWBPfZ7LPSrfqviTxGHWN0sjPZb2hxWzMexwrvJdKePvjg==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "requires": { - "fbjs": "^0.8.16", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "react-draggable": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/react-draggable/-/react-draggable-3.0.5.tgz", - "integrity": "sha512-qo76q6+pafyGllbmfc+CgWfOkwY9v3UoJa3jp6xG2vdsRY8uJTN1kqNievLj0uVNjEqCvZ0OFiEBxlAJNj3OTg==", + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, - "requires": { - "classnames": "^2.2.5", - "prop-types": "^15.6.0" + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "react-ga": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/react-ga/-/react-ga-2.5.3.tgz", - "integrity": "sha512-25wvPv1PVLDLhw1gEYP33h0V2sJHahKMfUCAxhq8JPYmNQwx1fcjJAkJk+WmSqGN93lHLhExDkxy3SQizQnx3A==", + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true, - "requires": { - "prop-types": "^15.6.0", - "react": "^15.6.2 || ^16.0" + "license": "MIT" + }, + "node_modules/should": { + "version": "13.2.3", + "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", + "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "license": "MIT", + "dependencies": { + "should-equal": "^2.0.0", + "should-format": "^3.0.3", + "should-type": "^1.4.0", + "should-type-adaptors": "^1.0.1", + "should-util": "^1.0.0" } }, - "react-intl": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-intl/-/react-intl-2.9.0.tgz", - "integrity": "sha512-27jnDlb/d2A7mSJwrbOBnUgD+rPep+abmoJE511Tf8BnoONIAUehy/U1zZCHGO17mnOwMWxqN4qC0nW11cD6rA==", - "dev": true, - "requires": { - "hoist-non-react-statics": "^3.3.0", - "intl-format-cache": "^2.0.5", - "intl-messageformat": "^2.1.0", - "intl-relativeformat": "^2.1.0", - "invariant": "^2.1.1" + "node_modules/should-equal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", + "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "license": "MIT", + "dependencies": { + "should-type": "^1.4.0" } }, - "react-is": { - "version": "16.10.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.10.2.tgz", - "integrity": "sha512-INBT1QEgtcCCgvccr5/86CfD71fw9EPmDxgiJX4I2Ddr6ZsV6iFXsuby+qWJPtmNuMY0zByTsG4468P7nHuNWA==", - "dev": true + "node_modules/should-format": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", + "integrity": "sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==", + "license": "MIT", + "dependencies": { + "should-type": "^1.3.0", + "should-type-adaptors": "^1.0.1" + } }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", - "dev": true + "node_modules/should-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", + "integrity": "sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==", + "license": "MIT" }, - "react-modal": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.9.1.tgz", - "integrity": "sha512-k+TUkhGWpIVHLsEyjNmlyOYL0Uz03fNZvlkhCImd1h+6fhNgTi6H6jexVXPVhD2LMMDzJyfugxMN+APN/em+eQ==", - "dev": true, - "requires": { - "exenv": "^1.2.0", - "prop-types": "^15.5.10", - "react-lifecycles-compat": "^3.0.0", - "warning": "^4.0.3" + "node_modules/should-type-adaptors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", + "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "license": "MIT", + "dependencies": { + "should-type": "^1.3.0", + "should-util": "^1.0.0" } }, - "react-popover": { - "version": "0.5.10", - "resolved": "https://registry.npmjs.org/react-popover/-/react-popover-0.5.10.tgz", - "integrity": "sha512-5SYDTfncywSH00I70oHd4gFRUR8V0rJ4sRADSI/P6G0RVXp9jUgaWloJ0Bk+SFnjpLPuipTKuzQNNd2CTs5Hrw==", + "node_modules/should-util": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", + "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", + "license": "MIT" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, - "requires": { - "css-vendor": "^0.3.1", - "debug": "^2.6.8", - "lodash.throttle": "^3.0.3", - "prop-types": "^15.5.10" - }, + "license": "MIT", "dependencies": { - "lodash.debounce": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-3.1.1.tgz", - "integrity": "sha1-gSIRw3ipTMKdWqTjNGzwv846ffU=", - "dev": true, - "requires": { - "lodash._getnative": "^3.0.0" - } - }, - "lodash.throttle": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-3.0.4.tgz", - "integrity": "sha1-vE9HH7Mo5Nb9xt8rPTyvET8Pick=", - "dev": true, - "requires": { - "lodash.debounce": "^3.0.0" - } - } + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "react-redux": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz", - "integrity": "sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==", + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dev": true, - "requires": { - "hoist-non-react-statics": "^2.5.0", - "invariant": "^2.0.0", - "lodash": "^4.17.5", - "lodash-es": "^4.17.5", - "loose-envify": "^1.1.0", - "prop-types": "^15.6.0" - }, + "license": "MIT", "dependencies": { - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==", - "dev": true - } + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "react-responsive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/react-responsive/-/react-responsive-5.0.0.tgz", - "integrity": "sha512-oEimZ0FTCC3/pjGDEBHOz06nWbBNDIbMGOdRYp6K9SBUmrqgNAX77hTiqvmRQeLyI97zz4F4kiaFRxFspDxE+w==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, - "requires": { - "hyphenate-style-name": "^1.0.0", - "matchmediaquery": "^0.3.0", - "prop-types": "^15.6.1" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "react-style-proptype": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.2.tgz", - "integrity": "sha512-ywYLSjNkxKHiZOqNlso9PZByNEY+FTyh3C+7uuziK0xFXu9xzdyfHwg4S9iyiRRoPCR4k2LqaBBsWVmSBwCWYQ==", + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, - "requires": { - "prop-types": "^15.5.4" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "react-tabs": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/react-tabs/-/react-tabs-2.3.0.tgz", - "integrity": "sha512-pYaefgVy76/36AMEP+B8YuVVzDHa3C5UFZ3REU78zolk0qMxEhKvUFofvDCXyLZwf0RZjxIfiwok1BEb18nHyA==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "requires": { - "classnames": "^2.2.0", - "prop-types": "^15.5.0" - } + "license": "ISC" }, - "react-test-renderer": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.2.0.tgz", - "integrity": "sha512-Kd4gJFtpNziR9ElOE/C23LeflKLZPRpNQYWP3nQBY43SJ5a+xyEGSeMrm2zxNKXcnCbBS/q1UpD9gqd5Dv+rew==", + "node_modules/signale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz", + "integrity": "sha512-iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==", "dev": true, - "requires": { - "fbjs": "^0.8.16", - "object-assign": "^4.1.1", - "prop-types": "^15.6.0" + "license": "MIT", + "dependencies": { + "chalk": "^2.3.2", + "figures": "^2.0.0", + "pkg-conf": "^2.1.0" + }, + "engines": { + "node": ">=6" } }, - "react-tooltip": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-3.8.0.tgz", - "integrity": "sha512-Uj/vVd0uGuqwTkWeRjKS56T2iwOSvsSMbjqTK7AseHZEMND+WCXXUajaF7+ZsJWTZgnpeT9kBnaBFhchzeDTbw==", + "node_modules/signale/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { - "classnames": "^2.2.5", - "prop-types": "^15.6.0" + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "react-virtualized": { - "version": "9.20.1", - "resolved": "https://registry.npmjs.org/react-virtualized/-/react-virtualized-9.20.1.tgz", - "integrity": "sha512-xIWxBsyNAjceqD3hsE0nw5TcDVxKbIepsHhvS2XneHmNz0KlKxdLdGBmGZBM9ZesEmbZ5EO0Sw70TB1MeCmpbQ==", + "node_modules/signale/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "classnames": "^2.2.3", - "dom-helpers": "^2.4.0 || ^3.0.0", - "loose-envify": "^1.3.0", - "prop-types": "^15.6.0", - "react-lifecycles-compat": "^3.0.4" + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "node_modules/signale/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { - "pify": "^2.3.0" - }, + "license": "MIT", "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "color-name": "1.1.3" } }, - "read-package-json": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", - "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", + "node_modules/signale/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true, - "requires": { - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "json-parse-better-errors": "^1.0.1", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } + "license": "MIT" }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "node_modules/signale/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=0.8.0" } }, - "read-pkg-up": { + "node_modules/signale/node_modules/figures": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, + "license": "MIT", "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" } }, - "readable-stream": { - "version": "2.3.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "node_modules/signale/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "node_modules/signale/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "redux": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", - "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", - "dev": true, - "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", + "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "redux-mock-store": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/redux-mock-store/-/redux-mock-store-1.5.3.tgz", - "integrity": "sha512-ryhkkb/4D4CUGpAV2ln1GOY/uh51aczjcRz9k2L2bPx/Xja3c5pSGJJPyR25GNVRXtKIExScdAgFdiXp68GmJA==", + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, - "requires": { - "lodash.isplainobject": "^4.0.6" + "license": "MIT", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "redux-throttle": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/redux-throttle/-/redux-throttle-0.1.1.tgz", - "integrity": "sha1-QwcFc/AzHRKuFvrmVyrZ1/y3Ya4=", + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, - "requires": { - "lodash.throttle": "4.0.1" + "license": "MIT", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "reflect.ownkeys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz", - "integrity": "sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=", - "dev": true - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", - "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, - "requires": { - "regenerate": "^1.4.0" + "license": "MIT", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "regenerator-transform": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", - "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, - "requires": { - "private": "^0.1.6" + "license": "MIT", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "regex-cache": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, - "requires": { - "is-equal-shallow": "^0.1.3" + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "license": "MIT", + "dependencies": { + "ms": "2.0.0" } }, - "regexp.prototype.flags": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz", - "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==", + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, - "requires": { - "define-properties": "^1.1.2" + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "regexpp": { + "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "regexpu-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.6.0.tgz", - "integrity": "sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.1.0", - "regjsgen": "^0.5.0", - "regjsparser": "^0.6.0", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.1.0" + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "regjsgen": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", - "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", - "dev": true - }, - "regjsparser": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", - "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, + "license": "MIT", "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" } }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true, + "license": "MIT" }, - "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, - "requires": { - "is-finite": "^1.0.0" + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" } }, - "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } }, - "require-main-filename": { + "node_modules/sort-keys-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", + "license": "MIT", + "dependencies": { + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true + "node_modules/sort-keys-length/node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", - "dev": true, - "requires": { - "path-parse": "^1.0.6" + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" } }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, - "requires": { - "resolve-from": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true - } + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "dev": true, - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - } + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true, + "license": "MIT" }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "node_modules/spawn-error-forwarder": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz", + "integrity": "sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g==", "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "license": "MIT" + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "node_modules/spdx-license-ids": { + "version": "3.0.22", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.22.tgz", + "integrity": "sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==", + "license": "CC0-1.0" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "requires": { - "glob": "^7.1.3" + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" } }, - "rst-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", - "integrity": "sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=", + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, - "requires": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" + "license": "MIT", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" } }, - "rsvp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", - "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", - "dev": true + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "run-async": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", - "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, - "requires": { - "is-promise": "^2.1.0" + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" } }, - "run-queue": { + "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, - "requires": { - "aproba": "^1.1.1" + "license": "BSD-3-Clause" + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "license": "MIT", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" } }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "node_modules/startaudiocontext": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz", + "integrity": "sha512-ooOQhOAoCwzMIRwWd9j7xF8kAMo1Wv7Zfw+q6dWDW5gxJUKx15HJXWDg89GMDqfdle9xsqPv+uioneX+bI643g==", + "license": "MIT" }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "requires": { - "ret": "~0.1.10" + "node_modules/static-eval": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.1.tgz", + "integrity": "sha512-MgWpQ/ZjGieSVB3eOJVs4OA2LT/q1vx98KPCTTQPzq/aLr0YUXTsgryTXr4SLfR0ZfUUCiedM9n/ABeDIyy4mA==", + "license": "MIT", + "dependencies": { + "escodegen": "^2.1.0" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "node_modules/static-eval/node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } }, - "sane": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", - "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, - "requires": { - "anymatch": "^2.0.0", - "capture-exit": "^1.2.0", - "exec-sh": "^0.2.0", - "fb-watchman": "^2.0.0", - "fsevents": "^1.2.3", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5", - "watch": "~0.18.0" - }, + "license": "MIT", "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "license": "MIT", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "scratch-audio": { - "version": "0.1.0-prerelease.20190925183642", - "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-0.1.0-prerelease.20190925183642.tgz", - "integrity": "sha512-cvnNawIThkIKyMZdo+cRmYO+ndCG9dcQeaG8rTgok2iSMvG510OUs3DBnFz/GUncu+OryT1VKdeusEfwKf/+ow==", + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", + "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, - "requires": { - "audio-context": "1.0.1", - "minilog": "^3.0.1", - "startaudiocontext": "1.2.1" + "license": "MIT", + "dependencies": { + "is-accessor-descriptor": "^1.0.1", + "is-data-descriptor": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/static-module": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", + "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", + "license": "MIT", + "dependencies": { + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "~1.9.0", + "falafel": "^2.1.0", + "has": "^1.0.1", + "magic-string": "^0.22.4", + "merge-source-map": "1.0.4", + "object-inspect": "~1.4.0", + "quote-stream": "~1.0.2", + "readable-stream": "~2.3.3", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.0", + "through2": "~2.0.3" + } + }, + "node_modules/static-module/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" + }, + "node_modules/static-module/node_modules/escodegen": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", + "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "scratch-blocks": { - "version": "0.1.0-prerelease.1574180945", - "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.1574180945.tgz", - "integrity": "sha512-xkrH2wq8yFO6AHAyGFnCKxuhPO7bmZOArRwJRcb5/uJudF7mPZwLue2wmqtDhu+kAITYBNbbB3qjakeuwgmTPg==", - "dev": true, - "requires": { - "exports-loader": "0.6.3", - "imports-loader": "0.6.5" + "node_modules/static-module/node_modules/esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" } }, - "scratch-l10n": { - "version": "3.6.20191210224141", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.6.20191210224141.tgz", - "integrity": "sha512-sbbUMMxTaLe591wHrI3NGLVmZALN1QNZcHmbpm4SNlYF80ZL4RaOsMtp1PuIav/b0r2hJTbfngc5u7zAYYty0g==", - "dev": true, - "requires": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "babel-plugin-react-intl": "^3.0.1", - "transifex": "1.6.6" + "node_modules/static-module/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" } }, - "scratch-paint": { - "version": "0.2.0-prerelease.20191217213717", - "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20191217213717.tgz", - "integrity": "sha512-TPEYgt7nDEbVnmA/DiiasuYgmGUyrGizhMLzgwx2W8NB8RlEV/PVHbQAsZKoRu+dj8F8bPpz/PYpQOXBUJjNuA==", - "dev": true, - "requires": { - "@scratch/paper": "0.11.20190729152410", - "classnames": "2.2.5", - "keymirror": "0.1.1", - "lodash.bindall": "4.4.0", - "lodash.omit": "4.5.0", - "minilog": "3.1.0", - "parse-color": "1.0.0", - "prop-types": "^15.5.10", - "scratch-svg-renderer": "0.2.0-prerelease.20191217211338" - }, + "node_modules/static-module/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/static-module/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "license": "MIT", "dependencies": { - "classnames": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", - "integrity": "sha1-+zgB1FNGdknvNgPH1hoCvRKb3m0=", - "dev": true - } + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "scratch-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz", - "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==", - "dev": true, - "requires": { - "ajv": "6.3.0", - "jszip": "3.1.5", - "pify": "4.0.1" - }, + "node_modules/static-module/node_modules/object-inspect": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", + "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", + "license": "MIT" + }, + "node_modules/static-module/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "license": "MIT", "dependencies": { - "ajv": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz", - "integrity": "sha1-FlCkERTvAFdMrBC4Ay2PTBSBLac=", - "dev": true, - "requires": { - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, - "core-js": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", - "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", - "dev": true - }, - "fast-deep-equal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true - }, - "jszip": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz", - "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", - "dev": true, - "requires": { - "core-js": "~2.3.0", - "es6-promise": "~3.0.2", - "lie": "~3.1.0", - "pako": "~1.0.2", - "readable-stream": "~2.0.6" - } - }, - "lie": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", - "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", - "dev": true, - "requires": { - "immediate": "~3.0.5" - } - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - } + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" } }, - "scratch-render": { - "version": "0.1.0-prerelease.20191217212645", - "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20191217212645.tgz", - "integrity": "sha512-j7NF/lgeWE09cnQzVW8uW28kUZ/QstWTM4slM3Rx8Uuip6tGb8N84Yj/8mMKU+DRXU1bT3yIh8JRSuguzd3Tvg==", - "dev": true, - "requires": { - "grapheme-breaker": "0.3.2", - "hull.js": "0.2.10", - "ify-loader": "1.0.4", - "linebreak": "0.3.0", - "minilog": "3.1.0", - "raw-loader": "^0.5.1", - "scratch-storage": "^1.0.0", - "scratch-svg-renderer": "0.2.0-prerelease.20191217211338", - "twgl.js": "4.4.0" + "node_modules/static-module/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" } }, - "scratch-render-fonts": { - "version": "1.0.0-prerelease.20180906193204", - "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20180906193204.tgz", - "integrity": "sha512-tVDUTKO/gJnEv94HTyBWW/e/JwsZIslByzehuXQ7QvrngEh28gvHaCRwKMX/cqprizu4TFqvfx4Xh2n9e5XekA==", - "dev": true, - "requires": { - "base64-loader": "1.0.0" + "node_modules/static-module/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "scratch-sb1-converter": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/scratch-sb1-converter/-/scratch-sb1-converter-0.2.7.tgz", - "integrity": "sha512-MF1NzmRLbgCiq7wiSTuk2C9rQC8uM5Wj7SaYsn1SEMWNK9rtK0uc3LSm8FnEt14QS/1Icx2YgMsUPKR0HaPDdQ==", - "dev": true, - "requires": { - "js-md5": "0.7.3", - "minilog": "3.1.0", - "text-encoding": "^0.7.0" - } + "node_modules/static-module/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "scratch-storage": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.2.tgz", - "integrity": "sha512-Xi169m/k6yYJU7aXTLgIxWjIumYamMSkRdSQiQ39p6kQeniGzm8ncBbJuGOs1UDh0Y3b6g1DrqX24YaSQL201w==", - "dev": true, - "requires": { - "arraybuffer-loader": "^1.0.3", - "base64-js": "1.3.0", - "js-md5": "0.7.3", - "minilog": "3.1.0", - "nets": "3.2.0", - "text-encoding": "0.7.0", - "worker-loader": "^2.0.0" - }, - "dependencies": { - "base64-js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true - } + "node_modules/static-module/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "scratch-svg-renderer": { - "version": "0.2.0-prerelease.20191217211338", - "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20191217211338.tgz", - "integrity": "sha512-38L23abfi8QOMbPc0DOdLYRvEi19iSI7/5xf9geblONSNF6RYrENSTYvmVw9mOxHYj8FSODKwLhkp5OD6gpekg==", - "dev": true, - "requires": { - "base64-js": "1.2.1", - "base64-loader": "1.0.0", - "minilog": "3.1.0", - "scratch-render-fonts": "1.0.0-prerelease.20180906193204", - "transformation-matrix": "1.14.1" - }, + "node_modules/static-module/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { - "base64-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", - "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", - "dev": true - } + "safe-buffer": "~5.1.0" } }, - "scratch-translate-extension-languages": { - "version": "0.0.20191118205314", - "resolved": "https://registry.npmjs.org/scratch-translate-extension-languages/-/scratch-translate-extension-languages-0.0.20191118205314.tgz", - "integrity": "sha512-r0lvpgQjPMjbhI2wROrgoXzBhCvWJdkbAqJMfl2CdNqrwBpUXqLvNNtI3VtNLPJAcp9VfxEylkU9lVZ0gvU46Q==", - "dev": true - }, - "scratch-vm": { - "version": "0.2.0-prerelease.20191119203901", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20191119203901.tgz", - "integrity": "sha512-og+u9XHgCN9HFK14RVcOWawFMexnfVh7fLVRq36DSidUQkUPhS4Ls4V9qGCqOAV3WIlI0EXoXy6KdLfieVX+SQ==", - "dev": true, - "requires": { - "@vernier/godirect": "1.5.0", - "arraybuffer-loader": "^1.0.6", - "atob": "2.1.2", - "btoa": "1.2.1", - "canvas-toBlob": "1.0.0", - "decode-html": "2.0.0", - "diff-match-patch": "1.0.4", - "format-message": "6.2.1", - "htmlparser2": "3.10.0", - "immutable": "3.8.1", - "jszip": "^3.1.5", - "minilog": "3.1.0", - "nets": "3.2.0", - "scratch-parser": "5.0.0", - "scratch-sb1-converter": "0.2.7", - "scratch-translate-extension-languages": "0.0.20191118205314", - "socket.io-client": "2.0.4", - "text-encoding": "0.7.0", - "worker-loader": "^1.1.1" - }, - "dependencies": { - "htmlparser2": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz", - "integrity": "sha512-J1nEUGv+MkXS0weHNWVKJJ+UrLfePxRWpN3C9bEi9fLxL2+ggW94DQvgYVXsaT30PGwYRIZKNZXuyMhp3Di4bQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.0", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.0.6" - } - }, - "immutable": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.1.tgz", - "integrity": "sha1-IAgH8Rqw9ycQ6khVQt4IgHX2jNI=", - "dev": true - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "worker-loader": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-1.1.1.tgz", - "integrity": "sha512-qJZLVS/jMCBITDzPo/RuweYSIG8VJP5P67mP/71alGyTZRe1LYJFdwLjLalY3T5ifx0bMDRD3OB6P2p1escvlg==", - "dev": true, - "requires": { - "loader-utils": "^1.0.0", - "schema-utils": "^0.4.0" - } - } + "node_modules/static-module/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "license": "MIT", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, + "node_modules/static-module/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "license": "MIT", "dependencies": { - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, - "requires": { - "node-forge": "0.9.0" + "license": "MIT", + "engines": { + "node": ">= 0.8" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, + "license": "MIT", "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, - "serialize-javascript": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", - "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", - "dev": true - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, + "license": "MIT", "dependencies": { - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" + "license": "MIT", + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "node_modules/stream-combiner2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true, + "license": "MIT" }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "node_modules/stream-combiner2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "node_modules/stream-combiner2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true, + "license": "MIT" }, - "setprototypeof": { + "node_modules/stream-combiner2/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "shallow-copy": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", - "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, - "requires": { - "shebang-regex": "^1.0.0" + "license": "MIT", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, - "shebang-regex": { + "node_modules/stream-http/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "shellwords": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", - "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", - "dev": true - }, - "should": { - "version": "13.2.3", - "resolved": "https://registry.npmjs.org/should/-/should-13.2.3.tgz", - "integrity": "sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, - "requires": { - "should-equal": "^2.0.0", - "should-format": "^3.0.3", - "should-type": "^1.4.0", - "should-type-adaptors": "^1.0.1", - "should-util": "^1.0.0" - } + "license": "MIT" }, - "should-equal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz", - "integrity": "sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==", + "node_modules/stream-http/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "requires": { - "should-type": "^1.4.0" + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "should-format": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz", - "integrity": "sha1-m/yPdPo5IFxT04w01xcwPidxJPE=", + "node_modules/stream-http/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, - "requires": { - "should-type": "^1.3.0", - "should-type-adaptors": "^1.0.1" - } - }, - "should-type": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz", - "integrity": "sha1-B1bYzoRt/QmEOmlHcZ36DUz/XPM=", - "dev": true + "license": "MIT" }, - "should-type-adaptors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz", - "integrity": "sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==", + "node_modules/stream-http/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "requires": { - "should-type": "^1.3.0", - "should-util": "^1.0.0" + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "should-util": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz", - "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==", - "dev": true + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "slash": { + "node_modules/string-length": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha512-Qka42GGrS8Mm3SZ+7cH8UXiIWI867/b/Z/feQSpQx/rbfB8UGknGEZVaUQMOUVj+soY6NpWAxily63HI1OckVQ==", "dev": true, - "requires": { - "ansi-styles": "^3.2.0", + "license": "MIT", + "dependencies": { "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" } }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "node_modules/string-length/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "license": "MIT", + "dependencies": { + "ansi-regex": "^3.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, + "license": "MIT", "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "socket.io-client": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.0.4.tgz", - "integrity": "sha1-CRilUkBtxeVAs4Dc2Xr8SmQzL44=", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~2.6.4", - "engine.io-client": "~3.1.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.1.1", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - } + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "socket.io-parser": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.1.3.tgz", - "integrity": "sha512-g0a2HPqLguqAczs3dMECuA1RgoGFPyvDqcbaDEdCWY9g59kdUAz3YRmaJBNKXflrHNwB7Q12Gkf/0CZXfdHR7g==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "has-binary2": "~1.0.2", - "isarray": "2.0.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==", "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, + "license": "MIT", "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "node_modules/strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "license": "MIT", + "dependencies": { + "is-natural-number": "^4.0.1" + } }, - "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", "dev": true, - "requires": { - "atob": "^2.1.1", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "requires": { - "source-map": "^0.5.6" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", - "dev": true + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "node_modules/strip-outer/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" } }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", - "dev": true + "node_modules/style-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-4.0.0.tgz", + "integrity": "sha512-1V4WqhhZZgjVAVJyt7TdDPZoPBPNHbekX4fWnCJL1yQukhCeZhJySUL+gL9y6sNdN95uEOS83Y55SqHcP7MzLA==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.27.0" + } }, - "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "license": "MIT", "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" } }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "integrity": "sha512-jX8Et4hHg57mug1/079yitEKWGB3LCwoxByLsNim89LABq8NqgiX+6iYVOsq0vX8uJHkU+DZ5fnq95f800bEsQ==", "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "license": "MIT", "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" + "node_modules/tar-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true + "node_modules/tar-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "node_modules/tar-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "ssri": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", - "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", "dev": true, - "requires": { - "safe-buffer": "^5.1.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "startaudiocontext": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/startaudiocontext/-/startaudiocontext-1.2.1.tgz", - "integrity": "sha1-RtLKtUYseRGArMciPju7wycshZU=", - "dev": true - }, - "static-eval": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.3.tgz", - "integrity": "sha512-zsxDGucfAh8T339sSKgpFbvg15Fms2IVaJGC+jqp0bVsxhcpM+iMeAI8weNo8dmf4OblgifTBUoyk1vGVtYw2w==", + "node_modules/tempy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-1.0.1.tgz", + "integrity": "sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==", "dev": true, - "requires": { - "escodegen": "^1.11.1" + "license": "MIT", + "dependencies": { + "del": "^6.0.0", + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "static-module": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz", - "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==", - "dev": true, - "requires": { - "concat-stream": "~1.6.0", - "convert-source-map": "^1.5.1", - "duplexer2": "~0.1.4", - "escodegen": "~1.9.0", - "falafel": "^2.1.0", - "has": "^1.0.1", - "magic-string": "^0.22.4", - "merge-source-map": "1.0.4", - "object-inspect": "~1.4.0", - "quote-stream": "~1.0.2", - "readable-stream": "~2.3.3", - "shallow-copy": "~0.0.1", - "static-eval": "^2.0.0", - "through2": "~2.0.3" + "node_modules/terser": { + "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.15.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.14", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz", + "integrity": "sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==", + "license": "MIT", "dependencies": { - "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", - "dev": true + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "serialize-javascript": "^6.0.2", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - "object-inspect": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz", - "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==", - "dev": true + "esbuild": { + "optional": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "uglify-js": { "optional": true } } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" } }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "node_modules/test-exclude": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "license": "ISC", + "dependencies": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" } }, - "stream-shift": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", - "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", - "dev": true - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true - }, - "string-length": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", - "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "node_modules/test-exclude/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", "dev": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^4.0.0" - }, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/test-exclude/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==", "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "string.prototype.trim": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.0.tgz", - "integrity": "sha512-9EIjYD/WdlvLpn987+ctkLf0FfvBefOCuiEr2henD8X+7jfwPnyvTdmW8OJhj5p+M0/96mBdynLWkxUr+rHlpg==", + "node_modules/test-exclude/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.13.0", - "function-bind": "^1.1.1" - } + "license": "ISC" }, - "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "node_modules/test-exclude/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "node_modules/test-exclude/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" + "license": "MIT", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/test-exclude/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, - "requires": { - "safe-buffer": "~5.1.0" + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "node_modules/test-exclude/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==", "dev": true, - "requires": { - "ansi-regex": "^2.0.0" + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "node_modules/test-exclude/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", "dev": true, - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" + "license": "MIT", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/test-exclude/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, - "requires": { - "has-flag": "^3.0.0" + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, - "svg-to-image": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/svg-to-image/-/svg-to-image-1.1.3.tgz", - "integrity": "sha1-1v9NiDyo9+P3krQrIyixXL4vsPM=", + "node_modules/test-exclude/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, - "requires": { - "load-img": "^1.0.0" + "license": "MIT", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "node_modules/test-exclude/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==", "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, + "license": "MIT", "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "tapable": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", - "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", - "dev": true - }, - "tcp-port-used": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz", - "integrity": "sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q==", + "node_modules/test-exclude/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==", "dev": true, - "requires": { - "debug": "4.1.0", - "is2": "2.0.1" - }, + "license": "MIT", "dependencies": { - "debug": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", - "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "terser": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.3.8.tgz", - "integrity": "sha512-otmIRlRVmLChAWsnSFNO0Bfk6YySuBp6G9qrHiJwlLDd4mxe2ta4sjI7TzIR+W1nBMjilzrMcPOz9pSusgx3hQ==", + "node_modules/test-exclude/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==", "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - } + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "terser-webpack-plugin": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz", - "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==", + "node_modules/test-exclude/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^1.7.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "cacache": { - "version": "12.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", - "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "test-exclude": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", - "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "node_modules/test-exclude/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==", "dev": true, - "requires": { - "arrify": "^1.0.1", - "micromatch": "^2.3.11", - "object-assign": "^4.1.0", - "read-pkg-up": "^1.0.1", - "require-main-filename": "^1.0.1" + "license": "MIT", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==", + "dev": true, + "license": "MIT", "dependencies": { - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1" - } - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true, - "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^0.1.0" - } - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true, - "requires": { - "is-extglob": "^1.0.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true, - "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, - "requires": { - "is-utf8": "^0.2.0" - } - } + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "text-encoding": { + "node_modules/test-exclude/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/text-encoding": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", - "dev": true + "deprecated": "no longer maintained", + "license": "(Unlicense OR Apache-2.0)" }, - "text-table": { + "node_modules/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thingies": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", + "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } }, - "throat": { + "node_modules/throat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", - "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", - "dev": true + "integrity": "sha512-wCVxLDcFxw7ujDxaeJC6nfl2XfHJNYs8yUYJnvMgtPEFlttP9tHSfRUv2vBe6C4hkVFPWoP1P6ZccbYjmSEkKA==", + "dev": true, + "license": "MIT" }, - "through": { + "node_modules/through": { "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", "dev": true, - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "license": "MIT", + "dependencies": { + "readable-stream": "3" } }, - "thunky": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", - "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", - "dev": true + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true, + "license": "MIT" }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" } }, - "tiny-inflate": { + "node_modules/tiny-inflate": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", - "dev": true + "license": "MIT" }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" + "node_modules/tldts": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.17.tgz", + "integrity": "sha512-Y1KQBgDd/NUc+LfOtKS6mNsC9CCaH+m2P1RoIZy7RAPo3C3/t8X45+zgut31cRZtZ3xKPjfn3TkGTrctC2TQIQ==", + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.17" + }, + "bin": { + "tldts": "bin/cli.js" } }, - "tmpl": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", - "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", - "dev": true + "node_modules/tldts-core": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.17.tgz", + "integrity": "sha512-DieYoGrP78PWKsrXr8MZwtQ7GLCUeLxihtjC1jZsW1DnvSMdKPitJSe8OSYDM2u5H6g3kWJZpePqkp43TfLh0g==", + "license": "MIT" }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true + "node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } }, - "to-arraybuffer": { + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true, + "license": "MIT" }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha512-lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "to-object-path": { + "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "kind-of": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "license": "MIT", "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "to-regex": { + "node_modules/to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "to-style": { + "node_modules/to-style": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/to-style/-/to-style-1.3.3.tgz", - "integrity": "sha1-Y6K3Cm9KfU/cLtV6C+TnI1y2aZw=", - "dev": true - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true + "integrity": "sha512-9K8KYegr9hrdm8yPpu5iZjJp5t6RPAp4gFDU5hD9zR8hwqgF4fsoSitMtkRKQG2qkP5j/uG3wajbgV09rjmIqg==", + "license": "MIT" }, - "toposort": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", - "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", - "dev": true - }, - "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, - "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "license": "BSD-3-Clause", "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tough-cookie/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "tr46": { + "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", - "dev": true + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" }, - "transformation-matrix": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.14.1.tgz", - "integrity": "sha512-zbfndGg//cMW4aytXuF4dkBuUu/SUBA94U2zkmDoRwcplS9hCCn/S3VDp4A7CXw5tVxeCm9F6zdfHzWzei6nXg==", - "dev": true + "node_modules/transformation-matrix": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/transformation-matrix/-/transformation-matrix-1.15.3.tgz", + "integrity": "sha512-ThJH58GNFKhCw3gIoOtwf3tNwuYjbyEeiGdeq4mNMYWdJctnI896KUqn6PVt7jmNVepqa1bcKQtnMB1HtjsDMA==", + "license": "MIT" }, - "transifex": { + "node_modules/transifex": { "version": "1.6.6", "resolved": "https://registry.npmjs.org/transifex/-/transifex-1.6.6.tgz", "integrity": "sha512-uHeRvhfLfZN+JdH+X0zR1jkQAbMGkgExZgcXm31CzaVVd4kq98YaPr4MCgCU0LwA7cgOuB97d2HZQ/WikOAxlg==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "commander": "^2.9.0", "lodash": "^4.17.1", "mkpath": "^1.0.0", "mocha": "^4.0.0", "request": "^2.34.0", "should": "^13.0.0" + }, + "bin": { + "transifex": "bin/index.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/transifex/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/traverse": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", + "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "trim-right": { + "node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", - "dev": true + "integrity": "sha512-WZGXGstmCWgeevgTL54hrCuw1dyMQIzWy7ZfqRJfSmJZBwklI15egmQytFP6bPidmw3M8d5yEowl1niq4vmqZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true + "node_modules/ts-loader": { + "version": "9.5.4", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz", + "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4", + "source-map": "^0.7.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/ts-loader/node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "peer": true }, - "tty-browserify": { + "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true, + "license": "MIT" }, - "tunnel-agent": { + "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "requires": { + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "license": "Apache-2.0", + "dependencies": { "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" } }, - "tweetnacl": { + "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "license": "Unlicense" }, - "twgl.js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.4.0.tgz", - "integrity": "sha512-W+uFP2DyK2dNhE38PcpituNi8CBm+YO5gY6o/IWEILT7NNDTT1wo3YcMmydwiCfUbnT7tz+EcjV7KlZLgE1PlQ==", - "dev": true + "node_modules/twgl.js": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/twgl.js/-/twgl.js-4.24.0.tgz", + "integrity": "sha512-JGVTxuV9dqaBmajXyvuZIlhCHrTbIaoNjQvtdoLHyK74OtbmNwZUj6rfdp+pz9htitI/tVxiVQ2nuw+KmD29vg==", + "license": "MIT" }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, - "requires": { - "prelude-ls": "~1.1.2" + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } }, - "ua-parser-js": { - "version": "0.7.20", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.20.tgz", - "integrity": "sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==", - "dev": true + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "uglify-js": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", - "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, - "requires": { - "commander": "~2.19.0", - "source-map": "~0.6.1" + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", "dependencies": { - "commander": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", - "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "uglifyjs-webpack-plugin": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", - "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", - "dev": true, - "requires": { - "cacache": "^10.0.4", - "find-cache-dir": "^1.0.0", - "schema-utils": "^0.4.5", - "serialize-javascript": "^1.4.0", - "source-map": "^0.6.1", - "uglify-es": "^3.3.4", - "webpack-sources": "^1.1.0", - "worker-farm": "^1.5.2" + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, - "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, - "find-cache-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", - "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^1.0.0", - "pkg-dir": "^2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "dev": true, - "requires": { - "pify": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } - }, - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - } - } + "engines": { + "node": ">=14.17" + } + }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" } }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "license": "MIT", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "unicode-match-property-value-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", - "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", - "dev": true + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } }, - "unicode-property-aliases-ecmascript": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", - "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", - "dev": true + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "unicode-trie": { + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-trie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", - "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", - "dev": true, - "requires": { + "integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==", + "license": "MIT", + "dependencies": { "pako": "^0.2.5", "tiny-inflate": "^1.0.0" - }, - "dependencies": { - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - } } }, - "union-value": { + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "license": "MIT" + }, + "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "unique-filename": { + "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "unique-slug": "^2.0.0" } }, - "unique-slug": { + "node_modules/unique-slug": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "imurmurhash": "^0.1.4" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, - "unset-value": { + "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "license": "MIT", "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", - "dev": true + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, - "requires": { + "license": "MIT" + }, + "node_modules/update-browserslist-db": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", + "dependencies": { "punycode": "^2.1.0" } }, - "urix": { + "node_modules/uri-js/node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true, + "license": "MIT" }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "node_modules/url": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", + "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "license": "MIT", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.12.3" }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true, + "license": "MIT" + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dev": true, + "license": "MIT", + "peer": true, "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true } } }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "node_modules/url-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "license": "MIT", + "peer": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "url2": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/url2/-/url2-0.0.0.tgz", - "integrity": "sha1-Tqq9HVw6yQ1iq0SFyZhCKGWgSxo=", - "dev": true + "node_modules/url-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/url-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/url-loader/node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } }, - "use": { + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "license": "MIT", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/url/node_modules/qs": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "util": { + "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, - "requires": { - "inherits": "2.0.3" - }, + "license": "MIT", "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "inherits": "2.0.3" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, - "util.promisify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", - "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true, - "requires": { - "define-properties": "^1.1.2", - "object.getownpropertydescriptors": "^2.0.3" - } + "license": "ISC" }, - "utila": { + "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", - "dev": true + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true, + "license": "MIT" }, - "utils-merge": { + "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } }, - "uuid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", - "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==", - "dev": true + "node_modules/uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "v8-compile-cache": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz", - "integrity": "sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==", - "dev": true + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true, + "license": "MIT" }, - "validate-npm-package-license": { + "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } }, - "verror": { + "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "requires": { + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "license": "MIT", + "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, - "vlq": { + "node_modules/vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "dev": true + "license": "MIT" }, - "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", - "dev": true + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true, + "license": "MIT" }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, - "requires": { - "makeerror": "1.0.x" + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" } }, - "warning": { + "node_modules/warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "loose-envify": "^1.0.0" } }, - "watch": { + "node_modules/watch": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", - "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "integrity": "sha512-oUcoHFG3UF2pBlHcMORAojsN09BfqSfWYWlR3eSSjUFR7eBEx53WT2HX/vZeVTTIVCGShcazb+t6IcBRCNXqvA==", "dev": true, - "requires": { + "license": "Apache-2.0", + "dependencies": { "exec-sh": "^0.2.0", "minimist": "^1.2.0" }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" } }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "dev": true, - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" + "node_modules/watchpack": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "wav-encoder": { + "node_modules/wav-encoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/wav-encoder/-/wav-encoder-1.3.0.tgz", "integrity": "sha512-FXJdEu2qDOI+wbVYZpu21CS1vPEg5NaxNskBr4SaULpOJMrLE6xkH8dECa7PiS+ZoeyvP7GllWUAxPN3AvFSEw==", - "dev": true + "license": "MIT" }, - "wbuf": { + "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "minimalistic-assert": "^1.0.0" } }, - "weak-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/weak-map/-/weak-map-1.0.0.tgz", - "integrity": "sha1-tm5Wqd8L0lp2u/G1FNsSkIBhSjc=", - "dev": true - }, - "web-audio-test-api": { + "node_modules/web-audio-test-api": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/web-audio-test-api/-/web-audio-test-api-0.5.2.tgz", - "integrity": "sha1-weJNIc7QYD8aSVJyoetmnbKIc/o=", - "dev": true + "integrity": "sha512-RevLfVjp+wwe/dBPe361IpmNpeXXW6JVmlp8dk0YIxLwAh7evn6JpEQQalVgX4PH/jA8tpLpjD/8tFNUYTf88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/web-worker": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/web-worker/-/web-worker-1.5.0.tgz", + "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==", + "license": "Apache-2.0" }, - "webidl-conversions": { + "node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, - "webpack": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.0.tgz", - "integrity": "sha512-yNV98U4r7wX1VJAj5kyMsu36T8RPPQntcb5fJLOsMz/pt/WrKC0Vp1bAlqPLkA1LegSwQwf6P+kAbyhRKVQ72g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", + "node_modules/webpack": { + "version": "5.102.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz", + "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.15.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.26.3", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true + "enhanced-resolve": "^5.17.3", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.11", + "watchpack": "^2.4.4", + "webpack-sources": "^3.3.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "webpack-cli": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.9.tgz", - "integrity": "sha512-xwnSxWl8nZtBl/AFJCOn9pG7s5CYUYdZxmmukv+fAHLcBIHM36dImfpQg3WfShZXeArkWlf6QRw24Klcsv8a5A==", - "dev": true, - "requires": { - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "enhanced-resolve": "4.1.0", - "findup-sync": "3.0.0", - "global-modules": "2.0.0", - "import-local": "2.0.0", - "interpret": "1.2.0", - "loader-utils": "1.2.3", - "supports-color": "6.1.0", - "v8-compile-cache": "2.0.3", - "yargs": "13.2.4" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "enhanced-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", - "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.4.0", - "tapable": "^1.0.0" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } + "node_modules/webpack-cli": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", + "colorette": "^2.0.14", + "commander": "^10.0.1", + "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true }, - "yargs": { - "version": "13.2.4", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz", - "integrity": "sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.0" - } + "webpack-bundle-analyzer": { + "optional": true }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "webpack-dev-server": { + "optional": true } } }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "node_modules/webpack-cli/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/webpack-cli/node_modules/interpret": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==", - "dev": true + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true } } }, - "webpack-dev-server": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.8.2.tgz", - "integrity": "sha512-0xxogS7n5jHDQWy0WST0q6Ykp7UGj4YvWh+HVN71JoE7BwPxMZrwgraBvmdEMbDVMBzF0u+mEzn8TQzBm5NYJQ==", + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.1.tgz", + "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-server": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.2.tgz", + "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.2.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.4", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.24", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", + "connect-history-api-fallback": "^2.0.0", + "express": "^4.21.2", + "graceful-fs": "^4.2.6", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.4.0", - "spdy": "^4.0.1", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "12.0.5" + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "requires": { - "invert-kv": "^2.0.0" - } - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } + "webpack-cli": { + "optional": true } } }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-node-externals": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", + "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" } }, - "webpack-sources": { + "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" - }, + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "5.18.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.3.tgz", + "integrity": "sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==", + "license": "MIT", "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" } }, - "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", - "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "node_modules/webpack/node_modules/tapable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack/node_modules/webpack-sources": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", + "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, - "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", - "dev": true + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } }, - "whatwg-encoding": { + "node_modules/whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "iconv-lite": "0.4.24" } }, - "whatwg-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", - "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==", - "dev": true + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz", - "integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=", + "integrity": "sha512-nUvUPuenPFtPfy/X+dAYh/TfRbTBlnXTM5iIfLseJFkkQewmpG9pGR6i87E9qL+lZaJzv+99kkQWoGOtLfkZQQ==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" + } + }, + "node_modules/whatwg-url/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", "dependencies": { - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", - "dev": true - } + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, - "requires": { - "isexe": "^2.0.0" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "wordwrap": { + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" }, - "worker-farm": { + "node_modules/worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "errno": "~0.1.7" } }, - "worker-loader": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz", - "integrity": "sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==", - "dev": true, - "requires": { - "loader-utils": "^1.0.0", - "schema-utils": "^0.4.0" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, + "license": "MIT", "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "requires": { - "mkdirp": "^0.5.1" - } + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, - "write-file-atomic": { + "node_modules/write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", "signal-exit": "^3.0.2" } }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, - "requires": { - "global": "~4.3.0", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "license": "MIT", + "dependencies": { + "global": "~4.4.0", "is-function": "^1.0.1", "parse-headers": "^2.0.0", "xtend": "^4.0.0" - }, - "dependencies": { - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "dev": true, - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", - "dev": true - } } }, - "xml": { + "node_modules/xml": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", - "dev": true + "integrity": "sha512-huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==", + "dev": true, + "license": "MIT" }, - "xml-name-validator": { + "node_modules/xml-name-validator": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", - "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", - "dev": true + "integrity": "sha512-jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==", + "dev": true, + "license": "WTFPL" }, - "xml2js": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz", - "integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==", + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "sax": ">=0.6.0", - "util.promisify": "~1.0.0", "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" } }, - "xmlbuilder": { + "node_modules/xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4.0" + } }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "license": "MIT", + "engines": { + "node": ">=0.4" + } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, - "yargs": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-9.0.1.tgz", - "integrity": "sha1-UqzCP+7Kw0BCB47njAwAf1CF20w=", + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, - "requires": { - "camelcase": "^4.1.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^2.0.0", - "read-pkg-up": "^2.0.0", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^7.0.0" + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, - "dependencies": { - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true - } + "engines": { + "node": ">=12" } }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, - "requires": { - "camelcase": "^4.1.0" + "license": "ISC", + "engines": { + "node": ">=10" } }, - "yauzl": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "requires": { - "fd-slicer": "~1.0.1" + "license": "ISC", + "engines": { + "node": ">=12" } }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index a184943ae12..72c1818328b 100644 --- a/package.json +++ b/package.json @@ -1,133 +1,149 @@ { "name": "scratch-gui", - "version": "0.1.0", - "description": "GraphicaL User Interface for creating and running Scratch 3.0 projects", + "version": "5.2.15", + "description": "Graphical User Interface for creating and running Scratch 3.0 projects", + "author": "Massachusetts Institute of Technology", + "license": "AGPL-3.0-only", + "homepage": "https://github.com/scratchfoundation/scratch-gui#readme", + "repository": { + "type": "git", + "url": "https://github.com/scratchfoundation/scratch-gui.git" + }, "main": "./dist/scratch-gui.js", "scripts": { - "build": "npm run clean && webpack --progress --colors --bail", - "clean": "rimraf ./build && mkdirp build && rimraf ./dist && mkdirp dist", - "deploy": "touch build/.nojekyll && gh-pages -t -d build -m \"Build for $(git log --pretty=format:%H -n1)\"", + "build": "npm run clean && webpack", + "clean": "rimraf ./build ./dist", + "deploy": "touch build/.nojekyll && gh-pages -t -d build -m \"[skip ci] Build for $(git log --pretty=format:%H -n1)\"", + "prepublish": "node scripts/prepublish.mjs", "prune": "./prune-gh-pages.sh", "i18n:push": "tx-push-src scratch-editor interface translations/en.json", - "i18n:src": "rimraf ./translations/messages/src && babel src > tmp.js && rimraf tmp.js && build-i18n-src ./translations/messages/src ./translations/ && npm run i18n:push", - "start": "webpack-dev-server", + "i18n:src": "rimraf ./translations/messages/src && babel src > tmp.js && rimraf tmp.js && build-i18n-src ./translations/messages/src ./translations/", + "start": "webpack serve", "test": "npm run test:lint && npm run test:unit && npm run build && npm run test:integration", - "test:integration": "jest --runInBand test[\\\\/]integration", + "test:integration": "jest --maxWorkers=4 test[\\\\/]integration", "test:lint": "eslint . --ext .js,.jsx", "test:unit": "jest test[\\\\/]unit", "test:smoke": "jest --runInBand test[\\\\/]smoke", - "watch": "webpack --progress --colors --watch" + "watch": "webpack --watch" }, - "author": "Massachusetts Institute of Technology", - "license": "BSD-3-Clause", - "homepage": "https://github.com/LLK/scratch-gui#readme", - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/LLK/scratch-gui.git" - }, - "peerDependencies": { - "react": "^16.0.0", - "react-dom": "^16.0.0" + "config": { + "commitizen": { + "path": "cz-conventional-changelog" + } }, - "devDependencies": { - "@babel/cli": "^7.1.2", - "@babel/core": "^7.1.2", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-syntax-dynamic-import": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.1.0", - "@babel/preset-env": "^7.1.0", - "@babel/preset-react": "^7.0.0", + "dependencies": { + "@microbit/microbit-universal-hex": "^0.2.2", "arraybuffer-loader": "^1.0.6", "autoprefixer": "^9.0.1", - "babel-core": "7.0.0-bridge.0", - "babel-eslint": "^10.0.1", - "babel-loader": "^8.0.4", - "base64-loader": "1.0.0", - "bowser": "1.9.4", - "chromedriver": "78.0.1", - "classnames": "2.2.6", - "computed-style-to-inline-style": "3.0.0", - "copy-webpack-plugin": "^4.5.1", - "core-js": "2.5.7", - "css-loader": "^1.0.0", - "enzyme": "^3.5.0", - "enzyme-adapter-react-16": "1.3.0", - "es6-object-assign": "1.1.0", - "eslint": "^5.0.1", - "eslint-config-scratch": "^5.0.0", - "eslint-import-resolver-webpack": "^0.11.1", - "eslint-plugin-import": "^2.18.2", - "eslint-plugin-jest": "^22.14.1", - "eslint-plugin-react": "^7.12.4", - "file-loader": "2.0.0", - "get-float-time-domain-data": "0.1.0", - "get-user-media-promise": "1.1.4", - "gh-pages": "github:rschamp/gh-pages#publish-branch-to-subfolder", - "html-webpack-plugin": "^3.2.0", - "immutable": "3.8.2", - "intl": "1.2.5", - "jest": "^21.0.0", - "jest-junit": "^7.0.0", - "js-base64": "2.4.9", - "keymirror": "0.1.1", - "lodash.bindall": "4.4.0", - "lodash.debounce": "4.0.8", - "lodash.defaultsdeep": "4.6.0", - "lodash.isequal": "4.5.0", - "lodash.omit": "4.5.0", - "lodash.pick": "4.4.0", - "lodash.throttle": "4.0.1", - "minilog": "3.1.0", - "mkdirp": "^0.5.1", - "omggif": "1.0.9", - "papaparse": "4.6.2", + "balance-text": "^3.3.1", + "base64-loader": "^1.0.0", + "bowser": "^1.9.4", + "cat-blocks": "npm:scratch-blocks@0.1.0-prerelease.20220318143026", + "classnames": "^2.2.6", + "computed-style-to-inline-style": "^3.0.0", + "cookie": "^0.6.0", + "copy-webpack-plugin": "^6.4.1", + "core-js": "^2.5.7", + "css-loader": "5.2.7", + "dapjs": "^2.3.0", + "es6-object-assign": "^1.1.0", + "fastestsmallesttextencoderdecoder": "^1.0.22", + "get-float-time-domain-data": "^0.1.0", + "get-user-media-promise": "^1.1.4", + "immutable": "^3.8.2", + "intl": "^1.2.5", + "js-base64": "^2.4.9", + "keymirror": "^0.1.1", + "lodash.bindall": "^4.4.0", + "lodash.debounce": "^4.0.8", + "lodash.defaultsdeep": "^4.6.1", + "lodash.omit": "^4.5.0", + "lodash.throttle": "^4.0.1", + "minilog": "^3.1.0", + "omggif": "^1.0.9", + "papaparse": "^5.3.0", "postcss-import": "^12.0.0", - "postcss-loader": "^3.0.0", + "postcss-loader": "4.3.0", "postcss-simple-vars": "^5.0.1", "prop-types": "^15.5.10", "query-string": "^5.1.1", - "raf": "^3.4.0", - "raw-loader": "^0.5.1", - "react": "16.2.0", - "react-contextmenu": "2.9.4", - "react-dom": "16.2.0", - "react-draggable": "3.0.5", - "react-ga": "2.5.3", - "react-intl": "2.9.0", - "react-modal": "3.9.1", - "react-popover": "0.5.10", - "react-redux": "5.0.7", - "react-responsive": "5.0.0", - "react-style-proptype": "3.2.2", - "react-tabs": "2.3.0", - "react-test-renderer": "16.2.0", - "react-tooltip": "3.8.0", - "react-virtualized": "9.20.1", - "redux": "3.7.2", - "redux-mock-store": "^1.2.3", - "redux-throttle": "0.1.1", - "rimraf": "^2.6.1", - "scratch-audio": "0.1.0-prerelease.20190925183642", - "scratch-l10n": "3.6.20191210224141", - "scratch-blocks": "0.1.0-prerelease.1574180945", - "scratch-paint": "0.2.0-prerelease.20191217213717", - "scratch-render": "0.1.0-prerelease.20191217212645", - "scratch-storage": "1.3.2", - "scratch-svg-renderer": "0.2.0-prerelease.20191217211338", - "scratch-vm": "0.2.0-prerelease.20191119203901", + "raw-loader": "^4.0.0", + "react-contextmenu": "^2.9.4", + "react-draggable": "^3.0.5", + "react-ga": "^2.5.3", + "react-intl": "^2.9.0", + "react-modal": "^3.9.1", + "react-popover": "^0.5.10", + "react-redux": "^5.0.7", + "react-responsive": "^5.0.0", + "react-style-proptype": "^3.2.2", + "react-tabs": "^2.3.0", + "react-tooltip": "^4.5.1", + "react-virtualized": "^9.20.1", + "redux": "^3.7.2", + "redux-throttle": "^0.1.1", + "scratch-audio": "^2.0.0", + "scratch-blocks": "^1.1.6", + "scratch-l10n": "^5.0.0", + "scratch-paint": "^3.0.0", + "scratch-render": "^2.0.0", + "scratch-render-fonts": "^1.0.2", + "scratch-storage": "^4.0.0", + "scratch-svg-renderer": "^3.0.0", + "scratch-vm": "^5.0.0", + "startaudiocontext": "^1.2.1", + "style-loader": "4.0.0", + "to-style": "^1.3.3", + "wav-encoder": "^1.3.0", + "xhr": "^2.5.0" + }, + "peerDependencies": { + "react": "^16.0.0", + "react-dom": "^16.0.0" + }, + "devDependencies": { + "@babel/cli": "7.28.3", + "@babel/core": "7.28.5", + "@babel/eslint-parser": "7.28.5", + "@babel/plugin-proposal-object-rest-spread": "7.20.7", + "@babel/plugin-syntax-dynamic-import": "7.8.3", + "@babel/plugin-transform-async-to-generator": "7.27.1", + "@babel/preset-env": "7.28.5", + "@babel/preset-react": "7.28.5", + "@commitlint/cli": "17.8.1", + "@commitlint/config-conventional": "17.8.1", + "babel-core": "7.0.0-bridge.0", + "babel-loader": "9.2.1", + "cheerio": "1.0.0-rc.3", + "enzyme": "3.11.0", + "enzyme-adapter-react-16": "1.15.8", + "eslint": "8.57.1", + "eslint-config-scratch": "9.0.9", + "eslint-import-resolver-webpack": "0.11.1", + "eslint-plugin-import": "2.32.0", + "eslint-plugin-jest": "22.21.0", + "eslint-plugin-react": "7.37.5", + "file-loader": "6.2.0", + "gh-pages": "3.2.3", + "html-webpack-plugin": "5.6.4", + "husky": "8.0.3", + "jest": "21.2.1", + "jest-junit": "7.0.0", + "raf": "3.4.1", + "react-test-renderer": "16.14.0", + "redux-mock-store": "1.5.5", + "rimraf": "2.7.1", + "scratch-semantic-release-config": "3.0.0", + "scratch-webpack-configuration": "3.1.0", "selenium-webdriver": "3.6.0", - "startaudiocontext": "1.2.1", - "style-loader": "^0.23.0", - "svg-to-image": "1.1.3", - "text-encoding": "0.7.0", - "to-style": "1.3.3", - "uglifyjs-webpack-plugin": "^1.2.5", - "wav-encoder": "1.3.0", - "web-audio-test-api": "^0.5.2", - "webpack": "^4.6.0", - "webpack-cli": "^3.1.0", - "webpack-dev-server": "^3.1.3", - "xhr": "2.5.0" + "semantic-release": "19.0.5", + "stream-browserify": "3.0.0", + "url-loader": "4.1.1", + "web-audio-test-api": "0.5.2", + "webpack": "5.102.1", + "webpack-cli": "5.1.4", + "webpack-dev-server": "5.2.2", + "yauzl": "2.10.0" }, "jest": { "setupFiles": [ @@ -138,8 +154,9 @@ "src/test.js" ], "moduleNameMapper": { - "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/test/__mocks__/fileMock.js", - "\\.(css|less)$": "/test/__mocks__/styleMock.js" + "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)\\??$": "/test/__mocks__/fileMock.js", + "\\.(css|less)$": "/test/__mocks__/styleMock.js", + "editor-msgs(\\.js)?$": "/test/__mocks__/editor-msgs-mock.js" } } } diff --git a/release.config.js b/release.config.js new file mode 100644 index 00000000000..48275010925 --- /dev/null +++ b/release.config.js @@ -0,0 +1,19 @@ +module.exports = { + extends: 'scratch-semantic-release-config', + branches: [ + { + name: 'develop' + // default channel + }, + { + name: 'hotfix/REPLACE', // replace with actual hotfix branch name + channel: 'hotfix', + prerelease: 'hotfix' + }, + { + name: 'beta', + channel: 'beta', + prerelease: true + } + ] +}; diff --git a/renovate.json5 b/renovate.json5 new file mode 100644 index 00000000000..40b95b2deab --- /dev/null +++ b/renovate.json5 @@ -0,0 +1,11 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + + "extends": [ + "github>scratchfoundation/scratch-renovate-config:js-lib-bundled" + ], + + "ignoreDeps": [ + "cat-blocks" + ] +} diff --git a/scripts/.eslintrc.js b/scripts/.eslintrc.js new file mode 100644 index 00000000000..8e4a7e3a397 --- /dev/null +++ b/scripts/.eslintrc.js @@ -0,0 +1,8 @@ +const path = require('path'); +module.exports = { + extends: [path.resolve(__dirname, '..', '.eslintrc.js')], + rules: { + // NPM scripts are allowed to use console.log & friends + 'no-console': 'off' + } +}; diff --git a/scripts/prepublish.mjs b/scripts/prepublish.mjs new file mode 100644 index 00000000000..a2afb4da16a --- /dev/null +++ b/scripts/prepublish.mjs @@ -0,0 +1,126 @@ +// From the NPM docs: +// "If you need to perform operations on your package before it is used, in a way that is not dependent on the +// operating system or architecture of the target system, use a prepublish script." +// Once this step is complete, a developer should be able to work without an Internet connection. +// See also: https://docs.npmjs.com/cli/using-npm/scripts + +import fs from 'fs'; +import path from 'path'; + +import crossFetch from 'cross-fetch'; +import yauzl from 'yauzl'; +import {fileURLToPath} from 'url'; + +/** @typedef {import('yauzl').Entry} ZipEntry */ +/** @typedef {import('yauzl').ZipFile} ZipFile */ + +// these aren't set in ESM mode +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +// base/root path for the project +const basePath = path.join(__dirname, '..'); + +/** + * Extract the first matching file from a zip buffer. + * The path within the zip file is ignored: the destination path is `${destinationDirectory}/${basename(entry.name)}`. + * Prints warnings if more than one matching file is found. + * @param {function(ZipEntry): boolean} filter Returns true if the entry should be extracted. + * @param {string} relativeDestDir The directory to extract to, relative to `basePath`. + * @param {Buffer} zipBuffer A buffer containing the zip file. + * @returns {Promise} A Promise for the base name of the written file (without directory). + */ +const extractFirstMatchingFile = (filter, relativeDestDir, zipBuffer) => new Promise((resolve, reject) => { + try { + let extractedFileName; + yauzl.fromBuffer(zipBuffer, {lazyEntries: true}, (zipError, zipfile) => { + if (zipError) { + throw zipError; + } + zipfile.readEntry(); + zipfile.on('end', () => { + resolve(extractedFileName); + }); + zipfile.on('entry', entry => { + if (!filter(entry)) { + // ignore non-matching file + return zipfile.readEntry(); + } + if (extractedFileName) { + console.warn(`Multiple matching files found. Ignoring: ${entry.fileName}`); + return zipfile.readEntry(); + } + extractedFileName = entry.fileName; + console.info(`Found matching file: ${entry.fileName}`); + zipfile.openReadStream(entry, (fileError, readStream) => { + if (fileError) { + throw fileError; + } + const baseName = path.basename(entry.fileName); + const relativeDestFile = path.join(relativeDestDir, baseName); + console.info(`Extracting ${relativeDestFile}`); + const absoluteDestDir = path.join(basePath, relativeDestDir); + fs.mkdirSync(absoluteDestDir, {recursive: true}); + const absoluteDestFile = path.join(basePath, relativeDestFile); + const outStream = fs.createWriteStream(absoluteDestFile); + readStream.on('end', () => { + outStream.close(); + zipfile.readEntry(); + }); + readStream.pipe(outStream); + }); + }); + }); + } catch (error) { + reject(error); + } +}); + +const downloadMicrobitHex = async () => { + const url = 'https://downloads.scratch.mit.edu/microbit/scratch-microbit.hex.zip'; + console.info(`Downloading ${url}`); + const response = await crossFetch(url); + const zipBuffer = Buffer.from(await response.arrayBuffer()); + const relativeHexDir = path.join('static', 'microbit'); + const hexFileName = await extractFirstMatchingFile( + entry => /\.hex$/.test(entry.fileName), + path.join('static', 'microbit'), + zipBuffer + ); + const relativeHexFile = path.join(relativeHexDir, hexFileName); + const relativeGeneratedDir = path.join('src', 'generated'); + const relativeGeneratedFile = path.join(relativeGeneratedDir, 'microbit-hex-url.cjs'); + const absoluteGeneratedDir = path.join(basePath, relativeGeneratedDir); + fs.mkdirSync(absoluteGeneratedDir, {recursive: true}); + const absoluteGeneratedFile = path.join(basePath, relativeGeneratedFile); + const requirePath = `./${path + .relative(relativeGeneratedDir, relativeHexFile) + .split(path.win32.sep) + .join(path.posix.sep)}`; + fs.writeFileSync( + absoluteGeneratedFile, + [ + '// This file is generated by scripts/prepublish.mjs', + '// Do not edit this file directly', + '// This file relies on a loader to turn this `require` into a URL', + `module.exports = require('${requirePath}');`, + '' // final newline + ].join('\n') + ); + console.info(`Wrote ${relativeGeneratedFile}`); +}; + +const prepublish = async () => { + await downloadMicrobitHex(); +}; + +prepublish().then( + () => { + console.info('Prepublish script complete'); + process.exit(0); + }, + e => { + console.error(e); + process.exit(1); + } +); diff --git a/src/.eslintrc.js b/src/.eslintrc.js index 3165dae95a9..665de9ff9d0 100644 --- a/src/.eslintrc.js +++ b/src/.eslintrc.js @@ -9,17 +9,33 @@ module.exports = { process: true }, rules: { + // BEGIN: these caused trouble after upgrading eslint-plugin-react from 7.24.0 to 7.33.2 + 'react/forbid-prop-types': 'off', + 'react/no-unknown-property': 'off', + // END: these caused trouble after upgrading eslint-plugin-react from 7.24.0 to 7.33.2 + 'no-warning-comments': 'off', 'import/no-mutable-exports': 'error', 'import/no-commonjs': 'error', 'import/no-amd': 'error', 'import/no-nodejs-modules': 'error', 'react/jsx-no-literals': 'error', 'no-confusing-arrow': ['error', { - 'allowParens': true + allowParens: true }] }, + overrides: [ + { + files: ['**/.eslintrc.js'], + env: { + node: true + }, + rules: { + 'import/no-commonjs': 'off' + } + } + ], settings: { - react: { + 'react': { version: '16.2' // Prevent 16.3 lifecycle method errors }, 'import/resolver': { diff --git a/src/components/action-menu/action-menu.css b/src/components/action-menu/action-menu.css index 14dbb5df031..03be98cace4 100644 --- a/src/components/action-menu/action-menu.css +++ b/src/components/action-menu/action-menu.css @@ -19,7 +19,7 @@ $more-button-size: 2.25rem; justify-content: center; cursor: pointer; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - background: $motion-primary; + background: $looks-secondary; outline: none; border: none; transition: background-color 0.2s; @@ -45,14 +45,14 @@ button::-moz-focus-inner { border-radius: 100%; width: $main-button-size; height: $main-button-size; - box-shadow: 0 0 0 4px $motion-transparent; + box-shadow: 0 0 0 4px $looks-transparent; z-index: $z-index-add-button; transition: transform, box-shadow 0.5s; } .main-button:hover { transform: scale(1.1); - box-shadow: 0 0 0 6px $motion-transparent; + box-shadow: 0 0 0 6px $looks-transparent; } .main-icon { @@ -72,7 +72,7 @@ button::-moz-focus-inner { */ overflow-y: hidden; - background: $motion-tertiary; + background: $looks-secondary-dark; border-top-left-radius: $more-button-size; border-top-right-radius: $more-button-size; width: $more-button-size; @@ -115,7 +115,7 @@ button::-moz-focus-inner { .more-button { width: $more-button-size; height: $more-button-size; - background: $motion-tertiary; + background: $looks-secondary-dark; } .more-icon { diff --git a/src/components/action-menu/icon--camera.svg b/src/components/action-menu/icon--camera.svg deleted file mode 100644 index e8c442d8f5d..00000000000 --- a/src/components/action-menu/icon--camera.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - camera - Created with Sketch. - - - - - - - \ No newline at end of file diff --git a/src/components/alerts/alert.css b/src/components/alerts/alert.css index 8e5d56296e6..fab305bccec 100644 --- a/src/components/alerts/alert.css +++ b/src/components/alerts/alert.css @@ -15,6 +15,7 @@ padding-right: 1rem; margin-bottom: 7px; min-height: 1.5rem; + pointer-events: all; } .alert.warn { diff --git a/src/components/asset-panel/selector.css b/src/components/asset-panel/selector.css index 6ff5510dabd..712bdf34280 100644 --- a/src/components/asset-panel/selector.css +++ b/src/components/asset-panel/selector.css @@ -20,7 +20,7 @@ align-items: center; justify-content: space-around; padding: 0.75rem 0; - color: $motion-primary; + color: $looks-secondary; text-align: center; background: none; } diff --git a/src/components/audio-trimmer/audio-trimmer.css b/src/components/audio-trimmer/audio-trimmer.css index f3ce9fa42f8..9583558dfd9 100644 --- a/src/components/audio-trimmer/audio-trimmer.css +++ b/src/components/audio-trimmer/audio-trimmer.css @@ -41,7 +41,7 @@ $hover-scale: 1.25; } .selection-background { - background: $motion-primary; + background: $looks-secondary; opacity: 0.5; } @@ -64,7 +64,7 @@ $hover-scale: 1.25; } .selector .trim-line { - border: 1px solid $motion-tertiary; + border: 1px solid $looks-secondary; } .playhead-container { @@ -83,7 +83,7 @@ $hover-scale: 1.25; */ width: 100%; height: 100%; - border-left: 1px solid $motion-primary; + border-left: 1px solid $looks-secondary; border-top: none; border-bottom: none; border-right: none; @@ -118,7 +118,7 @@ $hover-scale: 1.25; } .trimmer .trim-handle { - filter: hue-rotate(150deg); + filter: hue-rotate(-240deg) brightness(1.35); } .trim-handle img { diff --git a/src/components/audio-trimmer/icon--handle.svg b/src/components/audio-trimmer/icon--handle.svg index dad1ea75167..69eb54a7ec7 100644 --- a/src/components/audio-trimmer/icon--handle.svg +++ b/src/components/audio-trimmer/icon--handle.svg @@ -8,9 +8,9 @@ - + - + diff --git a/src/components/audio-trimmer/selection-handle.jsx b/src/components/audio-trimmer/selection-handle.jsx index f182ce6a4f1..c7fa0ff80a6 100644 --- a/src/components/audio-trimmer/selection-handle.jsx +++ b/src/components/audio-trimmer/selection-handle.jsx @@ -12,10 +12,16 @@ const SelectionHandle = props => ( onTouchStart={props.onMouseDown} > - + - + ); diff --git a/src/components/backpack/backpack.css b/src/components/backpack/backpack.css index 25bc42d45b4..98a35a5e868 100644 --- a/src/components/backpack/backpack.css +++ b/src/components/backpack/backpack.css @@ -88,7 +88,7 @@ } .more { - background: $motion-primary; + background: $looks-secondary; color: $ui-white; border: none; outline: none; diff --git a/src/components/backpack/backpack.jsx b/src/components/backpack/backpack.jsx index f5d1a0ae280..c55e9112876 100644 --- a/src/components/backpack/backpack.jsx +++ b/src/components/backpack/backpack.jsx @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; -import {FormattedMessage} from 'react-intl'; +import {FormattedMessage, defineMessages, injectIntl, intlShape} from 'react-intl'; import DragConstants from '../../lib/drag-constants'; import {ComingSoonTooltip} from '../coming-soon/coming-soon.jsx'; import SpriteSelectorItem from '../../containers/sprite-selector-item.jsx'; @@ -17,6 +17,29 @@ const dragTypeMap = { // Keys correspond with the backpack-server item types sprite: DragConstants.BACKPACK_SPRITE }; +const labelMap = defineMessages({ + costume: { + id: 'gui.backpack.costumeLabel', + defaultMessage: 'costume', + description: 'Label for costume backpack item' + }, + sound: { + id: 'gui.backpack.soundLabel', + defaultMessage: 'sound', + description: 'Label for sound backpack item' + }, + script: { + id: 'gui.backpack.scriptLabel', + defaultMessage: 'script', + description: 'Label for script backpack item' + }, + sprite: { + id: 'gui.backpack.spriteLabel', + defaultMessage: 'sprite', + description: 'Label for sprite backpack item' + } +}); + const Backpack = ({ blockDragOver, containerRef, @@ -24,6 +47,7 @@ const Backpack = ({ dragOver, error, expanded, + intl, loading, showMore, onToggle, @@ -94,7 +118,7 @@ const Backpack = ({ dragType={dragTypeMap[item.type]} id={item.id} key={item.id} - name={item.type} + name={intl.formatMessage(labelMap[item.type])} selected={false} onClick={noop} onDeleteButtonClick={onDelete} @@ -141,6 +165,7 @@ Backpack.propTypes = { dragOver: PropTypes.bool, error: PropTypes.bool, expanded: PropTypes.bool, + intl: intlShape, loading: PropTypes.bool, onDelete: PropTypes.func, onMore: PropTypes.func, @@ -161,4 +186,4 @@ Backpack.defaultProps = { onToggle: null }; -export default Backpack; +export default injectIntl(Backpack); diff --git a/src/components/browser-modal/browser-modal.css b/src/components/browser-modal/browser-modal.css index 2f4145bf665..5fa57bbec2e 100644 --- a/src/components/browser-modal/browser-modal.css +++ b/src/components/browser-modal/browser-modal.css @@ -60,10 +60,10 @@ } .button-row button { - border: 1px solid $motion-primary; + border: 1px solid $looks-secondary; border-radius: 0.25rem; padding: 0.5rem 2rem; - background: $motion-primary; + background: $looks-secondary; color: white; font-weight: bold; font-size: 0.875rem; @@ -77,6 +77,6 @@ } .faq-link { - color: $motion-primary; + color: $looks-secondary; text-decoration: none; } diff --git a/src/components/camera-modal/camera-modal.css b/src/components/camera-modal/camera-modal.css deleted file mode 100644 index 7522fbb2ec2..00000000000 --- a/src/components/camera-modal/camera-modal.css +++ /dev/null @@ -1,157 +0,0 @@ -@import "../../css/colors.css"; -@import "../../css/units.css"; - -$main-button-size: 2.75rem; - -.modal-content { - width: 552px; -} - -.body { - display: flex; - flex-direction: column; - align-items: center; - background: $ui-white; - padding: 1.5rem 2.25rem; -} - -.camera-feed-container { - display: flex; - justify-content: space-around; - align-items: center; - - background: $ui-primary; - border: 1px solid $ui-black-transparent; - border-radius: 4px; - padding: 3px; - - width: 480px; - height: 360px; - position: relative; - overflow: hidden; -} - -.canvas { - position: absolute; - width: 480px; - height: 360px; -} - -.loading-text { - position: absolute; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - color: $text-primary-transparent; - font-size: 0.95rem; - font-weight: 500; - text-align: center; -} - -.help-text { - margin: 10px auto 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - color: $text-primary-transparent; - font-size: 0.95rem; - font-weight: 500; - text-align: center; -} - -.capture-text { - color: $motion-primary; -} - -.disabled-text { - color: $text-primary; - opacity: 0.25; -} - -.main-button-row { - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-around; - margin-top: 15px; - width: 100%; -} - -/* Action Menu */ -.main-button { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - cursor: pointer; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - background: $motion-primary; - outline: none; - border: none; - transition: background-color 0.2s; - - border-radius: 100%; - width: $main-button-size; - height: $main-button-size; - box-shadow: 0 0 0 4px $motion-transparent; -} - -.main-button:hover { - background: $extensions-primary; - box-shadow: 0 0 0 6px $motion-transparent; -} - -.main-button:disabled { - background: $text-primary; - border-color: $ui-black-transparent; - box-shadow: none; - opacity: 0.25; -} - -.main-icon { - width: calc($main-button-size - 1rem); - height: calc($main-button-size - 1rem); -} - -.button-row { - font-weight: bolder; - text-align: right; - display: flex; - justify-content: space-between; - margin-top: 20px; - width: 480px; -} - -.button-row button { - padding: 0.75rem 1rem; - border-radius: 0.25rem; - background: $ui-white; - border: 1px solid $ui-black-transparent; - font-weight: 600; - font-size: 0.85rem; - color: $motion-primary; - cursor: pointer; -} - -.button-row button.ok-button { - background: $motion-primary; - border: $motion-primary; - color: $ui-white; -} - -[dir="rtl"] .retake-button img { - transform: scaleX(-1); -} - -@keyframes flash { - 0% { opacity: 1; } - 100% { opacity: 0; } -} - -.flash-overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: $ui-white; - animation-name: flash; - animation-duration: 0.5s; - animation-fill-mode: forwards; /* Leave at 0 opacity after animation */ -} diff --git a/src/components/camera-modal/camera-modal.jsx b/src/components/camera-modal/camera-modal.jsx deleted file mode 100644 index 8c499c36249..00000000000 --- a/src/components/camera-modal/camera-modal.jsx +++ /dev/null @@ -1,141 +0,0 @@ -import PropTypes from 'prop-types'; -import React from 'react'; -import {defineMessages, injectIntl, intlShape} from 'react-intl'; -import Box from '../box/box.jsx'; -import Modal from '../../containers/modal.jsx'; -import styles from './camera-modal.css'; -import backIcon from './icon--back.svg'; -import cameraIcon from '../action-menu/icon--camera.svg'; - -const messages = defineMessages({ - cameraModalTitle: { - defaultMessage: 'Take a Photo', - description: 'Title for prompt to take a picture (to add as a new costume).', - id: 'gui.cameraModal.cameraModalTitle' - }, - loadingCameraMessage: { - defaultMessage: 'Loading Camera...', - description: 'Notification to the user that the camera is loading', - id: 'gui.cameraModal.loadingCameraMessage' - }, - permissionRequest: { - defaultMessage: 'We need your permission to use your camera', - description: 'Notification to the user that the app needs camera access', - id: 'gui.cameraModal.permissionRequest' - }, - retakePhoto: { - defaultMessage: 'Retake Photo', - description: 'A button that allows the user to take the picture again, replacing the old one', - id: 'gui.cameraModal.retakePhoto' - }, - save: { - defaultMessage: 'Save', - description: 'A button that allows the user to save the photo they took as a costume', - id: 'gui.cameraModal.save' - }, - takePhotoButton: { - defaultMessage: 'Take Photo', - description: 'A button to take a photo', - id: 'gui.cameraModal.takePhoto' - }, - loadingCaption: { - defaultMessage: 'Loading...', - description: 'A caption for a disabled button while the video from the camera is still loading', - id: 'gui.cameraModal.loadingCaption' - }, - enableCameraCaption: { - defaultMessage: 'Enable Camera', - description: 'A caption for a disabled button prompting the user to enable camera access', - id: 'gui.cameraModal.enableCameraCaption' - } -}); - -const CameraModal = ({intl, ...props}) => ( - - - -
- {props.access ? intl.formatMessage(messages.loadingCameraMessage) : - `↖️ \u00A0${intl.formatMessage(messages.permissionRequest)}`} -
- - {props.capture ? ( -
- ) : null} - - {props.capture ? - - - - : - - -
- {props.access ? - - {props.loaded ? - intl.formatMessage(messages.takePhotoButton) : - intl.formatMessage(messages.loadingCaption)} - : - - {intl.formatMessage(messages.enableCameraCaption)} - - } -
- -
- } - - -); - -CameraModal.propTypes = { - access: PropTypes.bool, - canvasRef: PropTypes.func.isRequired, - capture: PropTypes.string, - intl: intlShape.isRequired, - loaded: PropTypes.bool, - onBack: PropTypes.func.isRequired, - onCancel: PropTypes.func.isRequired, - onCapture: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired -}; - -export default injectIntl(CameraModal); diff --git a/src/components/camera-modal/icon--back.svg b/src/components/camera-modal/icon--back.svg deleted file mode 100644 index 47d09bc7fad..00000000000 --- a/src/components/camera-modal/icon--back.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - re-record - Created with Sketch. - - - - - - - - - - - diff --git a/src/components/cards/card.css b/src/components/cards/card.css index ad712e3399d..523323fff86 100644 --- a/src/components/cards/card.css +++ b/src/components/cards/card.css @@ -214,7 +214,7 @@ } .deck-name { - color: $motion-primary; + color: $looks-secondary; font-weight: bold; font-size: 0.85rem; margin: .625rem 0px; @@ -260,7 +260,7 @@ .see-all-button { cursor: pointer; padding: 0.5rem 1rem; - background-color: $motion-primary; + background-color: $looks-secondary; color: white; font-weight: bold; border-radius: 0.25rem; diff --git a/src/components/close-button/close-button.css b/src/components/close-button/close-button.css index 48a18f88df9..2a023e290e6 100644 --- a/src/components/close-button/close-button.css +++ b/src/components/close-button/close-button.css @@ -28,7 +28,7 @@ .small { width: 0.825rem; height: 0.825rem; - background-color: $motion-primary; + background-color: $looks-secondary; color: $ui-white; } diff --git a/src/components/connection-modal/auto-scanning-step.jsx b/src/components/connection-modal/auto-scanning-step.jsx index 272b267a82d..c74f959252c 100644 --- a/src/components/connection-modal/auto-scanning-step.jsx +++ b/src/components/connection-modal/auto-scanning-step.jsx @@ -4,14 +4,17 @@ import React from 'react'; import keyMirror from 'keymirror'; import classNames from 'classnames'; +import BalancedFormattedMessage from '../../containers/balanced-formatted-message.jsx'; import Box from '../box/box.jsx'; import Dots from './dots.jsx'; import closeIcon from '../close-button/icon--close.svg'; -import radarIcon from './icons/searching.png'; -import bluetoothIcon from './icons/bluetooth-white.svg'; import backIcon from './icons/back.svg'; +import bluetoothIcon from './icons/bluetooth-white.svg'; +import enterUpdateIcon from './icons/enter-update.svg'; +import radarIcon from './icons/searching.png'; +import warningIcon from './icons/warning.svg'; import styles from './connection-modal.css'; @@ -21,8 +24,13 @@ const PHASES = keyMirror({ notfound: null }); -const AutoScanningStep = props => ( - +const AutoScanningStep = props => { + // Offer to update both during scan and after a failed scan, as long there's an update function. + // It's possible the scan will find "some" device but not the desired device, + // so don't limit the update offer to just the PHASES.notfound case. + const showUpdate = !!(props.onUpdatePeripheral && + (props.phase === PHASES.pressbutton || props.phase === PHASES.notfound)); + return (
@@ -51,13 +59,18 @@ const AutoScanningStep = props => ( )} {props.phase === PHASES.notfound && ( - + + - + )}
@@ -79,6 +92,15 @@ const AutoScanningStep = props => ( /> )}
+ {showUpdate && ( + + + + )} ( /> )} + {showUpdate && ( + + )}
- -); + ); +}; AutoScanningStep.propTypes = { connectionTipIconURL: PropTypes.string, onRefresh: PropTypes.func, onStartScan: PropTypes.func, + onUpdatePeripheral: PropTypes.func, phase: PropTypes.oneOf(Object.keys(PHASES)) }; diff --git a/src/components/connection-modal/connection-modal.css b/src/components/connection-modal/connection-modal.css index fde45e015ad..891ce07741c 100644 --- a/src/components/connection-modal/connection-modal.css +++ b/src/components/connection-modal/connection-modal.css @@ -3,10 +3,11 @@ .modal-content { width: 480px; + line-height: 1.75; } .header { - background-color: $pen-primary; + background-color: $pen-tertiary; } .body { @@ -80,8 +81,8 @@ border-radius: 0.25rem; font-weight: 600; font-size: 0.85rem; - background: $motion-primary; - border: $motion-primary; + background: $looks-secondary; + border: $looks-secondary; color: white; cursor: pointer; } @@ -172,9 +173,9 @@ right: -15px; left: -15px; padding: 5px 5px; - background-color: $motion-primary; + background-color: $looks-secondary; border-radius: 100%; - box-shadow: 0px 0px 0px 4px $motion-transparent; + box-shadow: 0px 0px 0px 4px $looks-transparent; /* animation: pulse-blue-ring 1s infinite ease-in-out alternate; */ animation: wiggle 0.5s infinite ease-in-out alternate; @@ -182,7 +183,7 @@ @keyframes pulse-blue-ring { 100% { - box-shadow: 0px 0px 0px 8px $motion-light-transparent; + box-shadow: 0px 0px 0px 8px $looks-light-transparent; } } @@ -208,9 +209,9 @@ .bluetooth-centered-icon { position: absolute; padding: 5px 5px; - background-color: $motion-primary; + background-color: $looks-secondary; border-radius: 100%; - box-shadow: 0px 0px 0px 2px $motion-transparent; + box-shadow: 0px 0px 0px 2px $looks-transparent; } .peripheral-tile-widgets { @@ -220,7 +221,7 @@ .activityArea { height: 165px; - background-color: $motion-light-transparent; + background-color: $looks-light-transparent; display: flex; justify-content: center; align-items: center; @@ -255,6 +256,10 @@ max-width: 50px; } +.help-step-image { + max-width: 40px; +} + [dir="ltr"] .help-step-image { margin-right: 0.5rem; } @@ -264,7 +269,7 @@ } .help-step-number { - background: $pen-primary; + background: $pen-tertiary; border-radius: 100%; display: flex; justify-content: center; @@ -297,7 +302,7 @@ .connection-button { padding: 0.6rem 0.75rem; border-radius: 0.5rem; - background: $motion-primary; + background: $looks-secondary; color: white; font-weight: 600; font-size: 0.85rem; @@ -309,7 +314,7 @@ } .connection-button:disabled { - background: $motion-transparent; + background: $looks-transparent; } .segmented-button { @@ -390,7 +395,7 @@ display: flex; padding: 0.25rem 0.1rem; border-radius: 1rem; - background: $motion-light-transparent; + background: $looks-light-transparent; } .dots-holder-success { @@ -409,11 +414,11 @@ } .inactive-step-dot { - background: $motion-transparent; + background: $looks-transparent; } .active-step-dot { - background: $motion-primary; + background: $looks-secondary; } .success-dot { @@ -423,3 +428,21 @@ .error-dot { background: $error-primary; } + +.scratch-link-error { + align-items: center; + display: flex; + flex-direction: column; + justify-content: space-around; + height: 100%; + padding-top: .5rem; + padding-bottom: .5rem; + width: 90%; +} + +.scratch-link-error-details { + display: flex; + resize: none; + height: 60%; + width: inherit; +} diff --git a/src/components/connection-modal/connection-modal.jsx b/src/components/connection-modal/connection-modal.jsx index a22cce5a185..4ea2ccb1be9 100644 --- a/src/components/connection-modal/connection-modal.jsx +++ b/src/components/connection-modal/connection-modal.jsx @@ -11,6 +11,7 @@ import ConnectingStep from './connecting-step.jsx'; import ConnectedStep from './connected-step.jsx'; import ErrorStep from './error-step.jsx'; import UnavailableStep from './unavailable-step.jsx'; +import UpdatePeripheralStep from './update-peripheral-step.jsx'; import styles from './connection-modal.css'; @@ -19,7 +20,8 @@ const PHASES = keyMirror({ connecting: null, connected: null, error: null, - unavailable: null + unavailable: null, + updatePeripheral: null }); const ConnectionModalComponent = props => ( @@ -39,6 +41,7 @@ const ConnectionModalComponent = props => ( {props.phase === PHASES.connected && } {props.phase === PHASES.error && } {props.phase === PHASES.unavailable && } + {props.phase === PHASES.updatePeripheral && } ); diff --git a/src/components/connection-modal/icons/enter-update.svg b/src/components/connection-modal/icons/enter-update.svg new file mode 100644 index 00000000000..17d62c2a50d --- /dev/null +++ b/src/components/connection-modal/icons/enter-update.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/connection-modal/icons/send-update-white.svg b/src/components/connection-modal/icons/send-update-white.svg new file mode 100644 index 00000000000..bc87efeb223 --- /dev/null +++ b/src/components/connection-modal/icons/send-update-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/connection-modal/icons/send-update.svg b/src/components/connection-modal/icons/send-update.svg new file mode 100644 index 00000000000..74192cd6747 --- /dev/null +++ b/src/components/connection-modal/icons/send-update.svg @@ -0,0 +1 @@ + diff --git a/src/components/connection-modal/icons/warning.svg b/src/components/connection-modal/icons/warning.svg new file mode 100644 index 00000000000..be96134143e --- /dev/null +++ b/src/components/connection-modal/icons/warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/connection-modal/scanning-step.jsx b/src/components/connection-modal/scanning-step.jsx index cf637ec220c..0934df603ab 100644 --- a/src/components/connection-modal/scanning-step.jsx +++ b/src/components/connection-modal/scanning-step.jsx @@ -3,17 +3,21 @@ import PropTypes from 'prop-types'; import React from 'react'; import classNames from 'classnames'; +import BalancedFormattedMessage from '../../containers/balanced-formatted-message.jsx'; import Box from '../box/box.jsx'; import PeripheralTile from './peripheral-tile.jsx'; import Dots from './dots.jsx'; +import enterUpdateIcon from './icons/enter-update.svg'; import radarIcon from './icons/searching.png'; import refreshIcon from './icons/refresh.svg'; +import warningIcon from './icons/warning.svg'; import styles from './connection-modal.css'; -const ScanningStep = props => ( - +const ScanningStep = props => { + const showUpdate = !!(props.onUpdatePeripheral && !props.scanning); + return ( {props.scanning ? ( props.peripheralList.length === 0 ? ( @@ -45,8 +49,13 @@ const ScanningStep = props => (
) ) : ( - + + ( - + {(props.scanning || props.peripheralList.length > 0) && ( + // Show this message if we're still scanning OR if we've found devices + + )} + {showUpdate && ( + // Show this message if we're done scanning AND we can update + // Note that it's possible the list includes devices but does not include the desired device, + // so don't limit this message to the (props.peripheralList.length === 0) case + + )} - + + + {showUpdate && ( + + )} + - -); +
); +}; ScanningStep.propTypes = { connectionSmallIconURL: PropTypes.string, onConnecting: PropTypes.func, onRefresh: PropTypes.func, + onUpdatePeripheral: PropTypes.func, peripheralList: PropTypes.arrayOf(PropTypes.shape({ name: PropTypes.string, rssi: PropTypes.number, diff --git a/src/components/connection-modal/update-peripheral-step.jsx b/src/components/connection-modal/update-peripheral-step.jsx new file mode 100644 index 00000000000..cc65ea347f5 --- /dev/null +++ b/src/components/connection-modal/update-peripheral-step.jsx @@ -0,0 +1,262 @@ +import 'regenerator-runtime/runtime'; +import {FormattedMessage} from 'react-intl'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; +import React from 'react'; +import bindAll from 'lodash.bindall'; +import keyMirror from 'keymirror'; + +import BalancedFormattedMessage from '../../containers/balanced-formatted-message.jsx'; +import Box from '../box/box.jsx'; +import ProgressRingComponent from '../progress-ring/progress-ring.jsx'; + +import backIcon from './icons/back.svg'; +import sendUpdateIcon from './icons/send-update.svg'; +import sendUpdateGlyph from './icons/send-update-white.svg'; + +import styles from './connection-modal.css'; + +/** @enum{string} UPDATE_ACTIVITY */ +const UPDATE_ACTIVITY = keyMirror({ + getReady: null, + sendUpdate: null, + results: null +}); + +const microBitFirmwareUrl = 'https://microbit.org/get-started/user-guide/firmware/'; + +class UpdatePeripheralStep extends React.Component { + constructor (props) { + super(props); + bindAll(this, [ + 'handleSendUpdate' + ]); + this.state = { + /** @type {UPDATE_ACTIVITY} */ + activity: UPDATE_ACTIVITY.getReady, + + /** @type {number} */ + progressPercentage: 0, + + /** @type {Error?} */ + err: null, + + /** @type {any} */ + res: null + }; + } + + async handleSendUpdate () { + this.setState({ + activity: UPDATE_ACTIVITY.sendUpdate, + progress: 0, + err: null, + res: null + }); + try { + const res = await this.props.onSendPeripheralUpdate(progress => { + // On my computer, I get a progress update every 0.005% or so. + // Rendering the progress ring is a little expensive, so filtering updates here reduces the CPU load. + // Updating every 1% doesn't look very smooth, but 0.5% (1/200) looks good to me. + this.setState({progressPercentage: Math.floor(progress * 200) / 2}); + }); + this.setState({ + activity: UPDATE_ACTIVITY.results, + res + }); + } catch (err) { + this.setState({ + activity: UPDATE_ACTIVITY.results, + err + }); + } + } + + renderGetReady () { + return ( + + + + {'1'} + + + { + // The instructions for getting the peripheral ready for the update process will vary + // depending on the peripheral. Should we get this from the extension somehow? + } + + + + + {'2'} + + + + + + ); + } + + renderSendUpdate () { + return ( + + + ); + } + + renderResults () { + let resultsContent; + if (this.state.err === null) { + resultsContent = (); + } else if (this.state.err.message === 'No valid interfaces found.') { + // this is a special case where the micro:bit's communication firmware is too old to support WebUSB + resultsContent = ( + {microBitFirmwareUrl} + + }} + />); + } else { + resultsContent = ( + + + + + ); + } + return ( + {resultsContent} + ); + } + + render () { + const showGetReady = this.state.activity === UPDATE_ACTIVITY.getReady; + const showSendUpdate = this.state.activity === UPDATE_ACTIVITY.sendUpdate; + const showResults = this.state.activity === UPDATE_ACTIVITY.results; + const showBadResults = showResults && !!this.state.err; + return ( + + {showGetReady && this.renderGetReady()} + {showSendUpdate && this.renderSendUpdate()} + {showResults && this.renderResults()} + + {!showResults && + + } + {!showSendUpdate && + + + {(showGetReady || showBadResults) && + + } + + } + + + ); + } +} + +UpdatePeripheralStep.propTypes = { + connectionSmallIconURL: PropTypes.string, + name: PropTypes.string.isRequired, + onScanning: PropTypes.func.isRequired, + onSendPeripheralUpdate: PropTypes.func.isRequired +}; + +export default UpdatePeripheralStep; diff --git a/src/components/context-menu/context-menu.css b/src/components/context-menu/context-menu.css index 7f21c92f791..5548e066bcb 100644 --- a/src/components/context-menu/context-menu.css +++ b/src/components/context-menu/context-menu.css @@ -25,7 +25,7 @@ } .menu-item:hover { - background: $motion-primary; + background: $looks-secondary; color: white; } diff --git a/src/components/crash-message/crash-message.css b/src/components/crash-message/crash-message.css index 605f7fdab9e..daac90c539d 100644 --- a/src/components/crash-message/crash-message.css +++ b/src/components/crash-message/crash-message.css @@ -10,12 +10,18 @@ justify-content: center; align-items: center; } + .body { width: 35%; color: white; text-align: center; } +/* scratch-www was overriding the colors */ +.body p, .body h2 { + color: inherit; +} + .reloadButton { border: 1px solid $motion-primary; border-radius: 0.25rem; diff --git a/src/components/custom-procedures/custom-procedures.css b/src/components/custom-procedures/custom-procedures.css index 96cc55d155f..d54fd7d8209 100644 --- a/src/components/custom-procedures/custom-procedures.css +++ b/src/components/custom-procedures/custom-procedures.css @@ -53,8 +53,8 @@ } .option-card:hover { - border: 2px solid $motion-primary; - box-shadow: 0px 0px 0px 4px $motion-transparent; + border: 2px solid $looks-secondary; + box-shadow: 0px 0px 0px 4px $looks-transparent; } .option-card + .option-card { @@ -92,8 +92,8 @@ } .button-row button.ok-button { - background: $motion-primary; - border: $motion-primary; + background: $looks-secondary; + border: $looks-secondary; color: white; } diff --git a/src/components/debug-modal/debug-modal.css b/src/components/debug-modal/debug-modal.css new file mode 100644 index 00000000000..d4f61212196 --- /dev/null +++ b/src/components/debug-modal/debug-modal.css @@ -0,0 +1,163 @@ +@import "../../css/colors.css"; + +.debug-modal-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: 'transparent'; + display: flex; + justify-content: center; + align-items: center; + z-index: 510; +} + +.debug-modal-container { + background: white; + border-radius: 8px; + width: 1000px; + max-height: 90%; + display: flex; + flex-direction: column; + position: relative; + overflow-x: visible; + box-shadow: 0 4px 4px 0 $ui-black-transparent-10; + outline: none; + margin: 0 40px; + + .modal-header { + display: flex; + border-radius: 8px 8px 0 0; + justify-content: space-between; + align-items: center; + padding: 8px; + padding-left: 12px; + padding-right: 12px; + background-color: $ui-green-2; + } + + .header-title { + display: flex; + gap: 8px; + align-items: center; + font-size: 1rem; + line-height: 1.25rem; + font-weight: 700; + color: white; + } + .debug-icon { + height: 22px; + width: 22px; + } + + .hidden { + display: none; + } + + .close-button { + display: flex; + background: none; + border: none; + cursor: pointer; + width: 32px; + height: 32px; + } + + .modal-content { + display: flex; + width: 100%; + flex-grow: 1; + overflow-y: scroll; + } + + .modal-content::-webkit-scrollbar-track { + background: transparent; + } + + .modal-content::-webkit-scrollbar { + width: 8px; + } + + .previousIcon { + position: absolute; + cursor: pointer; + top: 50%; + } + + .nextIcon { + position: absolute; + cursor: pointer; + right: -24px; + top: 50%; + } + + .topic-list { + width: 30%; + border-right: 1px solid $ui-green;; + } + + .topic-item { + display: flex; + gap: 8px; + align-items: center; + padding: 8px; + padding-left: 12px; + font-size: 1rem; + line-height: 1.5rem; + color: $ui-green;; + cursor: pointer; + } + + .topic-item.active { + background-color: #D1FAEE; + font-weight: bold; + } + + .info-container { + flex-direction: column; + width: 70%; + display: flex; + padding: 20px; + color: $text-primary; + } + + .text-container { + flex: 1; + margin-left: 70px; + } + + .title-text { + font-size: 24px; + line-height: 32px; + font-weight: 700; + } + + .description { + font-size: 16px; + line-height: 28px; + } + + .imageContainer { + display: flex; + justify-content: center; + align-items: center; + padding: 10px; + margin-top: 10px; + } + + .topicImage { + max-width: 100%; + max-height: 100%; + object-fit: contain; /* Ensures image scales proportionally */ + } + + .navigation-buttons { + margin-top: 20px; + } + + button { + margin: 5px; + } +} + diff --git a/src/components/debug-modal/debug-modal.jsx b/src/components/debug-modal/debug-modal.jsx new file mode 100644 index 00000000000..e79a6195fec --- /dev/null +++ b/src/components/debug-modal/debug-modal.jsx @@ -0,0 +1,174 @@ +import React, {useState, useCallback, useEffect} from 'react'; +import {defineMessages, FormattedMessage} from 'react-intl'; +import PropTypes from 'prop-types'; +import ReactModal from 'react-modal'; +import classNames from 'classnames'; +import {sections} from './sections/sections'; +import GA4 from '../../lib/analytics'; + +import styles from './debug-modal.css'; +import debugIcon from './icons/icon--debug.svg'; +import debugIconInverted from './icons/icon--debug-inverted.svg'; +import closeIcon from './icons/icon--close.svg'; +import prevIcon from './icons/icon--prev.svg'; +import nextIcon from './icons/icon--next.svg'; + +const messages = defineMessages({ + title: { + id: 'gui.debugModal.title', + defaultMessage: 'Debugging | Getting Unstuck', + description: 'title for the debugging modal' + } +}); + +const logTopicChange = topicIndex => { + GA4.event({ + category: 'change_topic_debug_modal', + label: sections[topicIndex].id + }); +}; + +const DebugModal = ({isOpen, onClose = () => {}}) => { + const [selectedTopicIndex, setSelectedTopicIndex] = useState(0); + + // Preload images + useEffect(() => { + sections.forEach(section => { + new Image().src = section.image; + }); + }, []); + + const handleNext = useCallback(() => { + if (selectedTopicIndex < sections.length - 1) { + setSelectedTopicIndex(selectedTopicIndex + 1); + logTopicChange(selectedTopicIndex + 1); + } + }, [selectedTopicIndex, setSelectedTopicIndex]); + + const handlePrevious = useCallback(() => { + if (selectedTopicIndex > 0) { + setSelectedTopicIndex(selectedTopicIndex - 1); + logTopicChange(selectedTopicIndex - 1); + } + }, [selectedTopicIndex, setSelectedTopicIndex]); + + const handleTopicSelect = useCallback(index => { + setSelectedTopicIndex(index); + logTopicChange(index); + }, [setSelectedTopicIndex]); + + const handleClose = useCallback(() => { + GA4.event({ + category: 'close_debug_modal' + }); + onClose(); + }, [onClose]); + + useEffect(() => { + if (isOpen) { + GA4.event({ + category: 'open_debug_modal', + label: sections[selectedTopicIndex].id + }); + } + }, [isOpen]); + + if (!isOpen) return null; + + return ( + +
+
+ + +
+ +
+
+
+ {sections.map((section, index) => ( +
handleTopicSelect(index)} + > +
+ +
+ +
+ ))} +
+
+
+
+ +
+
{sections[selectedTopicIndex].description}
+
+
+ +
+
+ Previous + Next +
+
+
+
+ ); +}; + +DebugModal.propTypes = { + isOpen: PropTypes.bool, + onClose: PropTypes.func +}; + +export default DebugModal; diff --git a/src/components/debug-modal/icons/icon--add-sound-checkpoints.svg b/src/components/debug-modal/icons/icon--add-sound-checkpoints.svg new file mode 100644 index 00000000000..e41d158fc65 --- /dev/null +++ b/src/components/debug-modal/icons/icon--add-sound-checkpoints.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--ask-for-help.svg b/src/components/debug-modal/icons/icon--ask-for-help.svg new file mode 100644 index 00000000000..387a2626f6b --- /dev/null +++ b/src/components/debug-modal/icons/icon--ask-for-help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--break-it-down.svg b/src/components/debug-modal/icons/icon--break-it-down.svg new file mode 100644 index 00000000000..efea9030c0c --- /dev/null +++ b/src/components/debug-modal/icons/icon--break-it-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--check-code-sequence.svg b/src/components/debug-modal/icons/icon--check-code-sequence.svg new file mode 100644 index 00000000000..f458487e175 --- /dev/null +++ b/src/components/debug-modal/icons/icon--check-code-sequence.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/debug-modal/icons/icon--check-the-values.svg b/src/components/debug-modal/icons/icon--check-the-values.svg new file mode 100644 index 00000000000..8bdee0378cb --- /dev/null +++ b/src/components/debug-modal/icons/icon--check-the-values.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--close.svg b/src/components/debug-modal/icons/icon--close.svg new file mode 100644 index 00000000000..e12cf933df8 --- /dev/null +++ b/src/components/debug-modal/icons/icon--close.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/components/debug-modal/icons/icon--comment-your-code.svg b/src/components/debug-modal/icons/icon--comment-your-code.svg new file mode 100644 index 00000000000..0ea4c2a2b0b --- /dev/null +++ b/src/components/debug-modal/icons/icon--comment-your-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--debug-inverted.svg b/src/components/debug-modal/icons/icon--debug-inverted.svg new file mode 100644 index 00000000000..1c9a1d4ab48 --- /dev/null +++ b/src/components/debug-modal/icons/icon--debug-inverted.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/debug-modal/icons/icon--debug.svg b/src/components/debug-modal/icons/icon--debug.svg new file mode 100644 index 00000000000..6d192179918 --- /dev/null +++ b/src/components/debug-modal/icons/icon--debug.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/debug-modal/icons/icon--next.svg b/src/components/debug-modal/icons/icon--next.svg new file mode 100644 index 00000000000..a3982569be2 --- /dev/null +++ b/src/components/debug-modal/icons/icon--next.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/debug-modal/icons/icon--prev.svg b/src/components/debug-modal/icons/icon--prev.svg new file mode 100644 index 00000000000..4eff38d7bb8 --- /dev/null +++ b/src/components/debug-modal/icons/icon--prev.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/debug-modal/icons/icon--read-aloud.svg b/src/components/debug-modal/icons/icon--read-aloud.svg new file mode 100644 index 00000000000..cb8e7cdc1c1 --- /dev/null +++ b/src/components/debug-modal/icons/icon--read-aloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--slow-it-down.svg b/src/components/debug-modal/icons/icon--slow-it-down.svg new file mode 100644 index 00000000000..544d6ac6b11 --- /dev/null +++ b/src/components/debug-modal/icons/icon--slow-it-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--take-a-break.svg b/src/components/debug-modal/icons/icon--take-a-break.svg new file mode 100644 index 00000000000..eab8df3c0d9 --- /dev/null +++ b/src/components/debug-modal/icons/icon--take-a-break.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--think-about-block-options.svg b/src/components/debug-modal/icons/icon--think-about-block-options.svg new file mode 100644 index 00000000000..31f797cfc72 --- /dev/null +++ b/src/components/debug-modal/icons/icon--think-about-block-options.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--timing-and-parallelism.svg b/src/components/debug-modal/icons/icon--timing-and-parallelism.svg new file mode 100644 index 00000000000..8fa5ba7f3d1 --- /dev/null +++ b/src/components/debug-modal/icons/icon--timing-and-parallelism.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--tinker-with-block-order.svg b/src/components/debug-modal/icons/icon--tinker-with-block-order.svg new file mode 100644 index 00000000000..6581967096c --- /dev/null +++ b/src/components/debug-modal/icons/icon--tinker-with-block-order.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/debug-modal/icons/icon--to-loop-or-not.svg b/src/components/debug-modal/icons/icon--to-loop-or-not.svg new file mode 100644 index 00000000000..cf50d62ca04 --- /dev/null +++ b/src/components/debug-modal/icons/icon--to-loop-or-not.svg @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/debug-modal/sections/messages.ts b/src/components/debug-modal/sections/messages.ts new file mode 100644 index 00000000000..e2f0e7c8962 --- /dev/null +++ b/src/components/debug-modal/sections/messages.ts @@ -0,0 +1,296 @@ +import {defineMessages} from 'react-intl'; + +export const messages = defineMessages({ + readAloudTitle: { + id: 'gui.debugModal.readAloud.title', + defaultMessage: 'Read Aloud', + description: 'title for the "read aloud" section' + }, + readAloudDescription1: { + id: 'gui.debugModal.readAloud.description1', + defaultMessage: 'As you read your code aloud, think from the computer’s perspective.', + description: 'description for the "read aloud" section of the debug modal' + }, + readAloudDescription2: { + id: 'gui.debugModal.readAloud.description2', + defaultMessage: 'Are you including steps that aren’t there?', + description: 'description for the "read aloud" section of the debug modal' + }, + readAloudDescription3: { + id: 'gui.debugModal.readAloud.description3', + defaultMessage: 'Are your instructions clear?', + description: 'description for the "read aloud" section of the debug modal' + }, + readAloudDescription4: { + id: 'gui.debugModal.readAloud.description4', + defaultMessage: + 'If something needs to be reset each time the program has run, are those instructions included?', + description: 'description for the "read aloud" section of the debug modal' + }, + breakItDownTitle: { + id: 'gui.debugModal.breakItDown.title', + defaultMessage: 'Break It Down', + description: 'title for the "break it down" section' + }, + breakItDownDescription1: { + id: 'gui.debugModal.breakItDown.description1', + defaultMessage: + 'Separate the blocks into smaller chunks (or sequences), and click to see what each sequence does.', + description: 'description for the "break it down" section of the debug modal' + }, + breakItDownDescription2: { + id: 'gui.debugModal.breakItDown.description2', + defaultMessage: + 'Once the smaller sequences work as you expect, add them back into the main program.', + description: 'description for the "break it down" section of the debug modal' + }, + breakItDownDescription3: { + id: 'gui.debugModal.breakItDown.description3', + defaultMessage: 'The process is called decomposition.', + description: 'description for the "break it down" section of the debug modal' + }, + slowItDownTitle: { + id: 'gui.debugModal.slowItDown.title', + defaultMessage: 'Slow It Down', + description: 'title for the "slow it down" section' + }, + slowItDownDescription1: { + id: 'gui.debugModal.slowItDown.description1', + defaultMessage: + 'The computer runs your program so quickly it can be hard to follow with your eyes.', + description: 'description for the "slow it down" section of the debug modal' + }, + slowItDownDescription2: { + id: 'gui.debugModal.slowItDown.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'Add temporary “wait” or “wait until” blocks to slow down the sequence. This gives you time to process if a piece worked or not.', + description: 'description for the "slow it down" section of the debug modal' + }, + slowItDownDescription3: { + id: 'gui.debugModal.slowItDown.description3', + defaultMessage: 'Remove these wait blocks once your code works.', + description: 'description for the "slow it down" section of the debug modal' + }, + addSoundCheckpointsTitle: { + id: 'gui.debugModal.addSoundCheckpoints.title', + defaultMessage: 'Add Sound Checkpoints', + description: 'title for the "add sound checkpoints" section' + }, + addSoundCheckpointsDescription1: { + id: 'gui.debugModal.addSoundCheckpoints.description1', + defaultMessage: + // eslint-disable-next-line max-len + 'Similar to the Slow It Down strategy, you can add different sounds with the “play until done” block at key points to test your sequence.', + description: 'description for the "add sound checkpoints" section of the debug modal' + }, + addSoundCheckpointsDescription2: { + id: 'gui.debugModal.addSoundCheckpoints.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'If a sound doesn’t play, your bug may be before this block. If the sound plays, the bug is probably after this block.', + description: 'description for the "add sound checkpoints" section of the debug modal' + }, + addSoundCheckpointsDescription3: { + id: 'gui.debugModal.addSoundCheckpoints.description3', + defaultMessage: 'Remove the sounds once your code works.', + description: 'description for the "add sound checkpoints" section of the debug modal' + }, + tinkerWithBlockOrderTitle: { + id: 'gui.debugModal.tinkerWithBlockOrder.title', + defaultMessage: 'Tinker with Block Order', + description: 'title for the "tinker with block order" section' + }, + tinkerWithBlockOrderDescription1: { + id: 'gui.debugModal.tinkerWithBlockOrder.description1', + defaultMessage: 'Try adjusting the order/sequence of the blocks.', + description: 'description for the "tinker with block order" section of the debug modal' + }, + tinkerWithBlockOrderDescription2: { + id: 'gui.debugModal.tinkerWithBlockOrder.description2', + defaultMessage: 'What needs to happen first?', + description: 'description for the "tinker with block order" section of the debug modal' + }, + tinkerWithBlockOrderDescription3: { + id: 'gui.debugModal.tinkerWithBlockOrder.description3', + defaultMessage: 'What happens second?', + description: 'description for the "tinker with block order" section of the debug modal' + }, + tinkerWithBlockOrderDescription4: { + id: 'gui.debugModal.tinkerWithBlockOrder.description4', + defaultMessage: 'Do values or sprites need to reset before the next piece of code runs?', + description: 'description for the "tinker with block order" section of the debug modal' + }, + tinkerWithBlockOrderDescription5: { + id: 'gui.debugModal.tinkerWithBlockOrder.description5', + defaultMessage: + 'Try using blocks inside a loop or conditional statement, versus outside a loop or conditional statement.', + description: 'description for the "tinker with block order" section of the debug modal' + }, + toLoopOrNotTitle: { + id: 'gui.debugModal.toLoopOrNot.title', + defaultMessage: 'To Loop or Not to Loop', + description: 'title for the "tinker with block order" section' + }, + toLoopOrNotDescription1: { + id: 'gui.debugModal.toLoopOrNot.description1', + defaultMessage: + // eslint-disable-next-line max-len + 'If using Control blocks like "forever" and "repeat", check that all blocks inside a loop should be there, or if a block (like “wait”) is missing to reset the action or adjust the timing. Do you want your loop to run forever or for a certain number of times? Should something stop the looping?', + description: 'description for the "to loop or not to loop" section of the debug modal' + }, + toLoopOrNotDescription2: { + id: 'gui.debugModal.toLoopOrNot.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'Perhaps you aren\'t using a loop when you should be? For instance, if you are using a conditional statement block like "if then," does the program only need to check if it is true or false once? Or does it need to check continuously, in which case, you would want to place your conditional statement inside a forever loop?', + description: 'description for the "to loop or not to loop" section of the debug modal' + }, + timingAndParallelismTitle: { + id: 'gui.debugModal.timingAndParallelism.title', + defaultMessage: 'Think About Timing & Parallelism', + description: 'title for the "think about timing and parallelism" section' + }, + timingAndParallelismSectionTitle: { + id: 'gui.debugModal.timingAndParallelism.sectionTitle', + defaultMessage: 'Timing & Parallelism', + description: 'title for the "think about timing and parallelism" sidebar section' + }, + timingAndParallelismDescription1: { + id: 'gui.debugModal.timingAndParallelism.description1', + defaultMessage: + // eslint-disable-next-line max-len + 'Do you have multiple events trying to run at the same time? If two sequences are programmed to start at the same time, you can get unpredictable behavior.', + description: 'description for the "think about timing and parallelism" section of the debug modal' + }, + timingAndParallelismDescription2: { + id: 'gui.debugModal.timingAndParallelism.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'Add small waits, broadcasts, or user interaction (like clicking or pressing a key) to see if this affects the result.', + description: 'description for the "think about timing and parallelism" section of the debug modal' + }, + thinkAboutBlockOptionsTitle: { + id: 'gui.debugModal.thinkAboutBlockOptions.title', + defaultMessage: 'Think About Block Options', + description: 'title for the "think about block options" section' + }, + thinkAboutBlockOptionsDescription1: { + id: 'gui.debugModal.thinkAboutBlockOptions.description1', + defaultMessage: 'Is there a similar but different block you can use?', + description: 'description for the "think about block options" section of the debug modal' + }, + thinkAboutBlockOptionsDescription2: { + id: 'gui.debugModal.thinkAboutBlockOptions.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'Some blocks look similar but can behave differently, such as “set” vs “change” or “play until done” vs “start.”', + description: 'description for the "think about block options" section of the debug modal' + }, + thinkAboutBlockOptionsDescription3: { + id: 'gui.debugModal.thinkAboutBlockOptions.description3', + defaultMessage: 'Try using a similar block in place of what you have, and see if this affects the result.', + description: 'description for the "think about block options" section of the debug modal' + }, + checkTheValuesTitle: { + id: 'gui.debugModal.checkTheValues.title', + defaultMessage: 'Check the Values', + description: 'title for the "check the value" section' + }, + checkTheValuesDescription1: { + id: 'gui.debugModal.checkTheValues.description1', + defaultMessage: + 'If you are using variables or reporter blocks, check the value at the moment the code sequence is run.', + description: 'description for the "check the values" section of the debug modal' + }, + checkTheValuesDescription2: { + id: 'gui.debugModal.checkTheValues.description2', + defaultMessage: 'Do/should all the sprites control a variable, or should only one sprite have control?', + description: 'description for the "check the values" section of the debug modal' + }, + checkTheValuesDescription3: { + id: 'gui.debugModal.checkTheValues.description3', + defaultMessage: 'Where is the value reset? Where is it changed?', + description: 'description for the "check the values" section of the debug modal' + }, + checkCodeSequenceTitle: { + id: 'gui.debugModal.checkCodeSequence.title', + defaultMessage: 'Check Code Sequence', + description: 'title for the "check code sequence" section' + }, + checkCodeSequenceDescription1: { + id: 'gui.debugModal.checkCodeSequence.description1', + defaultMessage: + 'Check that your code sequence is attached to the correct sprite or the backdrop, if appropriate.', + description: 'description for the "check code sequence" section of the debug modal' + }, + checkCodeSequenceDescription2: { + id: 'gui.debugModal.checkCodeSequence.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'If you need to move your code to another sprite, click and drag it until you are hovering over the correct sprite. Release it once the sprite wiggles.', + description: 'description for the "check code sequence" section of the debug modal' + }, + checkCodeSequenceDescription3: { + id: 'gui.debugModal.checkCodeSequence.description3', + defaultMessage: + 'You can also use your Backpack (bottom of screen) to store and move your code or assets.', + description: 'description for the "check code sequence" section of the debug modal' + }, + commentYourCodeTitle: { + id: 'gui.debugModal.commentYourCode.title', + defaultMessage: 'Comment Your Code', + description: 'title for the "comment your code" section' + }, + commentYourCodeDescription1: { + id: 'gui.debugModal.commentYourCode.description1', + defaultMessage: + // eslint-disable-next-line max-len + 'Adding comments to your code can help others looking at your code to understand it. It can also help you remember how your code works when you come back to it later.', + description: 'description for the "comment your code" section of the debug modal' + }, + commentYourCodeDescription2: { + id: 'gui.debugModal.commentYourCode.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'Right click on script area to “Add Comment.” Use everyday language to explain what a block, or small sequence of blocks, does.', + description: 'description for the "comment your code" section of the debug modal' + }, + takeABreakTitle: { + id: 'gui.debugModal.takeABreak.title', + defaultMessage: 'Take a Break, Step Away', + description: 'title for the "take a break" section' + }, + takeABreakDescription1: { + id: 'gui.debugModal.takeABreak.description1', + defaultMessage: + 'Sometimes, spending too much time focused on an issue can be counterproductive and frustrating.', + description: 'description for the "take a break, step away" section of the debug modal' + }, + takeABreakDescription2: { + id: 'gui.debugModal.takeABreak.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'Take a break and step away from the screen to clear your mind. After some rest, focusing on something else, or getting some water, you can approach the problem with fresh eyes.', + description: 'description for the "take a break, step away" section of the debug modal' + }, + askForHelpTitle: { + id: 'gui.debugModal.askForHelp.title', + defaultMessage: 'Ask for Help', + description: 'title for the "ask for help" section' + }, + askForHelpDescription1: { + id: 'gui.debugModal.askForHelp.description1', + defaultMessage: + // eslint-disable-next-line max-len + 'If you are still stuck, you can ask for help from a peer. Try finding a debugging/help studio and share your project, asking for help in a comment or the project notes.', + description: 'description for the "ask for help" section of the debug modal' + }, + askForHelpDescription2: { + id: 'gui.debugModal.askForHelp.description2', + defaultMessage: + // eslint-disable-next-line max-len + 'Ask one to three people to try your code, as different people may have different perspectives or solutions!', + description: 'description for the "ask for help" section of the debug modal' + } +}); diff --git a/src/components/debug-modal/sections/sections.jsx b/src/components/debug-modal/sections/sections.jsx new file mode 100644 index 00000000000..6295ddbabfd --- /dev/null +++ b/src/components/debug-modal/sections/sections.jsx @@ -0,0 +1,144 @@ +import React from 'react'; +import {FormattedMessage} from 'react-intl'; +import {messages} from './messages.ts'; + +import addSoundCheckpoints from '../icons/icon--add-sound-checkpoints.svg'; +import askForHelp from '../icons/icon--ask-for-help.svg'; +import breakItDown from '../icons/icon--break-it-down.svg'; +import checkCodeSequence from '../icons/icon--check-code-sequence.svg'; +import checkTheValues from '../icons/icon--check-the-values.svg'; +import commentYourCode from '../icons/icon--comment-your-code.svg'; +import readAloud from '../icons/icon--read-aloud.svg'; +import slowItDown from '../icons/icon--slow-it-down.svg'; +import takeABreak from '../icons/icon--take-a-break.svg'; +import thinkAboutBlockOptions from '../icons/icon--think-about-block-options.svg'; +import timingAndParallelism from '../icons/icon--timing-and-parallelism.svg'; +import tinkerWithBlockOrder from '../icons/icon--tinker-with-block-order.svg'; +import toLoopOrNotToLoop from '../icons/icon--to-loop-or-not.svg'; + + +export const sections = [ + { + id: 'readAloud', + title: messages.readAloudTitle, + description:
+

+
    +
  • +
  • +
  • +
+
, + image: readAloud + }, { + id: 'breakItDown', + title: messages.breakItDownTitle, + description: (
+

+

+

+
), + image: breakItDown + }, { + id: 'slowItDown', + title: messages.slowItDownTitle, + description: (
+

+

+

+
), + image: slowItDown + }, { + id: 'addSoundCheckpoints', + title: messages.addSoundCheckpointsTitle, + description: (
+

+

+

+
), + image: addSoundCheckpoints + }, { + id: 'tinkerWithBlockOrder', + title: messages.tinkerWithBlockOrderTitle, + description:
+

+
    +
  • +
  • +
  • +
+

+
, + image: tinkerWithBlockOrder + }, { + id: 'toLoopOrNotToLoop', + title: messages.toLoopOrNotTitle, + description: (
+

+

+
), + image: toLoopOrNotToLoop + }, { + id: 'timingAndParallelism', + title: messages.timingAndParallelismTitle, + sectionTitle: messages.timingAndParallelismSectionTitle, + description: (
+

+

+
), + image: timingAndParallelism + }, { + id: 'thinkAboutBlockOptions', + title: messages.thinkAboutBlockOptionsTitle, + description: (
+

+

+

+
), + image: thinkAboutBlockOptions + }, { + id: 'checkTheValues', + title: messages.checkTheValuesTitle, + description:
+

+
    +
  • +
  • +
+
, + image: checkTheValues + }, { + id: 'checkCodeSequence', + title: messages.checkCodeSequenceTitle, + description:
+

+

+

+
, + image: checkCodeSequence + }, { + id: 'commentYourCode', + title: messages.commentYourCodeTitle, + description:
+

+

+
, + image: commentYourCode + }, { + id: 'takeABreak', + title: messages.takeABreakTitle, + description:
+

+

+
, + image: takeABreak + }, { + id: 'askForHelp', + title: messages.askForHelpTitle, + description:
+

+

+
, + image: askForHelp + } +]; diff --git a/src/components/delete-button/delete-button.css b/src/components/delete-button/delete-button.css index 6abca7ec00c..5f7f422c66d 100644 --- a/src/components/delete-button/delete-button.css +++ b/src/components/delete-button/delete-button.css @@ -18,8 +18,8 @@ overflow: hidden; /* Mask the icon animation */ width: 1.75rem; height: 1.75rem; - box-shadow: 0px 0px 0px 2px $motion-transparent; - background-color: $motion-primary; + box-shadow: 0px 0px 0px 2px $looks-transparent; + background-color: $looks-secondary; color: $ui-white; border-radius: 50%; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -28,6 +28,10 @@ transition: all 0.15s ease-out; } +.delete-button-clicked { + background-color: $data-primary; +} + .delete-icon { position: relative; margin: 0.25rem; diff --git a/src/components/delete-button/delete-button.jsx b/src/components/delete-button/delete-button.jsx index 6e84fb983f3..bdd16c7349d 100644 --- a/src/components/delete-button/delete-button.jsx +++ b/src/components/delete-button/delete-button.jsx @@ -16,7 +16,11 @@ const DeleteButton = props => ( tabIndex={props.tabIndex} onClick={props.onClick} > -
+
( DeleteButton.propTypes = { className: PropTypes.string, onClick: PropTypes.func.isRequired, + isConfirmationModalOpened: PropTypes.bool, tabIndex: PropTypes.number }; diff --git a/src/components/delete-confirmation-prompt/delete-confirmation-prompt.css b/src/components/delete-confirmation-prompt/delete-confirmation-prompt.css new file mode 100644 index 00000000000..295bb6b5c34 --- /dev/null +++ b/src/components/delete-confirmation-prompt/delete-confirmation-prompt.css @@ -0,0 +1,74 @@ +@import "../../css/colors.css"; +@import "../../css/units.css"; + +.modal-container { + display: flex; + flex-direction: row; + border: none; +} + +.arrow-container { + display: flex; + align-items: center; + margin-right: -7px; +} + +.arrow-container-left { + margin-right: -7px; +} + +.arrow-container-right { + margin-left: -7px; +} + +.body { + padding: 1rem 1.5rem; + border-radius: 0.5rem; + background: $looks-secondary; +} + +.label { + color: $ui-white; + font-size: 1.25rem; + font-weight: 700; + margin: 1rem 0 1.5rem; +} + +.button-row { + font-weight: bolder; + display: flex; +} + +.button-row button { + display: flex; + gap: 0.5rem; + justify-content: center; + width: 47%; + padding: 0.75rem 1rem; + border-radius: 2rem; + border: 1px solid $ui-black-transparent; + color: $looks-secondary; + background: $ui-white; + font-weight: 600; + font-size: 0.85rem; + cursor: pointer; + margin: auto; +} + +.button-row button.ok-button { + margin-left: 0; +} + +.button-row button.cancel-button { + margin-right: 0; +} + +.message { + margin-top: 0.25rem; +} + +.delete-icon { + height: 1.5rem; + width: 1.5rem; +} + diff --git a/src/components/delete-confirmation-prompt/delete-confirmation-prompt.jsx b/src/components/delete-confirmation-prompt/delete-confirmation-prompt.jsx new file mode 100644 index 00000000000..2a6eea9525f --- /dev/null +++ b/src/components/delete-confirmation-prompt/delete-confirmation-prompt.jsx @@ -0,0 +1,185 @@ +import {defineMessages, FormattedMessage, injectIntl, intlShape} from 'react-intl'; +import React from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; + +import Box from '../box/box.jsx'; +import ReactModal from 'react-modal'; +import deleteIcon from './icon--delete.svg'; +import undoIcon from './icon--undo.svg'; +import arrowLeftIcon from './icon--arrow-left.svg'; +import arrowRightIcon from './icon--arrow-right.svg'; + +import styles from './delete-confirmation-prompt.css'; + +// TODO: Parametrize from outside if we want more custom messaging +const messages = defineMessages({ + shouldDeleteSpriteMessage: { + defaultMessage: 'Are you sure you want to delete this sprite?', + description: 'Message to indicate whether selected sprite should be deleted.', + id: 'gui.gui.shouldDeleteSprite' + }, + shouldDeleteCostumeMessage: { + defaultMessage: 'Are you sure you want to delete this costume?', + description: 'Message to indicate whether selected costume should be deleted.', + id: 'gui.gui.shouldDeleteCostume' + }, + shouldDeleteSoundMessage: { + defaultMessage: 'Are you sure you want to delete this sound?', + description: 'Message to indicate whether selected sound should be deleted.', + id: 'gui.gui.shouldDeleteSound' + }, + confirmOption: { + defaultMessage: 'yes', + description: 'Yes - should delete the sprite', + id: 'gui.gui.confirm' + }, + cancelOption: { + defaultMessage: 'no', + description: 'No - cancel deletion', + id: 'gui.gui.cancel' + }, + confirmDeletionHeading: { + defaultMessage: 'Confirm Asset Deletion', + description: 'Heading of confirmation prompt to delete asset', + id: 'gui.gui.deleteAssetHeading' + } +}); + +const modalWidth = 300; +const calculateModalPosition = (relativeElemRef, modalPosition) => { + const refPosition = relativeElemRef.getBoundingClientRect(); + + if (modalPosition === 'left') { + return { + top: refPosition.top - refPosition.height, + left: refPosition.left - modalWidth - 25 + }; + } + + if (modalPosition === 'right') { + return { + top: refPosition.top - refPosition.height, + left: refPosition.right + 25 + }; + } + + return {}; +}; + +const getMessage = entityType => { + if (entityType === 'COSTUME') { + return messages.shouldDeleteCostumeMessage; + } + + if (entityType === 'SOUND') { + return messages.shouldDeleteSoundMessage; + } + + return messages.shouldDeleteSpriteMessage; +}; + +const DeleteConfirmationPrompt = ({ + intl, + onCancel, + onOk, + modalPosition, + entityType, + relativeElemRef +}) => { + const modalPositionValues = calculateModalPosition(relativeElemRef, modalPosition); + + return ( + + { modalPosition === 'right' ? + + + : null } + + + + + + + + + + {modalPosition === 'left' ? + + + : null } + + ); +}; + +DeleteConfirmationPrompt.propTypes = { + onOk: PropTypes.func.isRequired, + onCancel: PropTypes.func.isRequired, + relativeElemRef: PropTypes.object, + entityType: PropTypes.string, + modalPosition: PropTypes.string, + intl: intlShape.isRequired +}; + +const DeleteConfirmationPromptIntl = injectIntl(DeleteConfirmationPrompt); + +export default DeleteConfirmationPromptIntl; diff --git a/src/components/delete-confirmation-prompt/icon--arrow-left.svg b/src/components/delete-confirmation-prompt/icon--arrow-left.svg new file mode 100644 index 00000000000..0712a6f88b8 --- /dev/null +++ b/src/components/delete-confirmation-prompt/icon--arrow-left.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/delete-confirmation-prompt/icon--arrow-right.svg b/src/components/delete-confirmation-prompt/icon--arrow-right.svg new file mode 100644 index 00000000000..cc59340dc3f --- /dev/null +++ b/src/components/delete-confirmation-prompt/icon--arrow-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/components/delete-confirmation-prompt/icon--delete.svg b/src/components/delete-confirmation-prompt/icon--delete.svg new file mode 100644 index 00000000000..4be0a2a3caf --- /dev/null +++ b/src/components/delete-confirmation-prompt/icon--delete.svg @@ -0,0 +1,18 @@ + + + + Sound/General/Delete + Created with Sketch. + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/components/delete-confirmation-prompt/icon--undo.svg b/src/components/delete-confirmation-prompt/icon--undo.svg new file mode 100644 index 00000000000..44c9517b707 --- /dev/null +++ b/src/components/delete-confirmation-prompt/icon--undo.svg @@ -0,0 +1,12 @@ + + + + undo + Created with Sketch. + + + + + + + diff --git a/src/components/direction-picker/dial.css b/src/components/direction-picker/dial.css index ce9b7daea87..43ab7c7d0d5 100644 --- a/src/components/direction-picker/dial.css +++ b/src/components/direction-picker/dial.css @@ -35,7 +35,7 @@ $dial-size: 40px; } .gauge-path { - fill: $motion-transparent; - stroke: $motion-primary; + fill: $looks-transparent; + stroke: $looks-secondary; stroke-width: 1px; } diff --git a/src/components/direction-picker/direction-picker.css b/src/components/direction-picker/direction-picker.css index 501ff021714..e39721317b4 100644 --- a/src/components/direction-picker/direction-picker.css +++ b/src/components/direction-picker/direction-picker.css @@ -1,32 +1,4 @@ -@import "../../css/colors.css"; - .button-row { - display: flex; - flex-direction: row; justify-content: center; - -} - -.icon-button { - margin: 0.25rem; - border: none; - background: none; - outline: none; - cursor: pointer; - user-select: none; -} - -.icon-button:active > img { - width: 20px; - height: 20px; - transform: scale(1.15); -} - -.icon-button > img { - transition: transform 0.1s; - filter: grayscale(100%); -} - -.icon-button.active > img { - filter: none; + margin-bottom: 1rem; } diff --git a/src/components/direction-picker/direction-picker.jsx b/src/components/direction-picker/direction-picker.jsx index 84a15db7a7e..3f06f3dc422 100644 --- a/src/components/direction-picker/direction-picker.jsx +++ b/src/components/direction-picker/direction-picker.jsx @@ -1,12 +1,12 @@ import React from 'react'; import PropTypes from 'prop-types'; -import classNames from 'classnames'; import Popover from 'react-popover'; import {injectIntl, intlShape, defineMessages, FormattedMessage} from 'react-intl'; import Label from '../forms/label.jsx'; import Input from '../forms/input.jsx'; import BufferedInputHOC from '../forms/buffered-input-hoc.jsx'; +import ToggleButtons from '../toggle-buttons/toggle-buttons.jsx'; import Dial from './dial.jsx'; import styles from './direction-picker.css'; @@ -62,44 +62,29 @@ const DirectionPicker = props => ( direction={props.direction} onChange={props.onChangeDirection} /> -
- - - -
+
} isOpen={props.popoverOpen} diff --git a/src/components/direction-picker/icon--all-around.svg b/src/components/direction-picker/icon--all-around.svg index 2412c0b2327..8ace45b7c36 100644 --- a/src/components/direction-picker/icon--all-around.svg +++ b/src/components/direction-picker/icon--all-around.svg @@ -5,6 +5,6 @@ Created with Sketch. - + - \ No newline at end of file + diff --git a/src/components/direction-picker/icon--dial.svg b/src/components/direction-picker/icon--dial.svg index d4aa8ed8205..e2109dfb612 100644 --- a/src/components/direction-picker/icon--dial.svg +++ b/src/components/direction-picker/icon--dial.svg @@ -1 +1 @@ -dial-face \ No newline at end of file +dial-face diff --git a/src/components/direction-picker/icon--dont-rotate.svg b/src/components/direction-picker/icon--dont-rotate.svg index 4796c03af25..222054e825b 100644 --- a/src/components/direction-picker/icon--dont-rotate.svg +++ b/src/components/direction-picker/icon--dont-rotate.svg @@ -5,6 +5,6 @@ Created with Sketch. - + - \ No newline at end of file + diff --git a/src/components/direction-picker/icon--handle.svg b/src/components/direction-picker/icon--handle.svg index 8e5fee6e0ba..ea901a7a43a 100644 --- a/src/components/direction-picker/icon--handle.svg +++ b/src/components/direction-picker/icon--handle.svg @@ -1 +1 @@ -01_Dial Elements \ No newline at end of file +01_Dial Elements diff --git a/src/components/direction-picker/icon--left-right.svg b/src/components/direction-picker/icon--left-right.svg index 4525bd6e917..8565562d848 100644 --- a/src/components/direction-picker/icon--left-right.svg +++ b/src/components/direction-picker/icon--left-right.svg @@ -4,11 +4,9 @@ left-right-active Created with Sketch. - - - - - - + + + + - \ No newline at end of file + diff --git a/src/components/drag-layer/drag-layer.css b/src/components/drag-layer/drag-layer.css index af6ae5dac2c..cb8885374f3 100644 --- a/src/components/drag-layer/drag-layer.css +++ b/src/components/drag-layer/drag-layer.css @@ -9,7 +9,8 @@ left: 0; top: 0; width: 100%; - height: 100% + height: 100%; + direction: ltr; } .image-wrapper { @@ -28,7 +29,7 @@ margin-top: -50%; padding: 0.25rem; - border: 2px solid $motion-primary; + border: 2px solid $looks-secondary; background: $ui-white; border-radius: 0.5rem; diff --git a/src/components/filter/filter.css b/src/components/filter/filter.css index fffef4812ec..ad8ed36f4db 100644 --- a/src/components/filter/filter.css +++ b/src/components/filter/filter.css @@ -35,7 +35,7 @@ } .filter:focus-within { - box-shadow: 0 0 0 .25rem $motion-transparent; + box-shadow: 0 0 0 .25rem $looks-transparent; } /* diff --git a/src/components/filter/icon--filter.svg b/src/components/filter/icon--filter.svg index 400bd6234eb..c60cc9172fa 100644 --- a/src/components/filter/icon--filter.svg +++ b/src/components/filter/icon--filter.svg @@ -1,3 +1,3 @@ - + diff --git a/src/components/forms/input.css b/src/components/forms/input.css index ee1010dbc02..ce0ab17b700 100644 --- a/src/components/forms/input.css +++ b/src/components/forms/input.css @@ -32,12 +32,12 @@ } .input-form:hover { - border-color: $motion-primary; + border-color: $looks-secondary; } .input-form:focus { - border-color: $motion-primary; - box-shadow: 0 0 0 0.25rem $motion-transparent; + border-color: $looks-secondary; + box-shadow: 0 0 0 0.25rem $looks-transparent; } .input-small { diff --git a/src/components/green-flag/green-flag.css b/src/components/green-flag/green-flag.css index aa4eb536d5f..3ca52f61e5d 100644 --- a/src/components/green-flag/green-flag.css +++ b/src/components/green-flag/green-flag.css @@ -11,9 +11,9 @@ } .green-flag:hover { - background-color: $motion-light-transparent; + background-color: $looks-light-transparent; } .green-flag.is-active { - background-color: $motion-transparent; + background-color: $looks-transparent; } diff --git a/src/components/gui/gui.css b/src/components/gui/gui.css index 888316c3c89..2002e5bb2a7 100644 --- a/src/components/gui/gui.css +++ b/src/components/gui/gui.css @@ -34,7 +34,17 @@ } .editor-wrapper { - flex-basis: 600px; + /* + This is carefully balanced-- the minimum width at which the GUI will be displayed is 1024px. + At that size, the stage pane is 408px wide, with $space of padding to each side. + However, we must also add the border width to the stage pane. All-in-all, the stage pane's final width is + 408px + ($space + $stage-standard-border-width * 2) (one border & padding per left/right side). + + @todo This is in place to prevent "doubling up" of horizontal scrollbars in narrow windows, but there are likely + much better ways to solve that (e.g. undo #2124, remove this flex-basis entirely). However, they run their own + risks of breaking things, so let's just leave this as-is for the time being. + */ + flex-basis: calc(1024px - 408px - (($space + $stage-standard-border-width) * 2)); flex-grow: 1; flex-shrink: 0; position: relative; @@ -114,7 +124,7 @@ .tab.is-selected { height: 90%; - color: $motion-primary; + color: $looks-secondary; background-color: $ui-white; z-index: 4; /* Make sure selected is always above */ } @@ -197,21 +207,9 @@ /* pad entire wrapper to the left and right; allow children to fill width */ padding-left: $space; padding-right: $space; -} - -.stage-and-target-wrapper.large { - /* Fix the max width to max large stage size (defined in layout_constants.js) + gutter size */ - max-width: calc(480px + calc($space * 2)); -} -.stage-and-target-wrapper.large-constrained { - /* Fix the max width to max largeConstrained stage size (defined in layout_constants.js) + gutter size */ - max-width: calc(408px + calc($space * 2)); -} - -.stage-and-target-wrapper.small { - /* Fix the max width to max small stage size (defined in layout_constants.js) + gutter size */ - max-width: calc(240px + calc($space * 2)); + /* this will only ever be as wide as the stage */ + flex-basis: 0; } .target-wrapper { @@ -238,9 +236,9 @@ left: 0; right: 0; z-index: $z-index-extension-button; - background: $motion-primary; + background: $looks-secondary; - border: 1px solid $motion-primary; + border: 1px solid $looks-secondary; box-sizing: content-box; /* To match scratch-block vertical toolbox borders */ } @@ -309,6 +307,7 @@ $fade-out-distance: 15px; z-index: $z-index-alerts; position: absolute; margin-top: 53px; + pointer-events: none; } /* diff --git a/src/components/gui/gui.jsx b/src/components/gui/gui.jsx index 9846eed7566..f2d0a8e8f73 100644 --- a/src/components/gui/gui.jsx +++ b/src/components/gui/gui.jsx @@ -33,12 +33,14 @@ import TelemetryModal from '../telemetry-modal/telemetry-modal.jsx'; import layout, {STAGE_SIZE_MODES} from '../../lib/layout-constants'; import {resolveStageSize} from '../../lib/screen-utils'; +import {themeMap} from '../../lib/themes'; import styles from './gui.css'; import addExtensionIcon from './icon--extensions.svg'; import codeIcon from './icon--code.svg'; import costumesIcon from './icon--costumes.svg'; import soundsIcon from './icon--sounds.svg'; +import DebugModal from '../debug-modal/debug-modal.jsx'; const messages = defineMessages({ addExtension: { @@ -64,9 +66,11 @@ const GUIComponent = props => { backdropLibraryVisible, backpackHost, backpackVisible, + blocksId, blocksTabVisible, cardsVisible, canChangeLanguage, + canChangeTheme, canCreateNew, canEditTitle, canManageFiles, @@ -79,6 +83,7 @@ const GUIComponent = props => { connectionModalVisible, costumeLibraryVisible, costumesTabVisible, + debugModalVisible, enableCommunity, intl, isCreating, @@ -86,9 +91,12 @@ const GUIComponent = props => { isPlayerOnly, isRtl, isShared, + isTelemetryEnabled, + isTotallyNormal, loading, logo, renderLogin, + onClickAbout, onClickAccountNav, onCloseAccountNav, onLogOut, @@ -102,9 +110,12 @@ const GUIComponent = props => { onProjectTelemetryEvent, onRequestCloseBackdropLibrary, onRequestCloseCostumeLibrary, + onRequestCloseDebugModal, onRequestCloseTelemetryModal, onSeeCommunity, onShare, + onShowPrivacyPolicy, + onStartSelectingFileUpload, onTelemetryModalCancel, onTelemetryModalOptIn, onTelemetryModalOptOut, @@ -113,6 +124,7 @@ const GUIComponent = props => { stageSizeMode, targetIsStage, telemetryModalVisible, + theme, tipsLibraryVisible, vm, ...componentProps @@ -158,10 +170,13 @@ const GUIComponent = props => { > {telemetryModalVisible ? ( ) : null} {loading ? ( @@ -193,6 +208,10 @@ const GUIComponent = props => { onRequestClose={onRequestCloseCostumeLibrary} /> ) : null} + {} {backdropLibraryVisible ? ( { authorThumbnailUrl={authorThumbnailUrl} authorUsername={authorUsername} canChangeLanguage={canChangeLanguage} + canChangeTheme={canChangeTheme} canCreateCopy={canCreateCopy} canCreateNew={canCreateNew} canEditTitle={canEditTitle} @@ -215,9 +235,11 @@ const GUIComponent = props => { className={styles.menuBarPosition} enableCommunity={enableCommunity} isShared={isShared} + isTotallyNormal={isTotallyNormal} logo={logo} renderLogin={renderLogin} showComingSoon={showComingSoon} + onClickAbout={onClickAbout} onClickAccountNav={onClickAccountNav} onClickLogo={onClickLogo} onCloseAccountNav={onCloseAccountNav} @@ -226,6 +248,7 @@ const GUIComponent = props => { onProjectTelemetryEvent={onProjectTelemetryEvent} onSeeCommunity={onSeeCommunity} onShare={onShare} + onStartSelectingFileUpload={onStartSelectingFileUpload} onToggleLoginOpen={onToggleLoginOpen} /> @@ -291,13 +314,15 @@ const GUIComponent = props => { @@ -332,6 +357,7 @@ const GUIComponent = props => { ({ // This is the button's mode, as opposed to the actual current state - stageSizeMode: state.scratchGui.stageSize.stageSize + blocksId: state.scratchGui.timeTravel.year.toString(), + stageSizeMode: state.scratchGui.stageSize.stageSize, + theme: state.scratchGui.theme.theme }); export default injectIntl(connect( diff --git a/src/components/gui/icon--code.svg b/src/components/gui/icon--code.svg index 390e683b16d..c0699805558 100644 --- a/src/components/gui/icon--code.svg +++ b/src/components/gui/icon--code.svg @@ -5,6 +5,6 @@ Created with Sketch. - + - \ No newline at end of file + diff --git a/src/components/gui/icon--costumes.svg b/src/components/gui/icon--costumes.svg index de50ce39b01..5111126f0c7 100644 --- a/src/components/gui/icon--costumes.svg +++ b/src/components/gui/icon--costumes.svg @@ -5,6 +5,6 @@ Created with Sketch. - + - \ No newline at end of file + diff --git a/src/components/gui/icon--sounds.svg b/src/components/gui/icon--sounds.svg index 0de67c53780..d05c06309c8 100644 --- a/src/components/gui/icon--sounds.svg +++ b/src/components/gui/icon--sounds.svg @@ -5,6 +5,6 @@ Created with Sketch. - + - \ No newline at end of file + diff --git a/src/components/icon-button/icon-button.css b/src/components/icon-button/icon-button.css index 002c817ae48..5e6b4845eca 100644 --- a/src/components/icon-button/icon-button.css +++ b/src/components/icon-button/icon-button.css @@ -7,7 +7,7 @@ cursor: pointer; font-size: 0.75rem; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - color: $motion-primary; + color: $looks-secondary; border-radius: 0.5rem; } @@ -26,5 +26,5 @@ } .container:active { - background-color: $motion-light-transparent; + background-color: $looks-light-transparent; } diff --git a/src/components/language-selector/language-selector.css b/src/components/language-selector/language-selector.css index 013e340dd29..d5fb686185f 100644 --- a/src/components/language-selector/language-selector.css +++ b/src/components/language-selector/language-selector.css @@ -4,7 +4,7 @@ /* Position the language select over the language icon, and make it transparent */ .language-select { position: absolute; - width: $language-selector-width; + width: 100%; height: $menu-bar-height; opacity: 0; user-select: none; diff --git a/src/components/library-item/library-item.css b/src/components/library-item/library-item.css index d4edd136d1c..1a7d15933a7 100644 --- a/src/components/library-item/library-item.css +++ b/src/components/library-item/library-item.css @@ -29,7 +29,7 @@ .library-item:hover { border-width: 2px; - border-color: $motion-primary; + border-color: $looks-secondary; } .hidden { diff --git a/src/components/library/library.css b/src/components/library/library.css index 51287daa721..1419380c103 100644 --- a/src/components/library/library.css +++ b/src/components/library/library.css @@ -19,13 +19,31 @@ height: calc(100% - $library-header-height - $library-filter-bar-height - 2rem); } +.library-category { + display: flex; + flex-direction: column; +} + +.library-category-title { + padding-Left: .5rem; + font-weight: bold; + font-size: 2rem; + color: $text-primary; +} + +.library-category-items { + display: flex; + flex-wrap: wrap; + padding-bottom: 1rem; +} + .filter-bar { display: flex; flex-direction: row; justify-content: flex-start; align-items: center; height: calc($library-filter-bar-height + 2rem); /* padding */ - background-color: $motion-transparent; + background-color: $looks-transparent; padding: 0 1rem; font-size: .875rem; } diff --git a/src/components/library/library.jsx b/src/components/library/library.jsx index 1272cb4a176..09aa6a33217 100644 --- a/src/components/library/library.jsx +++ b/src/components/library/library.jsx @@ -10,6 +10,7 @@ import Divider from '../divider/divider.jsx'; import Filter from '../filter/filter.jsx'; import TagButton from '../../containers/tag-button.jsx'; import Spinner from '../spinner/spinner.jsx'; +import {CATEGORIES} from '../../../src/lib/libraries/decks/index.jsx'; import styles from './library.css'; @@ -23,6 +24,28 @@ const messages = defineMessages({ id: 'gui.library.allTag', defaultMessage: 'All', description: 'Label for library tag to revert to all items after filtering by tag.' + }, + // Strings here need to be defined statically + // https://formatjs.io/docs/getting-started/message-declaration/#pre-declaring-using-definemessage-for-later-consumption-less-recommended + [CATEGORIES.gettingStarted]: { + id: `gui.library.gettingStarted`, + defaultMessage: 'Getting Started', + description: 'Label for getting started category' + }, + [CATEGORIES.basics]: { + id: `gui.library.basics`, + defaultMessage: 'Basics', + description: 'Label for basics category' + }, + [CATEGORIES.intermediate]: { + id: `gui.library.intermediate`, + defaultMessage: 'Intermediate', + description: 'Label for intermediate category' + }, + [CATEGORIES.prompts]: { + id: `gui.library.prompts`, + defaultMessage: 'Prompts', + description: 'Label for prompts category' } }); @@ -65,7 +88,8 @@ class LibraryComponent extends React.Component { } handleSelect (id) { this.handleClose(); - this.props.onItemSelected(this.getFilteredData()[id]); + this.props.onItemSelected(this.getFilteredData() + .find(item => this.constructKey(item) === id)); } handleClose () { this.props.onRequestClose(); @@ -77,7 +101,8 @@ class LibraryComponent extends React.Component { selectedTag: tag.toLowerCase() }); } else { - this.props.onItemMouseLeave(this.getFilteredData()[[this.state.playingItem]]); + this.props.onItemMouseLeave((this.getFilteredData() + .find(item => this.constructKey(item) === this.state.playingItem))); this.setState({ filterQuery: '', playingItem: null, @@ -88,7 +113,8 @@ class LibraryComponent extends React.Component { handleMouseEnter (id) { // don't restart if mouse over already playing item if (this.props.onItemMouseEnter && this.state.playingItem !== id) { - this.props.onItemMouseEnter(this.getFilteredData()[id]); + this.props.onItemMouseEnter(this.getFilteredData() + .find(item => this.constructKey(item) === id)); this.setState({ playingItem: id }); @@ -96,7 +122,8 @@ class LibraryComponent extends React.Component { } handleMouseLeave (id) { if (this.props.onItemMouseLeave) { - this.props.onItemMouseLeave(this.getFilteredData()[id]); + this.props.onItemMouseLeave(this.getFilteredData() + .find(item => this.constructKey(item) === id)); this.setState({ playingItem: null }); @@ -116,7 +143,8 @@ class LibraryComponent extends React.Component { selectedTag: ALL_TAG.tag }); } else { - this.props.onItemMouseLeave(this.getFilteredData()[[this.state.playingItem]]); + this.props.onItemMouseLeave(this.getFilteredData() + .find(item => this.constructKey(item) === this.state.playingItem)); this.setState({ filterQuery: event.target.value, playingItem: null, @@ -128,7 +156,7 @@ class LibraryComponent extends React.Component { this.setState({filterQuery: ''}); } getFilteredData () { - if (this.state.selectedTag === 'all') { + if (this.state.selectedTag === ALL_TAG.tag) { if (!this.state.filterQuery) return this.props.data; return this.props.data.filter(dataItem => ( (dataItem.tags || []) @@ -151,12 +179,68 @@ class LibraryComponent extends React.Component { .indexOf(this.state.selectedTag) !== -1 )); } + constructKey (data) { + return typeof data.name === 'string' ? data.name : data.rawURL; + } scrollToTop () { this.filteredDataRef.scrollTop = 0; } setFilteredDataRef (ref) { this.filteredDataRef = ref; } + renderElement (data) { + const key = this.constructKey(data); + return (
{/* show the proper UI in the account menu, given whether the user is @@ -689,18 +854,22 @@ class MenuBar extends React.Component { )} + + {aboutButton}
); } } MenuBar.propTypes = { + aboutMenuOpen: PropTypes.bool, accountMenuOpen: PropTypes.bool, authorId: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), authorThumbnailUrl: PropTypes.string, authorUsername: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]), autoUpdateProject: PropTypes.func, canChangeLanguage: PropTypes.bool, + canChangeTheme: PropTypes.bool, canCreateCopy: PropTypes.bool, canCreateNew: PropTypes.bool, canEditTitle: PropTypes.bool, @@ -710,6 +879,7 @@ MenuBar.propTypes = { canShare: PropTypes.bool, className: PropTypes.string, confirmReadyToReplaceProject: PropTypes.func, + currentLocale: PropTypes.string.isRequired, editMenuOpen: PropTypes.bool, enableCommunity: PropTypes.bool, fileMenuOpen: PropTypes.bool, @@ -717,40 +887,63 @@ MenuBar.propTypes = { isRtl: PropTypes.bool, isShared: PropTypes.bool, isShowingProject: PropTypes.bool, + isTotallyNormal: PropTypes.bool, isUpdating: PropTypes.bool, - languageMenuOpen: PropTypes.bool, locale: PropTypes.string.isRequired, loginMenuOpen: PropTypes.bool, logo: PropTypes.string, + mode1920: PropTypes.bool, + mode1990: PropTypes.bool, + mode2020: PropTypes.bool, + mode220022BC: PropTypes.bool, + modeMenuOpen: PropTypes.bool, + modeNow: PropTypes.bool, + onClickAbout: PropTypes.oneOfType([ + PropTypes.func, // button mode: call this callback when the About button is clicked + PropTypes.arrayOf( // menu mode: list of items in the About menu + PropTypes.shape({ + title: PropTypes.string, // text for the menu item + onClick: PropTypes.func // call this callback when the menu item is clicked + }) + ) + ]), onClickAccount: PropTypes.func, onClickEdit: PropTypes.func, onClickFile: PropTypes.func, - onClickLanguage: PropTypes.func, onClickLogin: PropTypes.func, onClickLogo: PropTypes.func, + onClickMode: PropTypes.func, onClickNew: PropTypes.func, onClickRemix: PropTypes.func, onClickSave: PropTypes.func, onClickSaveAsCopy: PropTypes.func, + onClickSettings: PropTypes.func, onLogOut: PropTypes.func, onOpenRegistration: PropTypes.func, onOpenTipLibrary: PropTypes.func, + onOpenDebugModal: PropTypes.func, onProjectTelemetryEvent: PropTypes.func, + onRequestCloseAbout: PropTypes.func, onRequestCloseAccount: PropTypes.func, onRequestCloseEdit: PropTypes.func, onRequestCloseFile: PropTypes.func, - onRequestCloseLanguage: PropTypes.func, onRequestCloseLogin: PropTypes.func, + onRequestCloseMode: PropTypes.func, + onRequestCloseSettings: PropTypes.func, + onRequestOpenAbout: PropTypes.func, onSeeCommunity: PropTypes.func, + onSetTimeTravelMode: PropTypes.func, onShare: PropTypes.func, + onStartSelectingFileUpload: PropTypes.func, onToggleLoginOpen: PropTypes.func, projectTitle: PropTypes.string, renderLogin: PropTypes.func, sessionExists: PropTypes.bool, + settingsMenuOpen: PropTypes.bool, shouldSaveBeforeTransition: PropTypes.func, showComingSoon: PropTypes.bool, - userOwnsProject: PropTypes.bool, username: PropTypes.string, + userOwnsProject: PropTypes.bool, vm: PropTypes.instanceOf(VM).isRequired }; @@ -763,42 +956,56 @@ const mapStateToProps = (state, ownProps) => { const loadingState = state.scratchGui.projectState.loadingState; const user = state.session && state.session.session && state.session.session.user; return { + aboutMenuOpen: aboutMenuOpen(state), accountMenuOpen: accountMenuOpen(state), + currentLocale: state.locales.locale, fileMenuOpen: fileMenuOpen(state), editMenuOpen: editMenuOpen(state), isRtl: state.locales.isRtl, isUpdating: getIsUpdating(loadingState), isShowingProject: getIsShowingProject(loadingState), - languageMenuOpen: languageMenuOpen(state), locale: state.locales.locale, loginMenuOpen: loginMenuOpen(state), + modeMenuOpen: modeMenuOpen(state), projectTitle: state.scratchGui.projectTitle, sessionExists: state.session && typeof state.session.session !== 'undefined', + settingsMenuOpen: settingsMenuOpen(state), username: user ? user.username : null, userOwnsProject: ownProps.authorUsername && user && (ownProps.authorUsername === user.username), - vm: state.scratchGui.vm + vm: state.scratchGui.vm, + mode220022BC: isTimeTravel220022BC(state), + mode1920: isTimeTravel1920(state), + mode1990: isTimeTravel1990(state), + mode2020: isTimeTravel2020(state), + modeNow: isTimeTravelNow(state) }; }; const mapDispatchToProps = dispatch => ({ autoUpdateProject: () => dispatch(autoUpdateProject()), onOpenTipLibrary: () => dispatch(openTipsLibrary()), + onOpenDebugModal: () => dispatch(openDebugModal()), onClickAccount: () => dispatch(openAccountMenu()), onRequestCloseAccount: () => dispatch(closeAccountMenu()), onClickFile: () => dispatch(openFileMenu()), onRequestCloseFile: () => dispatch(closeFileMenu()), onClickEdit: () => dispatch(openEditMenu()), onRequestCloseEdit: () => dispatch(closeEditMenu()), - onClickLanguage: () => dispatch(openLanguageMenu()), - onRequestCloseLanguage: () => dispatch(closeLanguageMenu()), onClickLogin: () => dispatch(openLoginMenu()), onRequestCloseLogin: () => dispatch(closeLoginMenu()), + onClickMode: () => dispatch(openModeMenu()), + onRequestCloseMode: () => dispatch(closeModeMenu()), + onRequestOpenAbout: () => dispatch(openAboutMenu()), + onRequestCloseAbout: () => dispatch(closeAboutMenu()), + onClickSettings: () => dispatch(openSettingsMenu()), + onRequestCloseSettings: () => dispatch(closeSettingsMenu()), onClickNew: needSave => dispatch(requestNewProject(needSave)), onClickRemix: () => dispatch(remixProject()), onClickSave: () => dispatch(manualUpdateProject()), onClickSaveAsCopy: () => dispatch(saveProjectAsCopy()), - onSeeCommunity: () => dispatch(setPlayer(true)) + onSeeCommunity: () => dispatch(setPlayer(true)), + onSetTimeTravelMode: mode => dispatch(setTimeTravel(mode)) }); export default compose( diff --git a/src/components/menu-bar/nineties_logo.svg b/src/components/menu-bar/nineties_logo.svg new file mode 100644 index 00000000000..ac798ff4b96 --- /dev/null +++ b/src/components/menu-bar/nineties_logo.svg @@ -0,0 +1,2389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + s + + + C + + + R + + + s + + + H + + + T + + + R + + + T + + + H + + + C + + + C + + + C + + + R + + + T + + + R + + + R + + + H + + + R + + + C + + + A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SCRATCH + + diff --git a/src/components/menu-bar/oldtimey-logo.svg b/src/components/menu-bar/oldtimey-logo.svg new file mode 100644 index 00000000000..afc34cde28e --- /dev/null +++ b/src/components/menu-bar/oldtimey-logo.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/menu-bar/prehistoric-logo.svg b/src/components/menu-bar/prehistoric-logo.svg new file mode 100644 index 00000000000..a18055270cd --- /dev/null +++ b/src/components/menu-bar/prehistoric-logo.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/components/menu-bar/settings-menu.css b/src/components/menu-bar/settings-menu.css new file mode 100644 index 00000000000..4171aa1505f --- /dev/null +++ b/src/components/menu-bar/settings-menu.css @@ -0,0 +1,67 @@ +.icon { + width: 1.5rem; +} + +.theme-label { + flex: 1; +} + +.option { + display: flex; + align-items: center; + gap: .5rem; +} + +.check { + margin: 0 .25rem 0 0; + visibility: hidden; +} + +[dir="rtl"] .check { + margin: 0 0 0 .25rem; +} + +.selected { + visibility: visible; +} + +.submenu-label { + flex: 1; +} + +.dropdown-label { + margin: 0 0.5rem 0 0.25rem; +} + +[dir="rtl"] .dropdown-label { + margin: 0 0.25rem 0 0.5rem; +} + +.expand-caret { + transform: rotate(-90deg); +} + +[dir="rtl"] .expand-caret { + transform: rotate(90deg); +} + +/* Extra padding to deal with scrollbar overlapping options in Firefox */ + +[dir="ltr"] .language-menu-item { + padding-right: 1rem; +} + +[dir="rtl"] .language-menu-item { + padding-left: 1rem; +} + +.language-submenu > ul { + max-height: calc(100vh - 5rem); /* Fallback if dvh not supported */ + max-height: calc(100dvh - 5rem); +} + +@media only screen and (max-width: 1024px) { + .dropdown-label { + display: none; + } +} diff --git a/src/components/menu-bar/settings-menu.jsx b/src/components/menu-bar/settings-menu.jsx new file mode 100644 index 00000000000..2b0ac7bae85 --- /dev/null +++ b/src/components/menu-bar/settings-menu.jsx @@ -0,0 +1,65 @@ +import classNames from 'classnames'; +import PropTypes from 'prop-types'; +import React from 'react'; +import {FormattedMessage} from 'react-intl'; + +import LanguageMenu from './language-menu.jsx'; +import MenuBarMenu from './menu-bar-menu.jsx'; +import ThemeMenu from './theme-menu.jsx'; +import {MenuSection} from '../menu/menu.jsx'; + +import menuBarStyles from './menu-bar.css'; +import styles from './settings-menu.css'; + +import dropdownCaret from './dropdown-caret.svg'; +import settingsIcon from './icon--settings.svg'; + +const SettingsMenu = ({ + canChangeLanguage, + canChangeTheme, + isRtl, + onRequestClose, + onRequestOpen, + settingsMenuOpen +}) => ( +
+ + + + + + + + {canChangeLanguage && } + {canChangeTheme && } + + +
+); + +SettingsMenu.propTypes = { + canChangeLanguage: PropTypes.bool, + canChangeTheme: PropTypes.bool, + isRtl: PropTypes.bool, + onRequestClose: PropTypes.func, + onRequestOpen: PropTypes.func, + settingsMenuOpen: PropTypes.bool +}; + +export default SettingsMenu; diff --git a/src/components/menu-bar/theme-menu.jsx b/src/components/menu-bar/theme-menu.jsx new file mode 100644 index 00000000000..e9ce24f1de2 --- /dev/null +++ b/src/components/menu-bar/theme-menu.jsx @@ -0,0 +1,118 @@ +import classNames from 'classnames'; +import PropTypes from 'prop-types'; +import React from 'react'; +import {FormattedMessage} from 'react-intl'; +import {connect} from 'react-redux'; + +import check from './check.svg'; +import {MenuItem, Submenu} from '../menu/menu.jsx'; +import {DEFAULT_THEME, HIGH_CONTRAST_THEME, themeMap} from '../../lib/themes'; +import {persistTheme} from '../../lib/themes/themePersistance'; +import {openThemeMenu, themeMenuOpen} from '../../reducers/menus.js'; +import {setTheme} from '../../reducers/theme.js'; + +import styles from './settings-menu.css'; + +import dropdownCaret from './dropdown-caret.svg'; + +const ThemeMenuItem = props => { + const themeInfo = themeMap[props.theme]; + + return ( + +
+ + + +
+
); +}; + +ThemeMenuItem.propTypes = { + isSelected: PropTypes.bool, + onClick: PropTypes.func, + theme: PropTypes.string +}; + +const ThemeMenu = ({ + isRtl, + menuOpen, + onChangeTheme, + onRequestOpen, + theme +}) => { + const enabledThemes = [DEFAULT_THEME, HIGH_CONTRAST_THEME]; + const themeInfo = themeMap[theme]; + + return ( + +
+ + + + + +
+ + {enabledThemes.map(enabledTheme => ( + onChangeTheme(enabledTheme)} + theme={enabledTheme} + />) + )} + +
+ ); +}; + +ThemeMenu.propTypes = { + isRtl: PropTypes.bool, + menuOpen: PropTypes.bool, + onChangeTheme: PropTypes.func, + // eslint-disable-next-line react/no-unused-prop-types + onRequestCloseSettings: PropTypes.func, + onRequestOpen: PropTypes.func, + theme: PropTypes.string +}; + +const mapStateToProps = state => ({ + isRtl: state.locales.isRtl, + menuOpen: themeMenuOpen(state), + theme: state.scratchGui.theme.theme +}); + +const mapDispatchToProps = (dispatch, ownProps) => ({ + onChangeTheme: theme => { + dispatch(setTheme(theme)); + ownProps.onRequestCloseSettings(); + persistTheme(theme); + }, + onRequestOpen: () => dispatch(openThemeMenu()) +}); + +export default connect( + mapStateToProps, + mapDispatchToProps +)(ThemeMenu); diff --git a/src/components/menu/menu.css b/src/components/menu/menu.css index c48f0d25dc5..64cfccedd09 100644 --- a/src/components/menu/menu.css +++ b/src/components/menu/menu.css @@ -4,7 +4,7 @@ position: absolute; border: 1px solid $ui-black-transparent; border-radius: 0 0 8px 8px; - background-color: $motion-primary; + background-color: $looks-secondary; padding: 0; margin: 0; min-width: 186px; @@ -30,10 +30,12 @@ font-size: .75rem; margin: 0; font-weight: bold; + position: relative; } .menu-item.active, -.menu-item:hover { +.menu-item:hover, +.menu-item.expanded { background-color: $ui-black-transparent; } @@ -44,3 +46,54 @@ .menu-section { border-top: 1px solid $ui-black-transparent; } + +.submenu { + display: none; + position: absolute; + top: -1px; + min-width: 186px; + max-width: 260px; + height: max-content; + overflow: hidden; + border-radius: 8px; +} + +.submenu.right { + left: 100%; +} + +.submenu.left { + right: 100%; +} + +.submenu > .menu { + position: relative; + overflow-y: auto; + overflow-x: hidden; + scrollbar-color: $ui-black-transparent $looks-secondary; + border-radius: 8px; +} + +.menu-item.expanded > .submenu { + display: block; +} + +:not(:has(> .menu-item.expanded)) > .menu-item:hover > .submenu { + display: block; +} + +/* Fallback styling for webkit browsers that don't support scrollbar-color */ + +.submenu > .menu::-webkit-scrollbar { + width: 12px; +} + +.submenu > .menu::-webkit-scrollbar-track { + background: $looks-secondary; +} + +.submenu > .menu::-webkit-scrollbar-thumb { + background-color: $ui-black-transparent; + border-radius: 12px; + border: 3px solid $looks-secondary; +} diff --git a/src/components/menu/menu.jsx b/src/components/menu/menu.jsx index 9f14ba52b2d..5be46a32e36 100644 --- a/src/components/menu/menu.jsx +++ b/src/components/menu/menu.jsx @@ -33,16 +33,44 @@ MenuComponent.propTypes = { }; +const Submenu = ({children, className, place, ...props}) => ( +
+ + {children} + +
+); + +Submenu.propTypes = { + children: PropTypes.node, + className: PropTypes.string, + place: PropTypes.oneOf(['left', 'right']) +}; + const MenuItem = ({ children, className, + expanded = false, onClick }) => (
  • @@ -53,6 +81,7 @@ const MenuItem = ({ MenuItem.propTypes = { children: PropTypes.node, className: PropTypes.string, + expanded: PropTypes.bool, onClick: PropTypes.func }; @@ -80,5 +109,6 @@ MenuSection.propTypes = { export { MenuComponent as default, MenuItem, - MenuSection + MenuSection, + Submenu }; diff --git a/src/components/modal/modal.css b/src/components/modal/modal.css index 1ed2425ce1e..6beaaf8f617 100644 --- a/src/components/modal/modal.css +++ b/src/components/modal/modal.css @@ -67,7 +67,7 @@ $sides: 20rem; box-sizing: border-box; width: 100%; - background-color: $motion-primary; + background-color: $looks-secondary; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 1rem; diff --git a/src/components/monitor/default-monitor.jsx b/src/components/monitor/default-monitor.jsx index 9920147750b..3368519ddbd 100644 --- a/src/components/monitor/default-monitor.jsx +++ b/src/components/monitor/default-monitor.jsx @@ -10,7 +10,10 @@ const DefaultMonitor = ({categoryColor, label, value}) => (
    {value}
    @@ -19,7 +22,10 @@ const DefaultMonitor = ({categoryColor, label, value}) => ( ); DefaultMonitor.propTypes = { - categoryColor: PropTypes.string.isRequired, + categoryColor: PropTypes.shape({ + background: PropTypes.string.isRequired, + text: PropTypes.string.isRequired + }).isRequired, label: PropTypes.string.isRequired, value: PropTypes.oneOfType([ PropTypes.string, diff --git a/src/components/monitor/large-monitor.jsx b/src/components/monitor/large-monitor.jsx index 5101ad0a5da..64ac3264031 100644 --- a/src/components/monitor/large-monitor.jsx +++ b/src/components/monitor/large-monitor.jsx @@ -6,7 +6,10 @@ const LargeMonitor = ({categoryColor, value}) => (
    {value}
    @@ -14,7 +17,10 @@ const LargeMonitor = ({categoryColor, value}) => ( ); LargeMonitor.propTypes = { - categoryColor: PropTypes.string, + categoryColor: PropTypes.shape({ + background: PropTypes.string.isRequired, + text: PropTypes.string.isRequired + }).isRequired, value: PropTypes.oneOfType([ PropTypes.string, PropTypes.number diff --git a/src/components/monitor/list-monitor-scroller.jsx b/src/components/monitor/list-monitor-scroller.jsx index cfcd6a248b8..ea0de244eba 100644 --- a/src/components/monitor/list-monitor-scroller.jsx +++ b/src/components/monitor/list-monitor-scroller.jsx @@ -41,7 +41,10 @@ class ListMonitorScroller extends React.Component {
    {this.props.draggable && this.props.activeIndex === index ? ( @@ -51,6 +54,7 @@ class ListMonitorScroller extends React.Component { autoComplete={false} className={classNames(styles.listInput, 'no-drag')} spellCheck={false} + style={{color: this.props.categoryColor.text}} type="text" value={this.props.activeValue} onBlur={this.props.onDeactivate} @@ -97,7 +101,10 @@ class ListMonitorScroller extends React.Component { ListMonitorScroller.propTypes = { activeIndex: PropTypes.number, activeValue: PropTypes.string, - categoryColor: PropTypes.string, + categoryColor: PropTypes.shape({ + background: PropTypes.string.isRequired, + text: PropTypes.string.isRequired + }).isRequired, draggable: PropTypes.bool, height: PropTypes.number, onActivate: PropTypes.func, diff --git a/src/components/monitor/list-monitor.jsx b/src/components/monitor/list-monitor.jsx index e3422e5b31d..4bd9a2563a9 100644 --- a/src/components/monitor/list-monitor.jsx +++ b/src/components/monitor/list-monitor.jsx @@ -54,7 +54,10 @@ const ListMonitor = ({draggable, label, width, height, value, onResizeMouseDown, ListMonitor.propTypes = { activeIndex: PropTypes.number, - categoryColor: PropTypes.string.isRequired, + categoryColor: PropTypes.shape({ + background: PropTypes.string.isRequired, + text: PropTypes.string.isRequired + }).isRequired, draggable: PropTypes.bool.isRequired, height: PropTypes.number, label: PropTypes.string.isRequired, diff --git a/src/components/monitor/monitor.css b/src/components/monitor/monitor.css index 521c39279aa..a4011457a5a 100644 --- a/src/components/monitor/monitor.css +++ b/src/components/monitor/monitor.css @@ -37,9 +37,11 @@ } .value { + display: flex; + justify-content: center; + align-items: center; min-width: 40px; text-align: center; - color: white; margin: 0 5px; border-radius: calc($space / 2); padding: 0 2px; @@ -52,7 +54,6 @@ min-width: 3rem; padding: 0.1rem 0.25rem; text-align: center; - color: white; font-size: 1rem; white-space: pre-wrap; transform: translateZ(0); /* Fixes flickering in Safari */ @@ -112,7 +113,6 @@ .list-value { min-width: 40px; text-align: left; - color: white; margin: 0 3px; border-radius: calc($space / 2); border: 1px solid $ui-black-transparent; @@ -158,7 +158,6 @@ padding: 3px 5px; border: 0; background: none; - color: $ui-white; outline: none; font-size: 0.75rem; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -171,7 +170,6 @@ padding: 0; padding-right: 5px; cursor: pointer; - color: $ui-white; } .add-button { diff --git a/src/components/monitor/monitor.jsx b/src/components/monitor/monitor.jsx index 5d52655c0e3..d9ceb926957 100644 --- a/src/components/monitor/monitor.jsx +++ b/src/components/monitor/monitor.jsx @@ -10,17 +10,19 @@ import DefaultMonitor from './default-monitor.jsx'; import LargeMonitor from './large-monitor.jsx'; import SliderMonitor from '../../containers/slider-monitor.jsx'; import ListMonitor from '../../containers/list-monitor.jsx'; +import {getColorsForTheme} from '../../lib/themes/index.js'; import styles from './monitor.css'; -const categories = { - data: '#FF8C1A', - sensing: '#5CB1D6', - sound: '#CF63CF', - looks: '#9966FF', - motion: '#4C97FF', - list: '#FC662C', - extension: '#0FBD8C' +// Map category name to color name used in scratch-blocks Blockly.Colours +const categoryColorMap = { + data: 'data', + sensing: 'sensing', + sound: 'sounds', + looks: 'looks', + motion: 'motion', + list: 'data_lists', + extension: 'pen' }; const modes = { @@ -30,6 +32,14 @@ const modes = { list: ListMonitor }; +const getCategoryColor = (theme, category) => { + const colors = getColorsForTheme(theme); + return { + background: colors[categoryColorMap[category]].primary, + text: colors.text + }; +}; + const MonitorComponent = props => ( ( onDoubleClick={props.mode === 'list' || !props.draggable ? null : props.onNextMode} > {React.createElement(modes[props.mode], { - categoryColor: categories[props.category], + categoryColor: getCategoryColor(props.theme, props.category), ...props })} @@ -108,18 +118,24 @@ const MonitorComponent = props => ( id="gui.monitor.contextMenu.export" /> } + {props.onHide && + + + } ), document.body)} ); -MonitorComponent.categories = categories; - const monitorModes = Object.keys(modes); MonitorComponent.propTypes = { - category: PropTypes.oneOf(Object.keys(categories)), + category: PropTypes.oneOf(Object.keys(categoryColorMap)), componentRef: PropTypes.func.isRequired, draggable: PropTypes.bool.isRequired, label: PropTypes.string.isRequired, @@ -127,11 +143,13 @@ MonitorComponent.propTypes = { onDragEnd: PropTypes.func.isRequired, onExport: PropTypes.func, onImport: PropTypes.func, + onHide: PropTypes.func, onNextMode: PropTypes.func.isRequired, onSetModeToDefault: PropTypes.func, onSetModeToLarge: PropTypes.func, onSetModeToSlider: PropTypes.func, - onSliderPromptOpen: PropTypes.func + onSliderPromptOpen: PropTypes.func, + theme: PropTypes.string.isRequired }; MonitorComponent.defaultProps = { diff --git a/src/components/monitor/slider-monitor.jsx b/src/components/monitor/slider-monitor.jsx index 0271b140a03..2bda8f5938c 100644 --- a/src/components/monitor/slider-monitor.jsx +++ b/src/components/monitor/slider-monitor.jsx @@ -12,7 +12,10 @@ const SliderMonitor = ({categoryColor, isDiscrete, label, min, max, value, onSli
    {value}
    @@ -33,7 +36,10 @@ const SliderMonitor = ({categoryColor, isDiscrete, label, min, max, value, onSli ); SliderMonitor.propTypes = { - categoryColor: PropTypes.string.isRequired, + categoryColor: PropTypes.shape({ + background: PropTypes.string.isRequired, + text: PropTypes.string.isRequired + }).isRequired, isDiscrete: PropTypes.bool, label: PropTypes.string.isRequired, max: PropTypes.number, diff --git a/src/components/nineties-mode/nineties-mode.css b/src/components/nineties-mode/nineties-mode.css new file mode 100644 index 00000000000..0d09ccef418 --- /dev/null +++ b/src/components/nineties-mode/nineties-mode.css @@ -0,0 +1,9 @@ +.nineties-mode { + position: absolute; + width: 100%; + height: 100%; + background: transparent url('./shapes.svg'); + z-index: 50; + opacity: .2; + pointer-events: none; +} diff --git a/src/components/nineties-mode/nineties-mode.jsx b/src/components/nineties-mode/nineties-mode.jsx new file mode 100644 index 00000000000..77e65fda569 --- /dev/null +++ b/src/components/nineties-mode/nineties-mode.jsx @@ -0,0 +1,23 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import styles from './nineties-mode.css'; +import {connect} from 'react-redux'; +import {isTimeTravel1990} from '../../reducers/time-travel'; + +const NinetiesMode = props => { + if (!props.show) return null; + return
    ; +}; + +NinetiesMode.propTypes = { + show: PropTypes.bool +}; + +const mapStateToProps = state => ({ + // This is the button's mode, as opposed to the actual current state + show: isTimeTravel1990(state) +}); + +export default connect( + mapStateToProps +)(NinetiesMode); diff --git a/src/components/nineties-mode/shapes.svg b/src/components/nineties-mode/shapes.svg new file mode 100644 index 00000000000..deb2237e18d --- /dev/null +++ b/src/components/nineties-mode/shapes.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/oldtimey-mode/oldtimey-mode.css b/src/components/oldtimey-mode/oldtimey-mode.css new file mode 100644 index 00000000000..1deb573a4db --- /dev/null +++ b/src/components/oldtimey-mode/oldtimey-mode.css @@ -0,0 +1,9 @@ +.oldtimey-mode { + position: absolute; + width: 100%; + height: 100%; + background: transparent url('./oldtimey.png') center center; + background-size: 100% 100%; + z-index: 500; + pointer-events: none; +} \ No newline at end of file diff --git a/src/components/oldtimey-mode/oldtimey-mode.jsx b/src/components/oldtimey-mode/oldtimey-mode.jsx new file mode 100644 index 00000000000..98d45b37aac --- /dev/null +++ b/src/components/oldtimey-mode/oldtimey-mode.jsx @@ -0,0 +1,35 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import styles from './oldtimey-mode.css'; +import oldtimeySound from './projector2.mp3'; +import {connect} from 'react-redux'; +import {isTimeTravel1920} from '../../reducers/time-travel'; + +const OldTimeyMode = props => { + if (!props.show) return null; + return ( +
    +
    + ); +}; + +OldTimeyMode.propTypes = { + show: PropTypes.bool +}; + +const mapStateToProps = state => ({ + // This is the button's mode, as opposed to the actual current state + show: isTimeTravel1920(state) +}); + +export default connect( + mapStateToProps +)(OldTimeyMode); diff --git a/src/components/oldtimey-mode/oldtimey.png b/src/components/oldtimey-mode/oldtimey.png new file mode 100644 index 00000000000..ca0abe691ff Binary files /dev/null and b/src/components/oldtimey-mode/oldtimey.png differ diff --git a/src/components/oldtimey-mode/projector.wav b/src/components/oldtimey-mode/projector.wav new file mode 100644 index 00000000000..ff28aba5e90 Binary files /dev/null and b/src/components/oldtimey-mode/projector.wav differ diff --git a/src/components/oldtimey-mode/projector2.mp3 b/src/components/oldtimey-mode/projector2.mp3 new file mode 100644 index 00000000000..a475951ee79 Binary files /dev/null and b/src/components/oldtimey-mode/projector2.mp3 differ diff --git a/src/components/prehistoric-mode/background.png b/src/components/prehistoric-mode/background.png new file mode 100644 index 00000000000..90c68ccb413 Binary files /dev/null and b/src/components/prehistoric-mode/background.png differ diff --git a/src/components/prehistoric-mode/prehistoric-mode.css b/src/components/prehistoric-mode/prehistoric-mode.css new file mode 100644 index 00000000000..962a3a039c1 --- /dev/null +++ b/src/components/prehistoric-mode/prehistoric-mode.css @@ -0,0 +1,49 @@ +.prehistoric-mode { + position: absolute; + width: 100%; + height: 100%; + overflow: hidden; +} + +.prehistoric-background{ + position: absolute; + width: 100%; + height: 100%; + opacity: 90%; + z-index: 50; + pointer-events: none; + background: transparent url('./background.png') center center; + animation:jitter 2.5s linear infinite; +} + + +@keyframes jitter{ + 0%{transform:scale(1.0385841106898348);} + 5% {transform:scale(1.045596657989466);} + 10% {transform:scale(1.029923116529907);} + 15% {transform:scale(1.059010318189378);} + 20% {transform:scale(1.0868915738701577);} + 25% {transform:scale(1.0771183924324506);} + 30% {transform:scale(1.0780695942284886);} + 35% {transform:scale(1.081268381642509);} + 40% {transform:scale(1.0446864380239975);} + 45% {transform:scale(1.0822226558561991);} + 50% {transform:scale(1.0703574969484024);} + 55% {transform:scale(1.0131626458532954);} + 60% {transform:scale(1.0638351688496082);} + 65% {transform:scale(1.0254684750877292);} + 70% {transform:scale(1.0409969735315965);} + 75% {transform:scale(1.029863208069294);} + 80% {transform:scale(1.043175299252114);} + 85% {transform:scale(1.022196668538089);} + 90% {transform:scale(1.042465864842523);} + 95% {transform:scale(1.04090035265691);} + 100% {transform:scale(1.0385841106898348);} +} + +.torch { + position: absolute; + pointer-events: none; + opacity: 80%; + z-index: 50; +} \ No newline at end of file diff --git a/src/components/prehistoric-mode/prehistoric-mode.jsx b/src/components/prehistoric-mode/prehistoric-mode.jsx new file mode 100644 index 00000000000..72a49d57522 --- /dev/null +++ b/src/components/prehistoric-mode/prehistoric-mode.jsx @@ -0,0 +1,68 @@ +import PropTypes from 'prop-types'; +import React from 'react'; +import bindAll from 'lodash.bindall'; +import styles from './prehistoric-mode.css'; +import {connect} from 'react-redux'; +import {isTimeTravel220022BC} from '../../reducers/time-travel'; +import torch from './torch.gif'; + +class PrehistoricMode extends React.Component { + constructor (props) { + super(props); + bindAll(this, [ + 'handleMouseMove' + ]); + this.state = { + x: window.innerWidth / 2, + y: window.innerHeight / 2 + }; + } + + componentDidMount () { + document.addEventListener('pointermove', this.handleMouseMove); + } + + componentWillUnmount () { + document.removeEventListener('pointermove', this.handleMouseMove); + } + + handleMouseMove (event) { + this.setState({x: event.clientX, y: event.clientY}); + } + + render () { + if (!this.props.show) return null; + return ( +
    +
    +
    + ); + } +} + +PrehistoricMode.propTypes = { + show: PropTypes.bool +}; + +const mapStateToProps = state => ({ + // This is the button's mode, as opposed to the actual current state + show: isTimeTravel220022BC(state) +}); + +export default connect( + mapStateToProps +)(PrehistoricMode); diff --git a/src/components/prehistoric-mode/torch.gif b/src/components/prehistoric-mode/torch.gif new file mode 100644 index 00000000000..6f5b1392737 Binary files /dev/null and b/src/components/prehistoric-mode/torch.gif differ diff --git a/src/components/progress-ring/progress-ring.css b/src/components/progress-ring/progress-ring.css new file mode 100644 index 00000000000..89202aa0023 --- /dev/null +++ b/src/components/progress-ring/progress-ring.css @@ -0,0 +1,18 @@ +@import "../../css/colors.css"; + +.progress-ring { + margin: 0.5rem; +} + +.progress-ring-svg { + fill: transparent; +} + +.progress-ring .progress-ring-ring { + stroke: $looks-light-transparent; +} + +.progress-ring .progress-ring-value { + stroke: $looks-secondary; + stroke-linecap: round; +} diff --git a/src/components/progress-ring/progress-ring.jsx b/src/components/progress-ring/progress-ring.jsx new file mode 100644 index 00000000000..fe1bd5b495e --- /dev/null +++ b/src/components/progress-ring/progress-ring.jsx @@ -0,0 +1,81 @@ +/** + * This progress ring is like a progress bar (``), but circular. + * Like ``, it has a `value` prop and a `max` prop. The `value` + * prop is the current progress, and the `max` prop is the maximum progress. + * The `value` prop can be any number between 0 and `max`, inclusive. + * The `max` prop can be any number greater than 0, and defaults to 1. + * Indeterminate progress is not supported. + * The required `sizePx` prop is the outer diameter of the ring, in pixels. + * The optional `strokeWidthPx` prop is the width of the ring, in pixels. + */ + +import PropTypes from 'prop-types'; +import React from 'react'; +import classNames from 'classnames'; + +import styles from './progress-ring.css'; + +const ProgressRingComponent = ({ + className, + max = 1, + sizePx, + strokeWidthPx, + value, + ...props +}) => { + if (typeof strokeWidthPx === 'undefined') { + strokeWidthPx = sizePx / 6; + } + + const center = sizePx / 2; + const diameter = (sizePx - strokeWidthPx); + const radius = diameter / 2; + const circumference = Math.PI * diameter; + const offset = circumference * (1 - (value / max)); + const ringSvgProps = { + cx: center, + cy: center, + r: radius + }; + + return ( +
    + + + + +
    + ); +}; + +ProgressRingComponent.propTypes = { + className: PropTypes.string, + max: PropTypes.number, // default = 1 + sizePx: PropTypes.number.isRequired, + strokeWidthPx: PropTypes.number, // default = sizePx/6 + value: PropTypes.number.isRequired +}; + +export default ProgressRingComponent; diff --git a/src/components/prompt/prompt.css b/src/components/prompt/prompt.css index c12afc6b7b8..71fb7fac7ec 100644 --- a/src/components/prompt/prompt.css +++ b/src/components/prompt/prompt.css @@ -64,8 +64,8 @@ } .button-row button.ok-button { - background: $motion-primary; - border: $motion-primary; + background: $looks-secondary; + border: $looks-secondary; color: white; } diff --git a/src/components/prompt/prompt.jsx b/src/components/prompt/prompt.jsx index d60af1f3446..05f2cbbc4c5 100644 --- a/src/components/prompt/prompt.jsx +++ b/src/components/prompt/prompt.jsx @@ -30,6 +30,12 @@ const messages = defineMessages({ description: 'A message that displays in a variable modal when the stage is selected indicating ' + 'that the variable being created will available to all sprites.', id: 'gui.gui.variablePromptAllSpritesMessage' + }, + listAvailableToAllSpritesMessage: { + defaultMessage: 'This list will be available to all sprites.', + description: 'A message that displays in a list modal when the stage is selected indicating ' + + 'that the list being created will available to all sprites.', + id: 'gui.gui.listPromptAllSpritesMessage' } }); @@ -58,9 +64,15 @@ const PromptComponent = props => (
    {props.isStage ?
    - + {props.showListMessage ? ( + + ) : ( + + )}
    :
    ) : ( - +
    + +
    ); header = ( @@ -110,40 +112,24 @@ const StageHeaderComponent = function (props) { [] ) : (
    -
    - -
    -
    - -
    +
    ); header = ( diff --git a/src/components/stage-selector/stage-selector.css b/src/components/stage-selector/stage-selector.css index 742898bd3ba..f93a0c34405 100644 --- a/src/components/stage-selector/stage-selector.css +++ b/src/components/stage-selector/stage-selector.css @@ -26,12 +26,12 @@ $header-height: calc($stage-menu-height - 2px); .stage-selector.is-selected { border-top-left-radius: .625rem; border-top-right-radius: .625rem; - border-color: $motion-primary; - box-shadow: 0px 0px 0px 4px $motion-transparent; + border-color: $looks-secondary; + box-shadow: 0px 0px 0px 4px $looks-transparent; } .stage-selector:hover { - border-color: $motion-primary; + border-color: $looks-secondary; } .header { @@ -60,7 +60,7 @@ $header-height: calc($stage-menu-height - 2px); } .stage-selector.is-selected .header { - background-color: $motion-primary; + background-color: $looks-secondary; } .stage-selector.is-selected .header-title { diff --git a/src/components/stage-selector/stage-selector.jsx b/src/components/stage-selector/stage-selector.jsx index d7a4df672f4..5aca752bff9 100644 --- a/src/components/stage-selector/stage-selector.jsx +++ b/src/components/stage-selector/stage-selector.jsx @@ -102,7 +102,7 @@ const StageSelector = props => { title: intl.formatMessage(messages.addBackdropFromFile), img: fileUploadIcon, onClick: onBackdropFileUploadClick, - fileAccept: '.svg, .png, .jpg, .jpeg, .gif', + fileAccept: '.svg, .png, .bmp, .jpg, .jpeg, .gif', fileChange: onBackdropFileUpload, fileInput: fileInputRef, fileMultiple: true diff --git a/src/components/stage-wrapper/stage-wrapper.css b/src/components/stage-wrapper/stage-wrapper.css index 9f6ab5c6149..be106ebf8c2 100644 --- a/src/components/stage-wrapper/stage-wrapper.css +++ b/src/components/stage-wrapper/stage-wrapper.css @@ -1,5 +1,6 @@ @import "../../css/units.css"; @import "../../css/colors.css"; +@import "../../css/z-index.css"; .stage-wrapper * { box-sizing: border-box; @@ -9,3 +10,21 @@ /* Hides negative space between edge of rounded corners + container, when selected */ user-select: none; } + +.stage-wrapper.full-screen { + position: fixed; + top: $stage-menu-height; + left: 0; + right: 0; + bottom: 0; + z-index: $z-index-stage-wrapper-overlay; + background-color: $ui-white; + /* spacing between stage and control bar (on the top), or between + stage and window edges (on left/right/bottom) */ + padding: $stage-full-screen-stage-padding; + + /* this centers the stage */ + display: flex; + flex-direction: column; + align-items: center; +} diff --git a/src/components/stage-wrapper/stage-wrapper.jsx b/src/components/stage-wrapper/stage-wrapper.jsx index 77e9f55953b..21db710e9c4 100644 --- a/src/components/stage-wrapper/stage-wrapper.jsx +++ b/src/components/stage-wrapper/stage-wrapper.jsx @@ -1,5 +1,6 @@ import PropTypes from 'prop-types'; import React from 'react'; +import classNames from 'classnames'; import VM from 'scratch-vm'; import Box from '../box/box.jsx'; @@ -22,7 +23,10 @@ const StageWrapperComponent = function (props) { return ( diff --git a/src/components/stage/stage.css b/src/components/stage/stage.css index 19496c09bcf..a799e05ce34 100644 --- a/src/components/stage/stage.css +++ b/src/components/stage/stage.css @@ -21,6 +21,13 @@ /* Make sure border is not included in size calculation */ box-sizing: content-box !important; + + /* enforce overflow + reset position of absolutely-positioned children */ + position: relative; +} + +.stage.full-screen { + border: $stage-full-screen-border-width solid rgb(126, 133, 151); } .with-color-picker { @@ -43,63 +50,30 @@ position: relative; } -.stage-wrapper-overlay { - position: fixed; - top: $stage-menu-height; - left: 0; - right: 0; - bottom: 0; - z-index: $z-index-stage-wrapper-overlay; - background-color: $ui-white; - /* spacing between stage and control bar (on the top), or between - stage and window edges (on left/right/bottom) */ - padding: $stage-full-screen-stage-padding; -} - -/* wraps only main content of overlay player, not monitors */ -.stage-overlay-content { - outline: none; - margin: auto; - border: $stage-full-screen-border-width solid rgb(126, 133, 151); - padding: 0; - border-radius: $space; - - overflow: hidden; - display: flex; - align-items: center; - justify-content: center; -} - -.stage-overlay-content-border-override { - border: none; -} - -/* adjust monitors when stage is standard size: -shift them down and right to compensate for the stage's border */ -.stage-wrapper .monitor-wrapper { +/* we want stage overlays to all be positioned in the same spot as the stage, but can't put them inside the border +because we want their overflow to be visible, and the bordered element must have overflow: hidden set so that the +stage doesn't "spill" out from under its rounded corners. instead, shift these over by the border width. */ +.stage-overlays { + position: absolute; top: $stage-standard-border-width; left: $stage-standard-border-width; + + /* the overlay itself should not capture pointer events; only its child elements can do that */ + pointer-events: none; } -/* adjust monitors when stage is full screen: -.stage-wrapper-overlay uses position: fixed instead of relative, so we need -to adjust for the border using a different method */ -.stage-wrapper-overlay .monitor-wrapper { - padding-top: calc($stage-full-screen-stage-padding + $stage-full-screen-border-width); - padding-bottom: calc($stage-full-screen-stage-padding + $stage-full-screen-border-width); +.stage-overlays.full-screen { + top: $stage-full-screen-border-width; + left: $stage-full-screen-border-width; } .monitor-wrapper, -.color-picker-wrapper, .frame-wrapper, .green-flag-overlay-wrapper { position: absolute; top: 0; left: 0; - width: 100%; - height: 100%; pointer-events: none; - overflow: hidden; } .dragging-sprite { @@ -108,7 +82,7 @@ to adjust for the border using a different method */ left: 0; z-index: $z-index-dragging-sprite; filter: drop-shadow(5px 5px 5px $ui-black-transparent); - } +} .stage-bottom-wrapper { position: absolute; @@ -116,6 +90,7 @@ to adjust for the border using a different method */ flex-direction: column; justify-content: flex-end; top: 0; + left: 0; overflow: hidden; pointer-events: none; } @@ -133,9 +108,8 @@ to adjust for the border using a different method */ } .frame { - box-sizing: content-box !important; - background: $motion-transparent; - border: 2px solid $motion-primary; + background: $looks-transparent; + border: 2px solid $looks-secondary; border-radius: 0.5rem; animation-name: flash; animation-duration: 0.75s; @@ -143,6 +117,8 @@ to adjust for the border using a different method */ } .green-flag-overlay-wrapper { + width: 100%; + height: 100%; display: flex; justify-content: center; align-items: center; diff --git a/src/components/stage/stage.jsx b/src/components/stage/stage.jsx index cf81f4ec2c8..24bf4cadd09 100644 --- a/src/components/stage/stage.jsx +++ b/src/components/stage/stage.jsx @@ -35,23 +35,17 @@ const StageComponent = props => { const stageDimensions = getStageDimensions(stageSize, isFullScreen); return ( -
    + { }} {...boxProps} /> + + + + + + + {isColorPicking && colorInfo ? ( + + ) : null} - - - - - +
    + {micIndicator ? ( + + ) : null} + {question === null ? null : ( +
    + +
    + )} +
    +
    {isStarted ? null : ( @@ -86,44 +123,6 @@ const StageComponent = props => { wrapperClass={styles.greenFlagOverlayWrapper} /> )} - {isColorPicking && colorInfo ? ( - - - - ) : null} -
    - {micIndicator ? ( - - ) : null} - {question === null ? null : ( -
    - -
    - )} -
    -
    {isColorPicking ? ( { onClick={onDeactivateColorPicker} /> ) : null} -
    + ); }; StageComponent.propTypes = { diff --git a/src/components/stop-all/stop-all.css b/src/components/stop-all/stop-all.css index da0bcc7b315..ab89a5c70cd 100644 --- a/src/components/stop-all/stop-all.css +++ b/src/components/stop-all/stop-all.css @@ -10,7 +10,7 @@ } .stop-all:hover { - background-color: $motion-light-transparent; + background-color: $looks-light-transparent; } .stop-all { diff --git a/src/components/tag-button/tag-button.css b/src/components/tag-button/tag-button.css index b770045138c..83c9ee9ca22 100644 --- a/src/components/tag-button/tag-button.css +++ b/src/components/tag-button/tag-button.css @@ -3,7 +3,7 @@ .tag-button { padding: .625rem 1rem; - background: $motion-primary; + background: $looks-secondary; border-radius: 1.375rem; color: $ui-white; height: $library-filter-bar-height; diff --git a/src/components/target-pane/target-pane.jsx b/src/components/target-pane/target-pane.jsx index bffb876e888..8d9a09929a7 100644 --- a/src/components/target-pane/target-pane.jsx +++ b/src/components/target-pane/target-pane.jsx @@ -104,6 +104,8 @@ const TargetPane = ({ const spriteShape = PropTypes.shape({ costume: PropTypes.shape({ + // asset is defined in scratch-storage's Asset.js + asset: PropTypes.object, // eslint-disable-line react/forbid-prop-types url: PropTypes.string, name: PropTypes.string.isRequired, // The following are optional because costumes uploaded from disk @@ -112,6 +114,7 @@ const spriteShape = PropTypes.shape({ rotationCenterX: PropTypes.number, rotationCenterY: PropTypes.number }), + costumeCount: PropTypes.number, direction: PropTypes.number, id: PropTypes.string, name: PropTypes.string, diff --git a/src/components/telemetry-modal/telemetry-modal.css b/src/components/telemetry-modal/telemetry-modal.css index 9354e8fe0ff..d94f2f00c4b 100644 --- a/src/components/telemetry-modal/telemetry-modal.css +++ b/src/components/telemetry-modal/telemetry-modal.css @@ -3,6 +3,12 @@ @import "../../css/typography.css"; @import "../../css/z-index.css"; +/* from scratch-www */ +$active-gray: hsla(0, 0%, 0%, .1); +$ui-blue-10percent: hsla(215, 100%, 65%, .1); +$ui-blue-25percent: hsla(215, 100%, 65%, .25); +$ui-gray: hsla(0, 0%, 95%, 1); + .modal-overlay { position: fixed; top: 0; @@ -29,7 +35,7 @@ .illustration { width: 100%; height: 123px; - background-color: $motion-primary; + background-color: $looks-secondary; background-image: url('./telemetry-modal-header.png'); background-size: cover; } @@ -37,46 +43,121 @@ .body { background: $ui-white; padding: 1.5rem 2.25rem; - text-align: left; } .privacy-policy-link { - color: $motion-primary; + color: $looks-secondary; text-decoration: none; } +/* stack the radio buttons vertically, not horizontally */ +.radio-buttons label { + display: block; + margin: 0.5rem; + transition: all .125s ease; + background-color: $ui-gray; + border-radius: .5rem; + margin: 0 auto 0.375rem; + align-items: center; + padding: 1rem 0; + vertical-align: middle; +} + +.radio-buttons label:hover { + background-color: $ui-blue-10percent; +} + +.radio-buttons label.label-selected, +.radio-buttons label.label-selected:hover { + background-color: $ui-blue-25percent; +} + +.radio-buttons input[type="radio"] { + margin: -1px 0.75rem 1px; + border: 1px solid $active-gray; + border-radius: 50%; + width: 1rem; + height: 1rem; + appearance: none; + background-color: $ui-white; + vertical-align: middle; +} + +.radio-buttons input[type="radio"]:checked, +.radio-buttons input[type="radio"]:focus { + box-shadow: 0 0 0 2px $ui-blue-25percent; + outline: none; +} + +.radio-buttons input[type="radio"]:checked { + transition: all .25s ease; + background-color: $ui-white; + border: 1px solid $looks-secondary; +} + +.radio-buttons input[type="radio"]:checked::after { + display: block; + margin: 0.125rem; + border-radius: 50%; + background-color: $looks-secondary; + width: .625rem; + height: .625rem; + content: ""; +} + /* Confirmation buttons at the bottom of the modal */ .button-row { + display: flex; + flex-flow: row nowrap; + justify-content: space-between; + align-items: baseline; + margin: 1.5rem 0; font-weight: bolder; - text-align: right; - display: flex; - justify-content: center; +} + +@keyframes fade-out { + 0% {opacity: 1} + 100% {opacity: 0} +} + +.setting-was-updated { + animation: fade-out 3s ease-out; + color: $extensions-primary; } .button-row button { - border: 1px solid $motion-primary; + border: 1px solid $looks-secondary; border-radius: 0.25rem; padding: 0.5rem 1.5rem; - background: white; + color: white; + background: $looks-secondary; font-weight: bold; font-size: .875rem; cursor: pointer; } -.button-row button.opt-in { - background: $motion-primary; - color: white; +.button-row button:hover { + background: $extensions-primary; + box-shadow: 0 0 0 6px $looks-transparent; } -.button-row button.opt-out { - color: $motion-primary; +.button-row button:disabled { + background: $text-primary; + border-color: $ui-black-transparent; + box-shadow: none; + opacity: 0.25; } -[dir="ltr"] .button-row button + button { - margin-left: 0.5rem; +@media screen and (max-height: 660px) { + .modal-content { + margin: 5vh auto; + width: 90%; + } } -[dir="rtl"] .button-row button + button { - margin-right: 0.5rem; +@media screen and (max-height: 540px) { + .illustration { + display: none; + } } diff --git a/src/components/telemetry-modal/telemetry-modal.jsx b/src/components/telemetry-modal/telemetry-modal.jsx index 2d3149d3c67..3f5c76b32d5 100644 --- a/src/components/telemetry-modal/telemetry-modal.jsx +++ b/src/components/telemetry-modal/telemetry-modal.jsx @@ -33,36 +33,57 @@ const messages = defineMessages({ description: 'Link to the Scratch privacy policy', id: 'gui.telemetryOptIn.privacyPolicyLink' }, - noButton: { - defaultMessage: 'No, thanks', - description: 'Text for telemetry modal opt-out button', - id: 'gui.telemetryOptIn.buttonTextNo' + optInText: { + defaultMessage: 'Share my usage data with the Scratch Team', + description: 'Text for telemetry modal opt-in button', + id: 'gui.telemetryOptIn.optInText' + }, + optInTooltip: { + defaultMessage: 'Enable telemetry', + description: 'Tooltip for telemetry modal opt-in button', + id: 'gui.telemetryOptIn.optInTooltip' + }, + optOutText: { + defaultMessage: 'Do not share my usage data with the Scratch Team', + description: 'Text for telemetry modal opt-in button', + id: 'gui.telemetryOptIn.optOutText' }, - noTooltip: { + optOutTooltip: { defaultMessage: 'Disable telemetry', description: 'Tooltip for telemetry modal opt-out button', - id: 'gui.telemetryOptIn.buttonTooltipNo' + id: 'gui.telemetryOptIn.optOutTooltip' }, - yesButton: { - defaultMessage: "Yes, I'd like to help improve Scratch", - description: 'Text for telemetry modal opt-in button', - id: 'gui.telemetryOptIn.buttonTextYes' + settingWasUpdated: { + defaultMessage: 'Your setting was updated.', + description: 'Message indicating that the telemetry setting was updated and saved', + id: 'gui.telemetryOptIn.settingWasUpdated' }, - yesTooltip: { - defaultMessage: 'Enable telemetry', - description: 'Tooltip for telemetry modal opt-in button', - id: 'gui.telemetryOptIn.buttonTooltipYes' + closeButton: { + defaultMessage: 'Close', + description: 'Text for the button which closes the telemetry modal dialog', + id: 'gui.telemetryOptIn.buttonClose' } }); +// This should be at least as long as the CSS transition +const SETTING_WAS_UPDATED_DURATION_MS = 3000; + class TelemetryModal extends React.PureComponent { constructor (props) { super(props); bindAll(this, [ 'handleCancel', - 'handleOptIn', - 'handleOptOut' + 'handleOptInOutChanged' ]); + this.state = { + // if the settingWasUpdated message is displayed, this will be the ID of its removal timer + settingWasUpdatedTimer: null + }; + } + componentWillUnmount () { + if (this.state.settingWasUpdatedTimer) { + clearTimeout(this.state.settingWasUpdatedTimer); + } } handleCancel () { this.props.onRequestClose(); @@ -70,19 +91,47 @@ class TelemetryModal extends React.PureComponent { this.props.onCancel(); } } - handleOptIn () { - this.props.onRequestClose(); - if (this.props.onOptIn) { - this.props.onOptIn(); + handleOptInOutChanged (e) { + if (e.target.value === 'true') { + if (this.props.onOptIn) { + this.props.onOptIn(); + this.handleSettingWasUpdated(); + } + } else if (e.target.value === 'false') { + if (this.props.onOptOut) { + this.props.onOptOut(); + this.handleSettingWasUpdated(); + } } } - handleOptOut () { - this.props.onRequestClose(); - if (this.props.onOptOut) { - this.props.onOptOut(); + handleSettingWasUpdated () { + if (this.state.settingWasUpdatedTimer) { + clearTimeout(this.state.settingWasUpdatedTimer); + } + const newTimer = setTimeout( + () => this.handleSettingWasUpdatedTimeout(newTimer), + SETTING_WAS_UPDATED_DURATION_MS + ); + this.setState({ + settingWasUpdatedTimer: newTimer + }); + } + handleSettingWasUpdatedTimeout (thisTimer) { + if (thisTimer !== this.state.settingWasUpdatedTimer) { + // some other timer has taken over + return; } + this.setState({ + settingWasUpdatedTimer: null + }); } render () { + const isUndecided = (typeof this.props.isTelemetryEnabled !== 'boolean'); + const isOff = (this.props.isTelemetryEnabled === false); + const isOn = (this.props.isTelemetryEnabled === true); + const settingWasUpdated = this.state.settingWasUpdatedTimer && ( + + ); return ( ) }} />

    + + + + - + {settingWasUpdated}
    @@ -131,10 +204,12 @@ class TelemetryModal extends React.PureComponent { TelemetryModal.propTypes = { intl: intlShape.isRequired, isRtl: PropTypes.bool, + isTelemetryEnabled: PropTypes.bool, // false=disabled, true=enabled, undefined=undecided onCancel: PropTypes.func, onOptIn: PropTypes.func.isRequired, onOptOut: PropTypes.func.isRequired, - onRequestClose: PropTypes.func + onRequestClose: PropTypes.func, + onShowPrivacyPolicy: PropTypes.func }; export default injectIntl(TelemetryModal); diff --git a/src/components/toggle-buttons/toggle-buttons.css b/src/components/toggle-buttons/toggle-buttons.css new file mode 100644 index 00000000000..d5b54e51b11 --- /dev/null +++ b/src/components/toggle-buttons/toggle-buttons.css @@ -0,0 +1,85 @@ +@import "../../css/units.css"; +@import "../../css/colors.css"; + +.row { + display: flex; + flex-direction: row; +} + +.button { + margin: 0; + border: 1px solid $ui-black-transparent; + background: none; + outline: none; + cursor: pointer; + user-select: none; + position: relative; + width: 34px; + height: 34px; + display: flex; + justify-content: center; + align-items: center; +} + +.button > img { + display: block; + transition: transform 0.1s; + filter: grayscale(100%) opacity(.5); +} + +.button:not(:last-child) { + border-right: none; +} + +[dir="rtl"] .button:not(:last-child) { + border-left: none; + border-right: 1px solid $ui-black-transparent; +} + +.button:focus::before { + content: ""; + position: absolute; + top: -1px; + right: -1px; + bottom: -1px; + left: -1px; + border: 1px solid $looks-secondary; +} + +/* round corners for first and last buttons */ + +.button:first-child, +[dir="rtl"] .button:last-child, +.button:first-child:focus::before, +[dir="rtl"] .button:last-child:focus::before { + border-radius: $form-radius 0 0 $form-radius; +} + +.button:last-child, +[dir="rtl"] .button:first-child, +.button:last-child:focus::before, +[dir="rtl"] .button:first-child:focus::before { + border-radius: 0 $form-radius $form-radius 0; +} + +/* selected button styling */ + +.button[aria-pressed='true'] { + background-color: $looks-light-transparent; +} + +.button[aria-pressed='true'] > img { + filter: none; +} + +/* pressed button styling */ + +.button:active { + background-color: $looks-transparent; +} + +/* disabled styling */ + +.disabled .button { + cursor: default; +} diff --git a/src/components/toggle-buttons/toggle-buttons.jsx b/src/components/toggle-buttons/toggle-buttons.jsx new file mode 100644 index 00000000000..f09f60e86da --- /dev/null +++ b/src/components/toggle-buttons/toggle-buttons.jsx @@ -0,0 +1,53 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import classNames from 'classnames'; + +import styles from './toggle-buttons.css'; + +const ToggleButtons = ({buttons, className, disabled}) => ( +
    + {buttons.map((button, index) => ( + + ))} +
    +); + +ToggleButtons.propTypes = { + buttons: PropTypes.arrayOf(PropTypes.shape({ + title: PropTypes.string.isRequired, + handleClick: PropTypes.func.isRequired, + icon: PropTypes.string.isRequired, + iconClassName: PropTypes.string, + isSelected: PropTypes.bool + })), + className: PropTypes.string, + disabled: PropTypes.bool +}; + +ToggleButtons.defaultProps = { + disabled: false +}; + +export default ToggleButtons; diff --git a/src/components/webgl-modal/webgl-modal.css b/src/components/webgl-modal/webgl-modal.css index 85fcc0d0137..43327f2119d 100644 --- a/src/components/webgl-modal/webgl-modal.css +++ b/src/components/webgl-modal/webgl-modal.css @@ -29,7 +29,7 @@ .illustration { width: 100%; height: 208px; - background-color: $motion-primary; + background-color: $looks-secondary; background-image: url('./unsupported.png'); background-size: cover; } @@ -54,10 +54,10 @@ } .button-row button { - border: 1px solid $motion-primary; + border: 1px solid $looks-secondary; border-radius: 0.25rem; padding: 0.5rem 2rem; - background: $motion-primary; + background: $looks-secondary; color: white; font-weight: bold; font-size: 0.875rem; @@ -70,6 +70,6 @@ } .faq-link { - color: $motion-primary; + color: $looks-secondary; text-decoration: none; } diff --git a/src/containers/audio-trimmer.jsx b/src/containers/audio-trimmer.jsx index b8591eabb54..78bd4ebac14 100644 --- a/src/containers/audio-trimmer.jsx +++ b/src/containers/audio-trimmer.jsx @@ -42,15 +42,11 @@ class AudioTrimmer extends React.Component { this.containerSize = this.containerElement.getBoundingClientRect().width; this.trimStartDragRecognizer.start(e); this.initialTrim = this.props.trimStart; - e.stopPropagation(); - e.preventDefault(); } handleTrimEndMouseDown (e) { this.containerSize = this.containerElement.getBoundingClientRect().width; this.trimEndDragRecognizer.start(e); this.initialTrim = this.props.trimEnd; - e.stopPropagation(); - e.preventDefault(); } storeRef (el) { this.containerElement = el; diff --git a/src/containers/auto-scanning-step.jsx b/src/containers/auto-scanning-step.jsx index fc067abae9d..5767f2a9930 100644 --- a/src/containers/auto-scanning-step.jsx +++ b/src/containers/auto-scanning-step.jsx @@ -72,6 +72,7 @@ class AutoScanningStep extends React.Component { title={this.props.extensionId} onRefresh={this.handleRefresh} onStartScan={this.handleStartScan} + onUpdatePeripheral={this.props.onUpdatePeripheral} /> ); } @@ -81,6 +82,7 @@ AutoScanningStep.propTypes = { connectionTipIconURL: PropTypes.string, extensionId: PropTypes.string.isRequired, onConnecting: PropTypes.func.isRequired, + onUpdatePeripheral: PropTypes.func, vm: PropTypes.instanceOf(VM).isRequired }; diff --git a/src/containers/backdrop-library.jsx b/src/containers/backdrop-library.jsx index 9d6b559c56c..31aaec926a9 100644 --- a/src/containers/backdrop-library.jsx +++ b/src/containers/backdrop-library.jsx @@ -27,13 +27,13 @@ class BackdropLibrary extends React.Component { handleItemSelect (item) { const vmBackdrop = { name: item.name, - rotationCenterX: item.info[0] && item.info[0] / 2, - rotationCenterY: item.info[1] && item.info[1] / 2, - bitmapResolution: item.info.length > 2 ? item.info[2] : 1, + rotationCenterX: item.rotationCenterX, + rotationCenterY: item.rotationCenterY, + bitmapResolution: item.bitmapResolution, skinId: null }; // Do not switch to stage, just add the backdrop - this.props.vm.addBackdrop(item.md5, vmBackdrop); + this.props.vm.addBackdrop(item.md5ext, vmBackdrop); } render () { return ( diff --git a/src/containers/balanced-formatted-message.jsx b/src/containers/balanced-formatted-message.jsx new file mode 100644 index 00000000000..3cced1a0379 --- /dev/null +++ b/src/containers/balanced-formatted-message.jsx @@ -0,0 +1,20 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import {FormattedMessage} from 'react-intl'; + +import BalancedText from './balanced-text.jsx'; + +const BalancedFormattedMessage = props => { + const {className, resize, style, ...otherProps} = props; + const balancedTextProps = {className, resize, style}; + return ( + {(...children) => {children}} + ); +}; + +BalancedFormattedMessage.propTypes = { + ...FormattedMessage.propTypes, + resize: PropTypes.bool +}; + +export default BalancedFormattedMessage; diff --git a/src/containers/balanced-text.jsx b/src/containers/balanced-text.jsx new file mode 100644 index 00000000000..9a359ce86a5 --- /dev/null +++ b/src/containers/balanced-text.jsx @@ -0,0 +1,97 @@ +/* + * Attempts to balance the length of each line of wrapped text. + * If the text does not wrap, this component will have no effect. + * See https://developer.chrome.com/blog/css-text-wrap-balance/ + * Patterned after `react-balance-text` with adjustments to support our method of styling. + * We may want to replace this with react-wrap-balancer once we use React >= 16.8 + */ + +import React from 'react'; +import PropTypes from 'prop-types'; + +import balanceText from 'balance-text'; +import bindAll from 'lodash.bindall'; + +class BalancedText extends React.Component { + constructor (props) { + super(props); + bindAll(this, [ + 'balanceText', + 'handleResize' + ]); + this.state = { + forceHide: true + }; + } + + componentDidMount () { + self.addEventListener('resize', this.handleResize); + this.stopHiding(); + } + + componentDidUpdate () { + this.balanceText(); + } + + componentWillUnmount () { + self.removeEventListener('resize', this.handleResize); + } + + handleResize () { + if (this.props.resize) { + this.balanceText(); + } + } + + balanceText () { + const {container} = this; + if (container) { + balanceText(container, {}); + } + } + + stopHiding () { + this.setState({forceHide: false}); + setTimeout(() => this.balanceText(), 0); + } + + render () { + let { + children, + resize, // eslint-disable-line no-unused-vars + style, + ...otherProps + } = this.props; + + if (this.state.forceHide) { + style = Object.assign({}, style, {visibility: 'hidden'}); + } + + return ( +
    + { + this.container = container; + }} + > + {children} + +
    + ); + } +} + +BalancedText.propTypes = { + children: PropTypes.node, + resize: PropTypes.bool, + style: PropTypes.object // eslint-disable-line react/forbid-prop-types +}; + +BalancedText.defaultProps = { + resize: true +}; + +export default BalancedText; diff --git a/src/containers/blocks.jsx b/src/containers/blocks.jsx index b659cc7145c..750be83fc25 100644 --- a/src/containers/blocks.jsx +++ b/src/containers/blocks.jsx @@ -14,10 +14,12 @@ import ExtensionLibrary from './extension-library.jsx'; import extensionData from '../lib/libraries/extensions/index.jsx'; import CustomProcedures from './custom-procedures.jsx'; import errorBoundaryHOC from '../lib/error-boundary-hoc.jsx'; -import {STAGE_DISPLAY_SIZES} from '../lib/layout-constants'; +import {BLOCKS_DEFAULT_SCALE, STAGE_DISPLAY_SIZES} from '../lib/layout-constants'; import DropAreaHOC from '../lib/drop-area-hoc.jsx'; import DragConstants from '../lib/drag-constants'; import defineDynamicBlock from '../lib/define-dynamic-block'; +import {DEFAULT_THEME, getColorsForTheme, themeMap} from '../lib/themes'; +import {injectExtensionBlockTheme, injectExtensionCategoryTheme} from '../lib/themes/blockHelpers'; import {connect} from 'react-redux'; import {updateToolbox} from '../reducers/toolbox'; @@ -25,6 +27,8 @@ import {activateColorPicker} from '../reducers/color-picker'; import {closeExtensionLibrary, openSoundRecorder, openConnectionModal} from '../reducers/modals'; import {activateCustomProcedures, deactivateCustomProcedures} from '../reducers/custom-procedures'; import {setConnectionModalExtensionId} from '../reducers/connection-modal'; +import {updateMetrics} from '../reducers/workspace-metrics'; +import {isTimeTravel2020} from '../reducers/time-travel'; import { activateTab, @@ -33,8 +37,8 @@ import { const addFunctionListener = (object, property, callback) => { const oldFn = object[property]; - object[property] = function () { - const result = oldFn.apply(this, arguments); + object[property] = function (...args) { + const result = oldFn.apply(this, args); callback.apply(this, result); return result; }; @@ -47,7 +51,7 @@ const DroppableBlocks = DropAreaHOC([ class Blocks extends React.Component { constructor (props) { super(props); - this.ScratchBlocks = VMScratchBlocks(props.vm); + this.ScratchBlocks = VMScratchBlocks(props.vm, false); bindAll(this, [ 'attachVM', 'detachVM', @@ -65,6 +69,7 @@ class Blocks extends React.Component { 'onScriptGlowOff', 'onBlockGlowOn', 'onBlockGlowOff', + 'handleMonitorsUpdate', 'handleExtensionAdded', 'handleBlocksInfoUpdate', 'onTargetsUpdate', @@ -79,13 +84,17 @@ class Blocks extends React.Component { this.ScratchBlocks.recordSoundCallback = this.handleOpenSoundRecorder; this.state = { - workspaceMetrics: {}, prompt: null }; this.onTargetsUpdate = debounce(this.onTargetsUpdate, 100); this.toolboxUpdateQueue = []; } componentDidMount () { + this.ScratchBlocks = VMScratchBlocks(this.props.vm, this.props.useCatBlocks); + this.ScratchBlocks.prompt = this.handlePromptStart; + this.ScratchBlocks.statusButtonCallback = this.handleConnectionModalStart; + this.ScratchBlocks.recordSoundCallback = this.handleOpenSoundRecorder; + this.ScratchBlocks.FieldColourSlider.activateEyedropper_ = this.props.onActivateColorPicker; this.ScratchBlocks.Procedures.externalProcedureDefCallback = this.props.onActivateCustomProcedures; this.ScratchBlocks.ScratchMsgs.setLocale(this.props.locale); @@ -93,7 +102,7 @@ class Blocks extends React.Component { const workspaceConfig = defaultsDeep({}, Blocks.defaultOptions, this.props.options, - {rtl: this.props.isRtl, toolbox: this.props.toolboxXML} + {rtl: this.props.isRtl, toolbox: this.props.toolboxXML, colours: getColorsForTheme(this.props.theme)} ); this.workspace = this.ScratchBlocks.inject(this.blocks, workspaceConfig); @@ -190,6 +199,9 @@ class Blocks extends React.Component { this.detachVM(); this.workspace.dispose(); clearTimeout(this.toolboxUpdateTimeout); + + // Clear the flyout blocks so that they can be recreated on mount. + this.props.vm.clearFlyoutBlocks(); } requestToolboxUpdate () { clearTimeout(this.toolboxUpdateTimeout); @@ -259,6 +271,7 @@ class Blocks extends React.Component { this.props.vm.addListener('VISUAL_REPORT', this.onVisualReport); this.props.vm.addListener('workspaceUpdate', this.onWorkspaceUpdate); this.props.vm.addListener('targetsUpdate', this.onTargetsUpdate); + this.props.vm.addListener('MONITORS_UPDATE', this.handleMonitorsUpdate); this.props.vm.addListener('EXTENSION_ADDED', this.handleExtensionAdded); this.props.vm.addListener('BLOCKSINFO_UPDATE', this.handleBlocksInfoUpdate); this.props.vm.addListener('PERIPHERAL_CONNECTED', this.handleStatusButtonUpdate); @@ -272,6 +285,7 @@ class Blocks extends React.Component { this.props.vm.removeListener('VISUAL_REPORT', this.onVisualReport); this.props.vm.removeListener('workspaceUpdate', this.onWorkspaceUpdate); this.props.vm.removeListener('targetsUpdate', this.onTargetsUpdate); + this.props.vm.removeListener('MONITORS_UPDATE', this.handleMonitorsUpdate); this.props.vm.removeListener('EXTENSION_ADDED', this.handleExtensionAdded); this.props.vm.removeListener('BLOCKSINFO_UPDATE', this.handleBlocksInfoUpdate); this.props.vm.removeListener('PERIPHERAL_CONNECTED', this.handleStatusButtonUpdate); @@ -301,14 +315,17 @@ class Blocks extends React.Component { onWorkspaceMetricsChange () { const target = this.props.vm.editingTarget; if (target && target.id) { - const workspaceMetrics = Object.assign({}, this.state.workspaceMetrics, { - [target.id]: { + // Dispatch updateMetrics later, since onWorkspaceMetricsChange may be (very indirectly) + // called from a reducer, i.e. when you create a custom procedure. + // TODO: Is this a vehement hack? + setTimeout(() => { + this.props.updateMetrics({ + targetID: target.id, scrollX: this.workspace.scrollX, scrollY: this.workspace.scrollY, scale: this.workspace.scale - } - }); - this.setState({workspaceMetrics}); + }); + }, 0); } } onScriptGlowOn (data) { @@ -338,11 +355,15 @@ class Blocks extends React.Component { const stageCostumes = stage.getCostumes(); const targetCostumes = target.getCostumes(); const targetSounds = target.getSounds(); - const dynamicBlocksXML = this.props.vm.runtime.getBlocksXML(); - return makeToolboxXML(target.isStage, target.id, dynamicBlocksXML, + const dynamicBlocksXML = injectExtensionCategoryTheme( + this.props.vm.runtime.getBlocksXML(target), + this.props.theme + ); + return makeToolboxXML(false, target.isStage, target.id, dynamicBlocksXML, targetCostumes[targetCostumes.length - 1].name, stageCostumes[stageCostumes.length - 1].name, - targetSounds.length > 0 ? targetSounds[targetSounds.length - 1].name : '' + targetSounds.length > 0 ? targetSounds[targetSounds.length - 1].name : '', + getColorsForTheme(this.props.theme) ); } catch { return null; @@ -355,7 +376,7 @@ class Blocks extends React.Component { this.props.updateToolboxState(toolboxXML); } - if (this.props.vm.editingTarget && !this.state.workspaceMetrics[this.props.vm.editingTarget.id]) { + if (this.props.vm.editingTarget && !this.props.workspaceMetrics.targets[this.props.vm.editingTarget.id]) { this.onWorkspaceMetricsChange(); } @@ -381,8 +402,8 @@ class Blocks extends React.Component { } this.workspace.addChangeListener(this.props.vm.blockListener); - if (this.props.vm.editingTarget && this.state.workspaceMetrics[this.props.vm.editingTarget.id]) { - const {scrollX, scrollY, scale} = this.state.workspaceMetrics[this.props.vm.editingTarget.id]; + if (this.props.vm.editingTarget && this.props.workspaceMetrics.targets[this.props.vm.editingTarget.id]) { + const {scrollX, scrollY, scale} = this.props.workspaceMetrics.targets[this.props.vm.editingTarget.id]; this.workspace.scrollX = scrollX; this.workspace.scrollY = scrollY; this.workspace.scale = scale; @@ -394,6 +415,24 @@ class Blocks extends React.Component { // workspace to be 'undone' here. this.workspace.clearUndo(); } + handleMonitorsUpdate (monitors) { + // Update the checkboxes of the relevant monitors. + // TODO: What about monitors that have fields? See todo in scratch-vm blocks.js changeBlock: + // https://github.com/LLK/scratch-vm/blob/2373f9483edaf705f11d62662f7bb2a57fbb5e28/src/engine/blocks.js#L569-L576 + const flyout = this.workspace.getFlyout(); + for (const monitor of monitors.values()) { + const blockId = monitor.get('id'); + const isVisible = monitor.get('visible'); + flyout.setCheckboxState(blockId, isVisible); + // We also need to update the isMonitored flag for this block on the VM, since it's used to determine + // whether the checkbox is activated or not when the checkbox is re-displayed (e.g. local variables/blocks + // when switching between sprites). + const block = this.props.vm.runtime.monitorBlocks.getBlock(blockId); + if (block) { + block.isMonitored = isVisible; + } + } + } handleExtensionAdded (categoryInfo) { const defineBlocks = blockInfoArray => { if (blockInfoArray && blockInfoArray.length > 0) { @@ -403,7 +442,7 @@ class Blocks extends React.Component { if (blockInfo.info && blockInfo.info.isDynamic) { dynamicBlocksInfo.push(blockInfo); } else if (blockInfo.json) { - staticBlocksJson.push(blockInfo.json); + staticBlocksJson.push(injectExtensionBlockTheme(blockInfo.json, this.props.theme)); } // otherwise it's a non-block entry such as '---' }); @@ -525,6 +564,9 @@ class Blocks extends React.Component { onRequestCloseExtensionLibrary, onRequestCloseCustomProcedures, toolboxXML, + updateMetrics: updateMetricsProp, + useCatBlocks, + workspaceMetrics, ...props } = this.props; /* eslint-enable no-unused-vars */ @@ -539,6 +581,7 @@ class Blocks extends React.Component { ({ @@ -654,7 +680,9 @@ const mapStateToProps = state => ({ locale: state.locales.locale, messages: state.locales.messages, toolboxXML: state.scratchGui.toolbox.toolboxXML, - customProceduresVisible: state.scratchGui.customProcedures.active + customProceduresVisible: state.scratchGui.customProcedures.active, + workspaceMetrics: state.scratchGui.workspaceMetrics, + useCatBlocks: isTimeTravel2020(state) }); const mapDispatchToProps = dispatch => ({ @@ -676,6 +704,9 @@ const mapDispatchToProps = dispatch => ({ }, updateToolboxState: toolboxXML => { dispatch(updateToolbox(toolboxXML)); + }, + updateMetrics: metrics => { + dispatch(updateMetrics(metrics)); } }); diff --git a/src/containers/camera-modal.jsx b/src/containers/camera-modal.jsx deleted file mode 100644 index c55b0ee4507..00000000000 --- a/src/containers/camera-modal.jsx +++ /dev/null @@ -1,103 +0,0 @@ -import bindAll from 'lodash.bindall'; -import PropTypes from 'prop-types'; -import React from 'react'; -import {connect} from 'react-redux'; - -import CameraModalComponent from '../components/camera-modal/camera-modal.jsx'; -import ModalVideoManager from '../lib/video/modal-video-manager.js'; - -import { - closeCameraCapture -} from '../reducers/modals'; - -class CameraModal extends React.Component { - constructor (props) { - super(props); - bindAll(this, [ - 'handleAccess', - 'handleBack', - 'handleCancel', - 'handleCapture', - 'handleLoaded', - 'handleSubmit', - 'setCanvas' - ]); - - this.video = null; - this.videoDevice = null; - - this.state = { - capture: null, - access: false, - loaded: false - }; - } - componentWillUnmount () { - if (this.videoDevice) { - this.videoDevice.disableVideo(); - } - } - handleAccess () { - this.setState({access: true}); - } - handleLoaded () { - this.setState({loaded: true}); - } - handleBack () { - this.setState({capture: null}); - this.videoDevice.clearSnapshot(); - } - handleCapture () { - if (this.state.loaded) { - const capture = this.videoDevice.takeSnapshot(); - this.setState({capture: capture}); - } - } - setCanvas (canvas) { - this.canvas = canvas; - if (this.canvas) { - this.videoDevice = new ModalVideoManager(this.canvas); - this.videoDevice.enableVideo(this.handleAccess, this.handleLoaded); - } - } - handleSubmit () { - if (!this.state.capture) return; - this.props.onNewCostume(this.state.capture); - this.props.onClose(); - } - handleCancel () { - this.props.onClose(); - } - render () { - return ( - - ); - } -} - -CameraModal.propTypes = { - onClose: PropTypes.func, - onNewCostume: PropTypes.func -}; - -const mapStateToProps = () => ({}); - -const mapDispatchToProps = dispatch => ({ - onClose: () => { - dispatch(closeCameraCapture()); - } -}); - -export default connect( - mapStateToProps, - mapDispatchToProps -)(CameraModal); diff --git a/src/containers/connection-modal.jsx b/src/containers/connection-modal.jsx index aefbb7bb583..95797b45a91 100644 --- a/src/containers/connection-modal.jsx +++ b/src/containers/connection-modal.jsx @@ -6,7 +6,9 @@ import VM from 'scratch-vm'; import analytics from '../lib/analytics'; import extensionData from '../lib/libraries/extensions/index.jsx'; import {connect} from 'react-redux'; + import {closeConnectionModal} from '../reducers/modals'; +import {isMicroBitUpdateSupported, selectAndUpdateMicroBit} from '../lib/microbit-update'; class ConnectionModal extends React.Component { constructor (props) { @@ -18,7 +20,9 @@ class ConnectionModal extends React.Component { 'handleConnecting', 'handleDisconnect', 'handleError', - 'handleHelp' + 'handleHelp', + 'handleSendUpdate', + 'handleUpdatePeripheral' ]); this.state = { extension: extensionData.find(ext => ext.extensionId === props.extensionId), @@ -104,7 +108,33 @@ class ConnectionModal extends React.Component { label: this.props.extensionId }); } + handleUpdatePeripheral () { + this.setState({ + phase: PHASES.updatePeripheral + }); + analytics.event({ + category: 'extensions', + action: 'enter peripheral update flow', + label: this.props.extensionId + }); + } + /** + * Handle sending an update to the peripheral. + * @param {function(number): void} [progressCallback] Optional callback for progress updates in the range of [0..1]. + * @returns {Promise} Resolves when the update is complete. + */ + handleSendUpdate (progressCallback) { + analytics.event({ + category: 'extensions', + action: 'send update to peripheral', + label: this.props.extensionId + }); + + // TODO: get this functionality from the extension + return selectAndUpdateMicroBit(progressCallback); + } render () { + const canUpdatePeripheral = (this.props.extensionId === 'microbit') && isMicroBitUpdateSupported(); return ( ); } diff --git a/src/containers/costume-library.jsx b/src/containers/costume-library.jsx index 1e3dac3d78f..83c24b191b5 100644 --- a/src/containers/costume-library.jsx +++ b/src/containers/costume-library.jsx @@ -25,18 +25,14 @@ class CostumeLibrary extends React.PureComponent { ]); } handleItemSelected (item) { - const split = item.md5.split('.'); - const type = split.length > 1 ? split[1] : null; - const rotationCenterX = type === 'svg' ? item.info[0] : item.info[0] / 2; - const rotationCenterY = type === 'svg' ? item.info[1] : item.info[1] / 2; const vmCostume = { name: item.name, - rotationCenterX, - rotationCenterY, - bitmapResolution: item.info.length > 2 ? item.info[2] : 1, + rotationCenterX: item.rotationCenterX, + rotationCenterY: item.rotationCenterY, + bitmapResolution: item.bitmapResolution, skinId: null }; - this.props.vm.addCostumeFromLibrary(item.md5, vmCostume); + this.props.vm.addCostumeFromLibrary(item.md5ext, vmCostume); } render () { return ( diff --git a/src/containers/costume-tab.jsx b/src/containers/costume-tab.jsx index 6be2cf26849..be9b6d44b15 100644 --- a/src/containers/costume-tab.jsx +++ b/src/containers/costume-tab.jsx @@ -6,7 +6,6 @@ import VM from 'scratch-vm'; import AssetPanel from '../components/asset-panel/asset-panel.jsx'; import PaintEditorWrapper from './paint-editor-wrapper.jsx'; -import CameraModal from './camera-modal.jsx'; import {connect} from 'react-redux'; import {handleFileUpload, costumeUpload} from '../lib/file-uploader.js'; import errorBoundaryHOC from '../lib/error-boundary-hoc.jsx'; @@ -16,8 +15,6 @@ import sharedMessages from '../lib/shared-messages'; import downloadBlob from '../lib/download-blob'; import { - closeCameraCapture, - openCameraCapture, openCostumeLibrary, openBackdropLibrary } from '../reducers/modals'; @@ -34,7 +31,6 @@ import addLibraryBackdropIcon from '../components/asset-panel/icon--add-backdrop import addLibraryCostumeIcon from '../components/asset-panel/icon--add-costume-lib.svg'; import fileUploadIcon from '../components/action-menu/icon--file-upload.svg'; import paintIcon from '../components/action-menu/icon--paint.svg'; -import cameraIcon from '../components/action-menu/icon--camera.svg'; import surpriseIcon from '../components/action-menu/icon--surprise.svg'; import searchIcon from '../components/action-menu/icon--search.svg'; @@ -71,11 +67,6 @@ let messages = defineMessages({ defaultMessage: 'Upload Costume', description: 'Button to add a costume by uploading a file in the editor tab', id: 'gui.costumeTab.addFileCostume' - }, - addCameraCostumeMsg: { - defaultMessage: 'Camera', - description: 'Button to use the camera to create a costume costume in the editor tab', - id: 'gui.costumeTab.addCameraCostume' } }); @@ -95,7 +86,6 @@ class CostumeTab extends React.Component { 'handleSurpriseBackdrop', 'handleFileUploadClick', 'handleCostumeUpload', - 'handleCameraBuffer', 'handleDrop', 'setFileInput' ]); @@ -158,14 +148,17 @@ class CostumeTab extends React.Component { const blob = new Blob([item.asset.data], {type: item.asset.assetType.contentType}); downloadBlob(`${item.name}.${item.asset.dataFormat}`, blob); } - handleNewCostume (costume, fromCostumeLibrary) { + handleNewCostume (costume, fromCostumeLibrary, targetId) { const costumes = Array.isArray(costume) ? costume : [costume]; return Promise.all(costumes.map(c => { if (fromCostumeLibrary) { return this.props.vm.addCostumeFromLibrary(c.md5, c); } - return this.props.vm.addCostume(c.md5, c); + // If targetId is falsy, VM should default it to editingTarget.id + // However, targetId should be provided to prevent #5876, + // if making new costume takes a while + return this.props.vm.addCostume(c.md5, c, targetId); })); } handleNewBlankCostume () { @@ -176,16 +169,12 @@ class CostumeTab extends React.Component { } handleSurpriseCostume () { const item = costumeLibraryContent[Math.floor(Math.random() * costumeLibraryContent.length)]; - const split = item.md5.split('.'); - const type = split.length > 1 ? split[1] : null; - const rotationCenterX = type === 'svg' ? item.info[0] : item.info[0] / 2; - const rotationCenterY = type === 'svg' ? item.info[1] : item.info[1] / 2; const vmCostume = { name: item.name, - md5: item.md5, - rotationCenterX, - rotationCenterY, - bitmapResolution: item.info.length > 2 ? item.info[2] : 1, + md5: item.md5ext, + rotationCenterX: item.rotationCenterX, + rotationCenterY: item.rotationCenterY, + bitmapResolution: item.bitmapResolution, skinId: null }; this.handleNewCostume(vmCostume, true /* fromCostumeLibrary */); @@ -194,23 +183,24 @@ class CostumeTab extends React.Component { const item = backdropLibraryContent[Math.floor(Math.random() * backdropLibraryContent.length)]; const vmCostume = { name: item.name, - md5: item.md5, - rotationCenterX: item.info[0] && item.info[0] / 2, - rotationCenterY: item.info[1] && item.info[1] / 2, - bitmapResolution: item.info.length > 2 ? item.info[2] : 1, + md5: item.md5ext, + rotationCenterX: item.rotationCenterX, + rotationCenterY: item.rotationCenterY, + bitmapResolution: item.bitmapResolution, skinId: null }; this.handleNewCostume(vmCostume); } handleCostumeUpload (e) { const storage = this.props.vm.runtime.storage; + const targetId = this.props.vm.editingTarget.id; this.props.onShowImporting(); handleFileUpload(e.target, (buffer, fileType, fileName, fileIndex, fileCount) => { costumeUpload(buffer, fileType, storage, vmCostumes => { vmCostumes.forEach((costume, i) => { costume.name = `${fileName}${i ? i + 1 : ''}`; }); - this.handleNewCostume(vmCostumes).then(() => { + this.handleNewCostume(vmCostumes, false, targetId).then(() => { if (fileIndex === fileCount - 1) { this.props.onCloseImporting(); } @@ -218,13 +208,6 @@ class CostumeTab extends React.Component { }, this.props.onCloseImporting); }, this.props.onCloseImporting); } - handleCameraBuffer (buffer) { - const storage = this.props.vm.runtime.storage; - costumeUpload(buffer, 'image/png', storage, vmCostumes => { - vmCostumes[0].name = this.props.intl.formatMessage(messages.costume, {index: 1}); - this.handleNewCostume(vmCostumes); - }); - } handleFileUploadClick () { this.fileInput.click(); } @@ -263,11 +246,8 @@ class CostumeTab extends React.Component { dispatchUpdateRestore, // eslint-disable-line no-unused-vars intl, isRtl, - onNewCostumeFromCameraClick, onNewLibraryBackdropClick, onNewLibraryCostumeClick, - cameraModalVisible, - onRequestCloseCameraModal, vm } = this.props; @@ -298,16 +278,11 @@ class CostumeTab extends React.Component { img: addLibraryIcon, onClick: addLibraryFunc }, - { - title: intl.formatMessage(messages.addCameraCostumeMsg), - img: cameraIcon, - onClick: onNewCostumeFromCameraClick - }, { title: intl.formatMessage(addFileMessage), img: fileUploadIcon, onClick: this.handleFileUploadClick, - fileAccept: '.svg, .png, .jpg, .jpeg, .gif', + fileAccept: '.svg, .png, .bmp, .jpg, .jpeg, .gif', fileChange: this.handleCostumeUpload, fileInput: this.setFileInput, fileMultiple: true @@ -345,29 +320,20 @@ class CostumeTab extends React.Component { /> : null } - {cameraModalVisible ? ( - - ) : null} ); } } CostumeTab.propTypes = { - cameraModalVisible: PropTypes.bool, dispatchUpdateRestore: PropTypes.func, editingTarget: PropTypes.string, intl: intlShape, isRtl: PropTypes.bool, onActivateSoundsTab: PropTypes.func.isRequired, onCloseImporting: PropTypes.func.isRequired, - onNewCostumeFromCameraClick: PropTypes.func.isRequired, onNewLibraryBackdropClick: PropTypes.func.isRequired, onNewLibraryCostumeClick: PropTypes.func.isRequired, - onRequestCloseCameraModal: PropTypes.func.isRequired, onShowImporting: PropTypes.func.isRequired, sprites: PropTypes.shape({ id: PropTypes.shape({ @@ -391,8 +357,7 @@ const mapStateToProps = state => ({ isRtl: state.locales.isRtl, sprites: state.scratchGui.targets.sprites, stage: state.scratchGui.targets.stage, - dragging: state.scratchGui.assetDrag.dragging, - cameraModalVisible: state.scratchGui.modals.cameraCapture + dragging: state.scratchGui.assetDrag.dragging }); const mapDispatchToProps = dispatch => ({ @@ -405,12 +370,6 @@ const mapDispatchToProps = dispatch => ({ e.preventDefault(); dispatch(openCostumeLibrary()); }, - onNewCostumeFromCameraClick: () => { - dispatch(openCameraCapture()); - }, - onRequestCloseCameraModal: () => { - dispatch(closeCameraCapture()); - }, dispatchUpdateRestore: restoreState => { dispatch(setRestore(restoreState)); }, diff --git a/src/containers/error-boundary.jsx b/src/containers/error-boundary.jsx index 0b7704ba229..0df13ea1aec 100644 --- a/src/containers/error-boundary.jsx +++ b/src/containers/error-boundary.jsx @@ -10,37 +10,39 @@ class ErrorBoundary extends React.Component { constructor (props) { super(props); this.state = { - hasError: false, - errorId: null + error: null, + errorInfo: null }; } - componentDidCatch (error, info) { - // Error object may be undefined (IE?) + /** + * Handle an error caught by this ErrorBoundary component. + * @param {Error} error - the error that was caught. + * @param {React.ErrorInfo} errorInfo - the React error info associated with the error. + */ + componentDidCatch (error, errorInfo) { error = error || { stack: 'Unknown stack', message: 'Unknown error' }; + errorInfo = errorInfo || { + componentStack: 'Unknown component stack' + }; - // Log errors to analytics, leaving out browsers that are not in our recommended set - if (recommendedBrowser() && window.Sentry) { - window.Sentry.withScope(scope => { - Object.keys(info).forEach(key => { - scope.setExtra(key, info[key]); - }); - scope.setExtra('action', this.props.action); - window.Sentry.captureException(error); + // only remember the first error: later errors might just be side effects of that first one + if (!this.state.error) { + // store error & errorInfo for debugging + this.setState({ + error, + errorInfo }); } - // Display fallback UI - this.setState({ - hasError: true, - errorId: window.Sentry ? window.Sentry.lastEventId() : null - }); - - // Log error locally for debugging as well. - log.error(`Unhandled Error: ${error.stack}\nComponent stack: ${info.componentStack}`); + // report every error in the console + log.error([ + `Unhandled Error with action='${this.props.action}': ${error.stack}`, + `Component stack: ${errorInfo.componentStack}` + ].join('\n')); } handleBack () { @@ -52,11 +54,10 @@ class ErrorBoundary extends React.Component { } render () { - if (this.state.hasError) { + if (this.state.error) { if (recommendedBrowser()) { return ( ); diff --git a/src/containers/green-flag-overlay.jsx b/src/containers/green-flag-overlay.jsx index d6dcd44ccd7..a7142a89358 100644 --- a/src/containers/green-flag-overlay.jsx +++ b/src/containers/green-flag-overlay.jsx @@ -21,8 +21,6 @@ class GreenFlagOverlay extends React.Component { } render () { - if (this.props.isStarted) return null; - return ( ({ - isStarted: state.scratchGui.vmStatus.started, vm: state.scratchGui.vm }); diff --git a/src/containers/gui.jsx b/src/containers/gui.jsx index 314c3889351..35800f6f43e 100644 --- a/src/containers/gui.jsx +++ b/src/containers/gui.jsx @@ -22,11 +22,13 @@ import { closeCostumeLibrary, closeBackdropLibrary, closeTelemetryModal, - openExtensionLibrary + openExtensionLibrary, + closeDebugModal } from '../reducers/modals'; import FontLoaderHOC from '../lib/font-loader-hoc.jsx'; import LocalizationHOC from '../lib/localization-hoc.jsx'; +import SBFileUploaderHOC from '../lib/sb-file-uploader-hoc.jsx'; import ProjectFetcherHOC from '../lib/project-fetcher-hoc.jsx'; import TitledHOC from '../lib/titled-hoc.jsx'; import ProjectSaverHOC from '../lib/project-saver-hoc.jsx'; @@ -35,25 +37,45 @@ import storage from '../lib/storage'; import vmListenerHOC from '../lib/vm-listener-hoc.jsx'; import vmManagerHOC from '../lib/vm-manager-hoc.jsx'; import cloudManagerHOC from '../lib/cloud-manager-hoc.jsx'; +import systemPreferencesHOC from '../lib/system-preferences-hoc.jsx'; import GUIComponent from '../components/gui/gui.jsx'; import {setIsScratchDesktop} from '../lib/isScratchDesktop.js'; +const {RequestMetadata, setMetadata, unsetMetadata} = storage.scratchFetch; + +const setProjectIdMetadata = projectId => { + // If project ID is '0' or zero, it's not a real project ID. In that case, remove the project ID metadata. + // Same if it's null undefined. + if (projectId && projectId !== '0') { + setMetadata(RequestMetadata.ProjectId, projectId); + } else { + unsetMetadata(RequestMetadata.ProjectId); + } +}; + class GUI extends React.Component { componentDidMount () { setIsScratchDesktop(this.props.isScratchDesktop); this.props.onStorageInit(storage); this.props.onVmInit(this.props.vm); + setProjectIdMetadata(this.props.projectId); } componentDidUpdate (prevProps) { - if (this.props.projectId !== prevProps.projectId && this.props.projectId !== null) { - this.props.onUpdateProjectId(this.props.projectId); + if (this.props.projectId !== prevProps.projectId) { + if (this.props.projectId !== null) { + this.props.onUpdateProjectId(this.props.projectId); + } + setProjectIdMetadata(this.props.projectId); } if (this.props.isShowingProject && !prevProps.isShowingProject) { // this only notifies container when a project changes from not yet loaded to loaded // At this time the project view in www doesn't need to know when a project is unloaded this.props.onProjectLoaded(); } + if (this.props.shouldStopProject && !prevProps.shouldStopProject) { + this.props.vm.stopAll(); + } } render () { if (this.props.isError) { @@ -103,6 +125,7 @@ GUI.propTypes = { isLoading: PropTypes.bool, isScratchDesktop: PropTypes.bool, isShowingProject: PropTypes.bool, + isTotallyNormal: PropTypes.bool, loadingStateVisible: PropTypes.bool, onProjectLoaded: PropTypes.func, onSeeCommunity: PropTypes.func, @@ -111,12 +134,14 @@ GUI.propTypes = { onVmInit: PropTypes.func, projectHost: PropTypes.string, projectId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), + shouldStopProject: PropTypes.bool, telemetryModalVisible: PropTypes.bool, vm: PropTypes.instanceOf(VM).isRequired }; GUI.defaultProps = { isScratchDesktop: false, + isTotallyNormal: false, onStorageInit: storageInstance => storageInstance.addOfficialScratchWebStores(), onProjectLoaded: () => {}, onUpdateProjectId: () => {}, @@ -134,6 +159,7 @@ const mapStateToProps = state => { connectionModalVisible: state.scratchGui.modals.connectionModal, costumeLibraryVisible: state.scratchGui.modals.costumeLibrary, costumesTabVisible: state.scratchGui.editorTab.activeTabIndex === COSTUMES_TAB_INDEX, + debugModalVisible: state.scratchGui.modals.debugModal, error: state.scratchGui.projectState.error, isError: getIsError(loadingState), isFullScreen: state.scratchGui.mode.isFullScreen, @@ -160,12 +186,13 @@ const mapDispatchToProps = dispatch => ({ onActivateSoundsTab: () => dispatch(activateTab(SOUNDS_TAB_INDEX)), onRequestCloseBackdropLibrary: () => dispatch(closeBackdropLibrary()), onRequestCloseCostumeLibrary: () => dispatch(closeCostumeLibrary()), + onRequestCloseDebugModal: () => dispatch(closeDebugModal()), onRequestCloseTelemetryModal: () => dispatch(closeTelemetryModal()) }); const ConnectedGUI = injectIntl(connect( mapStateToProps, - mapDispatchToProps, + mapDispatchToProps )(GUI)); // note that redux's 'compose' function is just being used as a general utility to make @@ -181,7 +208,9 @@ const WrappedGui = compose( ProjectSaverHOC, vmListenerHOC, vmManagerHOC, - cloudManagerHOC + SBFileUploaderHOC, + cloudManagerHOC, + systemPreferencesHOC )(ConnectedGUI); WrappedGui.setAppElement = ReactModal.setAppElement; diff --git a/src/containers/library-item.jsx b/src/containers/library-item.jsx index 8881a57cc0a..51e105053d0 100644 --- a/src/containers/library-item.jsx +++ b/src/containers/library-item.jsx @@ -92,14 +92,16 @@ class LibraryItem extends React.PureComponent { this.setState({iconIndex: nextIconIndex}); } curIconMd5 () { + const iconMd5Prop = this.props.iconMd5; if (this.props.icons && this.state.isRotatingIcon && - this.state.iconIndex < this.props.icons.length && - this.props.icons[this.state.iconIndex] && - this.props.icons[this.state.iconIndex].baseLayerMD5) { - return this.props.icons[this.state.iconIndex].baseLayerMD5; + this.state.iconIndex < this.props.icons.length) { + const icon = this.props.icons[this.state.iconIndex] || {}; + return icon.md5ext || // 3.0 library format + icon.baseLayerMD5 || // 2.0 library format, TODO GH-5084 + iconMd5Prop; } - return this.props.iconMd5; + return iconMd5Prop; } render () { const iconMd5 = this.curIconMd5(); @@ -151,7 +153,8 @@ LibraryItem.propTypes = { iconRawURL: PropTypes.string, icons: PropTypes.arrayOf( PropTypes.shape({ - baseLayerMD5: PropTypes.string + baseLayerMD5: PropTypes.string, // 2.0 library format, TODO GH-5084 + md5ext: PropTypes.string // 3.0 library format }) ), id: PropTypes.number.isRequired, diff --git a/src/containers/monitor.jsx b/src/containers/monitor.jsx index 18a6bbeab2d..f45c2d1ef18 100644 --- a/src/containers/monitor.jsx +++ b/src/containers/monitor.jsx @@ -9,6 +9,7 @@ import {addMonitorRect, getInitialPosition, resizeMonitorRect, removeMonitorRect import {getVariable, setVariableValue} from '../lib/variable-utils'; import importCSV from '../lib/import-csv'; import downloadBlob from '../lib/download-blob'; +import {DEFAULT_THEME} from '../lib/themes'; import SliderPrompt from './slider-prompt.jsx'; import {connect} from 'react-redux'; @@ -39,6 +40,7 @@ class Monitor extends React.Component { super(props); bindAll(this, [ 'handleDragEnd', + 'handleHide', 'handleNextMode', 'handleSetModeToDefault', 'handleSetModeToLarge', @@ -115,6 +117,12 @@ class Monitor extends React.Component { y: newY })); } + handleHide () { + this.props.vm.runtime.requestUpdateMonitor(Map({ + id: this.props.id, + visible: false + })); + } handleNextMode () { const modes = availableModes(this.props.opcode); const modeIndex = modes.indexOf(this.props.mode); @@ -206,10 +214,12 @@ class Monitor extends React.Component { min={this.props.min} mode={this.props.mode} targetId={this.props.targetId} + theme={this.props.theme} width={this.props.width} onDragEnd={this.handleDragEnd} onExport={isList ? this.handleExport : null} onImport={isList ? this.handleImport : null} + onHide={this.handleHide} onNextMode={this.handleNextMode} onSetModeToDefault={isList ? null : this.handleSetModeToDefault} onSetModeToLarge={isList ? null : this.handleSetModeToLarge} @@ -232,8 +242,8 @@ Monitor.propTypes = { min: PropTypes.number, mode: PropTypes.oneOf(['default', 'slider', 'large', 'list']), monitorLayout: PropTypes.shape({ - monitors: PropTypes.object, - savedMonitorPositions: PropTypes.object + monitors: PropTypes.object, // eslint-disable-line react/forbid-prop-types + savedMonitorPositions: PropTypes.object // eslint-disable-line react/forbid-prop-types }).isRequired, onDragEnd: PropTypes.func.isRequired, opcode: PropTypes.string.isRequired, // eslint-disable-line react/no-unused-prop-types @@ -242,6 +252,8 @@ Monitor.propTypes = { resizeMonitorRect: PropTypes.func.isRequired, spriteName: PropTypes.string, // eslint-disable-line react/no-unused-prop-types targetId: PropTypes.string, + theme: PropTypes.string, + toolboxXML: PropTypes.string, // eslint-disable-line react/no-unused-prop-types value: PropTypes.oneOfType([ PropTypes.string, PropTypes.number, @@ -255,8 +267,14 @@ Monitor.propTypes = { x: PropTypes.number, y: PropTypes.number }; +Monitor.defaultProps = { + theme: DEFAULT_THEME +}; const mapStateToProps = state => ({ monitorLayout: state.scratchGui.monitorLayout, + theme: state.scratchGui.theme.theme, + // render on toolbox updates since changes to the blocks could affect monitor labels, i.e. updated locale + toolboxXML: state.scratchGui.toolbox.toolboxXML, vm: state.scratchGui.vm }); const mapDispatchToProps = dispatch => ({ diff --git a/src/containers/paint-editor-wrapper.jsx b/src/containers/paint-editor-wrapper.jsx index dc78c1bdb9a..c90f5e6f247 100644 --- a/src/containers/paint-editor-wrapper.jsx +++ b/src/containers/paint-editor-wrapper.jsx @@ -3,6 +3,7 @@ import React from 'react'; import bindAll from 'lodash.bindall'; import VM from 'scratch-vm'; import PaintEditor from 'scratch-paint'; +import {inlineSvgFonts} from 'scratch-svg-renderer'; import {connect} from 'react-redux'; @@ -52,6 +53,7 @@ class PaintEditorWrapper extends React.Component { image={vm.getCostume(selectedCostumeIndex)} onUpdateImage={this.handleUpdateImage} onUpdateName={this.handleUpdateName} + fontInlineFn={inlineSvgFonts} /> ); } diff --git a/src/containers/prompt.jsx b/src/containers/prompt.jsx index 2c06a3e6ccb..474f30d4c27 100644 --- a/src/containers/prompt.jsx +++ b/src/containers/prompt.jsx @@ -60,6 +60,7 @@ class Prompt extends React.Component { defaultValue={this.props.defaultValue} globalSelected={this.state.globalSelected} isStage={this.props.isStage} + showListMessage={this.props.showListMessage} label={this.props.label} showCloudOption={this.props.showCloudOption} showVariableOptions={this.props.showVariableOptions} @@ -79,6 +80,7 @@ class Prompt extends React.Component { Prompt.propTypes = { defaultValue: PropTypes.string, isStage: PropTypes.bool.isRequired, + showListMessage: PropTypes.bool.isRequired, label: PropTypes.string.isRequired, onCancel: PropTypes.func.isRequired, onOk: PropTypes.func.isRequired, diff --git a/src/containers/sb-file-uploader.jsx b/src/containers/sb-file-uploader.jsx deleted file mode 100644 index 2019f719e97..00000000000 --- a/src/containers/sb-file-uploader.jsx +++ /dev/null @@ -1,226 +0,0 @@ -import bindAll from 'lodash.bindall'; -import PropTypes from 'prop-types'; -import React from 'react'; -import {connect} from 'react-redux'; -import {defineMessages, injectIntl, intlShape} from 'react-intl'; -import {setProjectTitle} from '../reducers/project-title'; - -import log from '../lib/log'; -import sharedMessages from '../lib/shared-messages'; - -import { - LoadingStates, - getIsLoadingUpload, - getIsShowingWithoutId, - onLoadedProject, - requestProjectUpload -} from '../reducers/project-state'; - -import { - openLoadingProject, - closeLoadingProject -} from '../reducers/modals'; -import { - closeFileMenu -} from '../reducers/menus'; - -/** - * SBFileUploader component passes a file input, load handler and props to its child. - * It expects this child to be a function with the signature - * function (renderFileInput, handleLoadProject) {} - * The component can then be used to attach project loading functionality - * to any other component: - * - * {(className, renderFileInput, handleLoadProject) => ( - * - * {renderFileInput()} - * - * )} - */ - -const messages = defineMessages({ - loadError: { - id: 'gui.projectLoader.loadError', - defaultMessage: 'The project file that was selected failed to load.', - description: 'An error that displays when a local project file fails to load.' - } -}); - -class SBFileUploader extends React.Component { - constructor (props) { - super(props); - bindAll(this, [ - 'getProjectTitleFromFilename', - 'renderFileInput', - 'setFileInput', - 'handleChange', - 'handleClick', - 'onload', - 'resetFileInput' - ]); - } - componentWillMount () { - this.reader = new FileReader(); - this.reader.onload = this.onload; - this.resetFileInput(); - } - componentDidUpdate (prevProps) { - if (this.props.isLoadingUpload && !prevProps.isLoadingUpload && this.fileToUpload && this.reader) { - this.reader.readAsArrayBuffer(this.fileToUpload); - } - } - componentWillUnmount () { - this.reader = null; - this.resetFileInput(); - } - resetFileInput () { - this.fileToUpload = null; - if (this.fileInput) { - this.fileInput.value = null; - } - } - getProjectTitleFromFilename (fileInputFilename) { - if (!fileInputFilename) return ''; - // only parse title with valid scratch project extensions - // (.sb, .sb2, and .sb3) - const matches = fileInputFilename.match(/^(.*)\.sb[23]?$/); - if (!matches) return ''; - return matches[1].substring(0, 100); // truncate project title to max 100 chars - } - // called when user has finished selecting a file to upload - handleChange (e) { - const { - intl, - isShowingWithoutId, - loadingState, - projectChanged, - userOwnsProject - } = this.props; - - const thisFileInput = e.target; - if (thisFileInput.files) { // Don't attempt to load if no file was selected - this.fileToUpload = thisFileInput.files[0]; - - // If user owns the project, or user has changed the project, - // we must confirm with the user that they really intend to replace it. - // (If they don't own the project and haven't changed it, no need to confirm.) - let uploadAllowed = true; - if (userOwnsProject || (projectChanged && isShowingWithoutId)) { - uploadAllowed = confirm( // eslint-disable-line no-alert - intl.formatMessage(sharedMessages.replaceProjectWarning) - ); - } - if (uploadAllowed) { - this.props.requestProjectUpload(loadingState); - } else { - this.props.closeFileMenu(); - } - } - } - // called when file upload raw data is available in the reader - onload () { - if (this.reader) { - this.props.onLoadingStarted(); - const filename = this.fileToUpload && this.fileToUpload.name; - this.props.vm.loadProject(this.reader.result) - .then(() => { - this.props.onLoadingFinished(this.props.loadingState, true); - // Reset the file input after project is loaded - // This is necessary in case the user wants to reload a project - if (filename) { - const uploadedProjectTitle = this.getProjectTitleFromFilename(filename); - this.props.onReceivedProjectTitle(uploadedProjectTitle); - } - this.resetFileInput(); - }) - .catch(error => { - log.warn(error); - alert(this.props.intl.formatMessage(messages.loadError)); // eslint-disable-line no-alert - this.props.onLoadingFinished(this.props.loadingState, false); - // Reset the file input after project is loaded - // This is necessary in case the user wants to reload a project - this.resetFileInput(); - }); - } - } - handleClick () { - // open filesystem browsing window - this.fileInput.click(); - } - setFileInput (input) { - this.fileInput = input; - } - renderFileInput () { - return ( - - ); - } - render () { - return this.props.children(this.props.className, this.renderFileInput, this.handleClick); - } -} - -SBFileUploader.propTypes = { - canSave: PropTypes.bool, // eslint-disable-line react/no-unused-prop-types - children: PropTypes.func, - className: PropTypes.string, - closeFileMenu: PropTypes.func, - intl: intlShape.isRequired, - isLoadingUpload: PropTypes.bool, - isShowingWithoutId: PropTypes.bool, - loadingState: PropTypes.oneOf(LoadingStates), - onLoadingFinished: PropTypes.func, - onLoadingStarted: PropTypes.func, - projectChanged: PropTypes.bool, - requestProjectUpload: PropTypes.func, - onReceivedProjectTitle: PropTypes.func, - userOwnsProject: PropTypes.bool, - vm: PropTypes.shape({ - loadProject: PropTypes.func - }) -}; -SBFileUploader.defaultProps = { - className: '' -}; -const mapStateToProps = state => { - const loadingState = state.scratchGui.projectState.loadingState; - return { - isLoadingUpload: getIsLoadingUpload(loadingState), - isShowingWithoutId: getIsShowingWithoutId(loadingState), - loadingState: loadingState, - projectChanged: state.scratchGui.projectChanged, - vm: state.scratchGui.vm - }; -}; - -const mapDispatchToProps = (dispatch, ownProps) => ({ - closeFileMenu: () => dispatch(closeFileMenu()), - onLoadingFinished: (loadingState, success) => { - dispatch(onLoadedProject(loadingState, ownProps.canSave, success)); - dispatch(closeLoadingProject()); - dispatch(closeFileMenu()); - }, - requestProjectUpload: loadingState => dispatch(requestProjectUpload(loadingState)), - onLoadingStarted: () => dispatch(openLoadingProject()), - onReceivedProjectTitle: title => dispatch(setProjectTitle(title)) -}); - -// Allow incoming props to override redux-provided props. Used to mock in tests. -const mergeProps = (stateProps, dispatchProps, ownProps) => Object.assign( - {}, stateProps, dispatchProps, ownProps -); - -export default connect( - mapStateToProps, - mapDispatchToProps, - mergeProps -)(injectIntl(SBFileUploader)); diff --git a/src/containers/scanning-step.jsx b/src/containers/scanning-step.jsx index 93fa6b7dabe..419b87c53de 100644 --- a/src/containers/scanning-step.jsx +++ b/src/containers/scanning-step.jsx @@ -62,6 +62,7 @@ class ScanningStep extends React.Component { onConnected={this.props.onConnected} onConnecting={this.props.onConnecting} onRefresh={this.handleRefresh} + onUpdatePeripheral={this.props.onUpdatePeripheral} /> ); } @@ -72,6 +73,7 @@ ScanningStep.propTypes = { extensionId: PropTypes.string.isRequired, onConnected: PropTypes.func.isRequired, onConnecting: PropTypes.func.isRequired, + onUpdatePeripheral: PropTypes.func, vm: PropTypes.instanceOf(VM).isRequired }; diff --git a/src/containers/sound-editor.jsx b/src/containers/sound-editor.jsx index 94fca95243f..c81485d0fa0 100644 --- a/src/containers/sound-editor.jsx +++ b/src/containers/sound-editor.jsx @@ -6,7 +6,12 @@ import VM from 'scratch-vm'; import {connect} from 'react-redux'; -import {computeChunkedRMS, encodeAndAddSoundToVM, SOUND_BYTE_LIMIT} from '../lib/audio/audio-util.js'; +import { + computeChunkedRMS, + encodeAndAddSoundToVM, + downsampleIfNeeded, + dropEveryOtherSample +} from '../lib/audio/audio-util.js'; import AudioEffects from '../lib/audio/audio-effects.js'; import SoundEditorComponent from '../components/sound-editor/sound-editor.jsx'; import AudioBufferPlayer from '../lib/audio/audio-buffer-player.js'; @@ -39,7 +44,8 @@ class SoundEditor extends React.Component { 'paste', 'handleKeyPress', 'handleContainerClick', - 'setRef' + 'setRef', + 'resampleBufferToRate' ]); this.state = { copyBuffer: null, @@ -80,6 +86,10 @@ class SoundEditor extends React.Component { // Ignore keyboard shortcuts if a text input field is focused return; } + if (this.props.isFullScreen) { + // Ignore keyboard shortcuts if the stage is fullscreen mode + return; + } if (event.key === ' ') { event.preventDefault(); if (this.state.playhead) { @@ -132,45 +142,32 @@ class SoundEditor extends React.Component { }); } submitNewSamples (samples, sampleRate, skipUndo) { - // Encode the new sound into a wav so that it can be stored - let wavBuffer = null; - try { - wavBuffer = WavEncoder.encode.sync({ - sampleRate: sampleRate, - channelData: [samples] + return downsampleIfNeeded({samples, sampleRate}, this.resampleBufferToRate) + .then(({samples: newSamples, sampleRate: newSampleRate}) => + WavEncoder.encode({ + sampleRate: newSampleRate, + channelData: [newSamples] + }).then(wavBuffer => { + if (!skipUndo) { + this.redoStack = []; + if (this.undoStack.length >= UNDO_STACK_SIZE) { + this.undoStack.shift(); // Drop the first element off the array + } + this.undoStack.push(this.getUndoItem()); + } + this.resetState(newSamples, newSampleRate); + this.props.vm.updateSoundBuffer( + this.props.soundIndex, + this.audioBufferPlayer.buffer, + new Uint8Array(wavBuffer)); + return true; // Edit was successful + }) + ) + .catch(e => { + // Encoding failed, or the sound was too large to save so edit is rejected + log.error(`Encountered error while trying to encode sound update: ${e.message}`); + return false; // Edit was not applied }); - - if (wavBuffer.byteLength > SOUND_BYTE_LIMIT) { - // Cancel the sound update by setting to null - wavBuffer = null; - log.error(`Refusing to encode sound larger than ${SOUND_BYTE_LIMIT} bytes`); - } - } catch (e) { - // This error state is mostly for the mock sounds used during testing. - // Any incorrect sound buffer trying to get interpretd as a Wav file - // should yield this error. - // This can also happen if the sound is too be allocated in memory. - log.error(`Encountered error while trying to encode sound update: ${e}`); - } - - // Do not submit sound if it could not be encoded (i.e. if too large) - if (wavBuffer) { - if (!skipUndo) { - this.redoStack = []; - if (this.undoStack.length >= UNDO_STACK_SIZE) { - this.undoStack.shift(); // Drop the first element off the array - } - this.undoStack.push(this.getUndoItem()); - } - this.resetState(samples, sampleRate); - this.props.vm.updateSoundBuffer( - this.props.soundIndex, - this.audioBufferPlayer.buffer, - new Uint8Array(wavBuffer)); - - return true; // Update succeeded - } - return false; // Update failed } handlePlay () { this.audioBufferPlayer.stop(); @@ -209,13 +206,15 @@ class SoundEditor extends React.Component { newSamples.set(firstPart, 0); newSamples.set(secondPart, firstPart.length); } - this.submitNewSamples(newSamples, sampleRate); - this.setState({ - trimStart: null, - trimEnd: null + this.submitNewSamples(newSamples, sampleRate).then(() => { + this.setState({ + trimStart: null, + trimEnd: null + }); }); } handleDeleteInverse () { + // Delete everything outside of the trimmers const {samples, sampleRate} = this.copyCurrentBuffer(); const sampleCount = samples.length; const startIndex = Math.floor(this.state.trimStart * sampleCount); @@ -224,10 +223,13 @@ class SoundEditor extends React.Component { if (clippedSamples.length === 0) { clippedSamples = new Float32Array(1); } - this.submitNewSamples(clippedSamples, sampleRate); - this.setState({ - trimStart: null, - trimEnd: null + this.submitNewSamples(clippedSamples, sampleRate).then(success => { + if (success) { + this.setState({ + trimStart: null, + trimEnd: null + }); + } }); } handleUpdateTrim (trimStart, trimEnd) { @@ -257,14 +259,15 @@ class SoundEditor extends React.Component { effects.process((renderedBuffer, adjustedTrimStart, adjustedTrimEnd) => { const samples = renderedBuffer.getChannelData(0); const sampleRate = renderedBuffer.sampleRate; - const success = this.submitNewSamples(samples, sampleRate); - if (success) { - if (this.state.trimStart === null) { - this.handlePlay(); - } else { - this.setState({trimStart: adjustedTrimStart, trimEnd: adjustedTrimEnd}, this.handlePlay); + this.submitNewSamples(samples, sampleRate).then(success => { + if (success) { + if (this.state.trimStart === null) { + this.handlePlay(); + } else { + this.setState({trimStart: adjustedTrimStart, trimEnd: adjustedTrimEnd}, this.handlePlay); + } } - } + }); }); } tooLoud () { @@ -287,16 +290,22 @@ class SoundEditor extends React.Component { this.redoStack.push(this.getUndoItem()); const {samples, sampleRate, trimStart, trimEnd} = this.undoStack.pop(); if (samples) { - this.submitNewSamples(samples, sampleRate, true); - this.setState({trimStart: trimStart, trimEnd: trimEnd}, this.handlePlay); + return this.submitNewSamples(samples, sampleRate, true).then(success => { + if (success) { + this.setState({trimStart: trimStart, trimEnd: trimEnd}, this.handlePlay); + } + }); } } handleRedo () { const {samples, sampleRate, trimStart, trimEnd} = this.redoStack.pop(); if (samples) { this.undoStack.push(this.getUndoItem()); - this.submitNewSamples(samples, sampleRate, true); - this.setState({trimStart: trimStart, trimEnd: trimEnd}, this.handlePlay); + return this.submitNewSamples(samples, sampleRate, true).then(success => { + if (success) { + this.setState({trimStart: trimStart, trimEnd: trimEnd}, this.handlePlay); + } + }); } } handleCopy () { @@ -322,25 +331,39 @@ class SoundEditor extends React.Component { }); } resampleBufferToRate (buffer, newRate) { - return new Promise(resolve => { - if (window.OfflineAudioContext) { - const sampleRateRatio = newRate / buffer.sampleRate; - const newLength = sampleRateRatio * buffer.samples.length; - const offlineContext = new window.OfflineAudioContext(1, newLength, newRate); - const source = offlineContext.createBufferSource(); - const audioBuffer = offlineContext.createBuffer(1, buffer.samples.length, buffer.sampleRate); - audioBuffer.getChannelData(0).set(buffer.samples); - source.buffer = audioBuffer; - source.connect(offlineContext.destination); - source.start(); - offlineContext.startRendering(); - offlineContext.oncomplete = ({renderedBuffer}) => { - resolve({ - samples: renderedBuffer.getChannelData(0), - sampleRate: newRate - }); - }; + return new Promise((resolve, reject) => { + const sampleRateRatio = newRate / buffer.sampleRate; + const newLength = sampleRateRatio * buffer.samples.length; + let offlineContext; + // Try to use either OfflineAudioContext or webkitOfflineAudioContext to resample + // The constructors will throw if trying to resample at an unsupported rate + // (e.g. Safari/webkitOAC does not support lower than 44khz). + try { + if (window.OfflineAudioContext) { + offlineContext = new window.OfflineAudioContext(1, newLength, newRate); + } else if (window.webkitOfflineAudioContext) { + offlineContext = new window.webkitOfflineAudioContext(1, newLength, newRate); + } + } catch { + // If no OAC available and downsampling by 2, downsample by dropping every other sample. + if (newRate === buffer.sampleRate / 2) { + return resolve(dropEveryOtherSample(buffer)); + } + return reject(new Error('Could not resample')); } + const source = offlineContext.createBufferSource(); + const audioBuffer = offlineContext.createBuffer(1, buffer.samples.length, buffer.sampleRate); + audioBuffer.getChannelData(0).set(buffer.samples); + source.buffer = audioBuffer; + source.connect(offlineContext.destination); + source.start(); + offlineContext.startRendering(); + offlineContext.oncomplete = ({renderedBuffer}) => { + resolve({ + samples: renderedBuffer.getChannelData(0), + sampleRate: newRate + }); + }; }); } paste () { @@ -351,8 +374,11 @@ class SoundEditor extends React.Component { const newSamples = new Float32Array(newLength); newSamples.set(samples, 0); newSamples.set(this.state.copyBuffer.samples, samples.length); - this.submitNewSamples(newSamples, this.props.sampleRate, false); - this.handlePlay(); + this.submitNewSamples(newSamples, this.props.sampleRate, false).then(success => { + if (success) { + this.handlePlay(); + } + }); } else { // else replace the selection with the pasted sound const trimStartSamples = this.state.trimStart * samples.length; @@ -371,11 +397,14 @@ class SoundEditor extends React.Component { const newDurationSeconds = newSamples.length / this.state.copyBuffer.sampleRate; const adjustedTrimStart = trimStartSeconds / newDurationSeconds; const adjustedTrimEnd = trimEndSeconds / newDurationSeconds; - this.submitNewSamples(newSamples, this.props.sampleRate, false); - this.setState({ - trimStart: adjustedTrimStart, - trimEnd: adjustedTrimEnd - }, this.handlePlay); + this.submitNewSamples(newSamples, this.props.sampleRate, false).then(success => { + if (success) { + this.setState({ + trimStart: adjustedTrimStart, + trimEnd: adjustedTrimEnd + }, this.handlePlay); + } + }); } } handlePaste () { @@ -440,6 +469,7 @@ class SoundEditor extends React.Component { } SoundEditor.propTypes = { + isFullScreen: PropTypes.bool, name: PropTypes.string.isRequired, sampleRate: PropTypes.number, samples: PropTypes.instanceOf(Float32Array), @@ -458,6 +488,7 @@ const mapStateToProps = (state, {soundIndex}) => { soundId: sound.soundId, sampleRate: audioBuffer.sampleRate, samples: audioBuffer.getChannelData(0), + isFullScreen: state.scratchGui.mode.isFullScreen, name: sound.name, vm: state.scratchGui.vm }; diff --git a/src/containers/sound-library.jsx b/src/containers/sound-library.jsx index cdb5c7c6a1f..81867c0f30c 100644 --- a/src/containers/sound-library.jsx +++ b/src/containers/sound-library.jsx @@ -60,7 +60,8 @@ class SoundLibrary extends React.PureComponent { } onStop () { if (this.playingSoundPromise !== null) { - this.playingSoundPromise.then(soundPlayer => soundPlayer.removeListener('stop', this.onStop)); + this.playingSoundPromise.then(soundPlayer => + soundPlayer && soundPlayer.removeListener('stop', this.onStop)); if (this.handleStop) this.handleStop(); } @@ -73,7 +74,8 @@ class SoundLibrary extends React.PureComponent { // normally. if (this.playingSoundPromise !== null) { // Forcing sound to stop, so stop listening for sound ending: - this.playingSoundPromise.then(soundPlayer => soundPlayer.removeListener('stop', this.onStop)); + this.playingSoundPromise.then(soundPlayer => + soundPlayer && soundPlayer.removeListener('stop', this.onStop)); // Queued playback began playing before this method. if (this.playingSoundPromise.isPlaying) { // Fetch the player from the promise and stop playback soon. @@ -86,7 +88,7 @@ class SoundLibrary extends React.PureComponent { // immediately after the sound starts playback. Stopping it // immediately will have the effect of no sound being played. this.playingSoundPromise.then(soundPlayer => { - soundPlayer.stopImmediately(); + if (soundPlayer) soundPlayer.stopImmediately(); }); } // No further work should be performed on this promise and its @@ -108,26 +110,28 @@ class SoundLibrary extends React.PureComponent { // instruction after the play instruction. this.playingSoundPromise = vm.runtime.storage.load(vm.runtime.storage.AssetType.Sound, md5) .then(soundAsset => { - const sound = { - md5: md5ext, - name: soundItem.name, - format: soundItem.format, - data: soundAsset.data - }; - return this.audioEngine.decodeSoundPlayer(sound); - }) - .then(soundPlayer => { - soundPlayer.connect(this.audioEngine); - // Play the sound. Playing the sound will always come before a - // paired stop if the sound must stop early. - soundPlayer.play(); - soundPlayer.addListener('stop', this.onStop); - // Set that the sound is playing. This affects the type of stop - // instruction given if the sound must stop early. - if (this.playingSoundPromise !== null) { - this.playingSoundPromise.isPlaying = true; + if (soundAsset) { + const sound = { + md5: md5ext, + name: soundItem.name, + format: soundItem.format, + data: soundAsset.data + }; + return this.audioEngine.decodeSoundPlayer(sound) + .then(soundPlayer => { + soundPlayer.connect(this.audioEngine); + // Play the sound. Playing the sound will always come before a + // paired stop if the sound must stop early. + soundPlayer.play(); + soundPlayer.addListener('stop', this.onStop); + // Set that the sound is playing. This affects the type of stop + // instruction given if the sound must stop early. + if (this.playingSoundPromise !== null) { + this.playingSoundPromise.isPlaying = true; + } + return soundPlayer; + }); } - return soundPlayer; }); } handleItemMouseLeave () { @@ -149,11 +153,11 @@ class SoundLibrary extends React.PureComponent { // @todo need to use this hack to avoid library using md5 for image const soundLibraryThumbnailData = soundLibraryContent.map(sound => { const { - md5, + md5ext, ...otherData } = sound; return { - _md5: md5, + _md5: md5ext, rawURL: this.props.isRtl ? soundIconRtl : soundIcon, ...otherData }; diff --git a/src/containers/sound-tab.jsx b/src/containers/sound-tab.jsx index 984975e0d31..9f5e80b67a0 100644 --- a/src/containers/sound-tab.jsx +++ b/src/containers/sound-tab.jsx @@ -113,8 +113,8 @@ class SoundTab extends React.Component { handleSurpriseSound () { const soundItem = soundLibraryContent[Math.floor(Math.random() * soundLibraryContent.length)]; const vmSound = { - format: soundItem.format, - md5: soundItem.md5, + format: soundItem.dataFormat, + md5: soundItem.md5ext, rate: soundItem.rate, sampleCount: soundItem.sampleCount, name: soundItem.name @@ -130,17 +130,18 @@ class SoundTab extends React.Component { handleSoundUpload (e) { const storage = this.props.vm.runtime.storage; + const targetId = this.props.vm.editingTarget.id; this.props.onShowImporting(); handleFileUpload(e.target, (buffer, fileType, fileName, fileIndex, fileCount) => { soundUpload(buffer, fileType, storage, newSound => { newSound.name = fileName; - this.props.vm.addSound(newSound).then(() => { + this.props.vm.addSound(newSound, targetId).then(() => { this.handleNewSound(); if (fileIndex === fileCount - 1) { this.props.onCloseImporting(); } }); - }); + }, this.props.onCloseImporting); }, this.props.onCloseImporting); } diff --git a/src/containers/sprite-info.jsx b/src/containers/sprite-info.jsx index fe0a7267e85..2499ed104bf 100644 --- a/src/containers/sprite-info.jsx +++ b/src/containers/sprite-info.jsx @@ -9,9 +9,7 @@ class SpriteInfo extends React.Component { super(props); bindAll(this, [ 'handleClickVisible', - 'handleClickNotVisible', - 'handlePressVisible', - 'handlePressNotVisible' + 'handleClickNotVisible' ]); } handleClickVisible (e) { @@ -22,26 +20,12 @@ class SpriteInfo extends React.Component { e.preventDefault(); this.props.onChangeVisibility(false); } - handlePressVisible (e) { - if (e.key === ' ' || e.key === 'Enter') { - e.preventDefault(); - this.props.onChangeVisibility(true); - } - } - handlePressNotVisible (e) { - if (e.key === ' ' || e.key === 'Enter') { - e.preventDefault(); - this.props.onChangeVisibility(false); - } - } render () { return ( ); } diff --git a/src/containers/sprite-library.jsx b/src/containers/sprite-library.jsx index 013ce4f7740..9fe0604c984 100644 --- a/src/containers/sprite-library.jsx +++ b/src/containers/sprite-library.jsx @@ -28,7 +28,7 @@ class SpriteLibrary extends React.PureComponent { handleItemSelect (item) { // Randomize position of library sprite randomizeSpritePosition(item); - this.props.vm.addSprite(JSON.stringify(item.json)).then(() => { + this.props.vm.addSprite(JSON.stringify(item)).then(() => { this.props.onActivateBlocksTab(); }); } diff --git a/src/containers/sprite-selector-item.jsx b/src/containers/sprite-selector-item.jsx index f946cf83f1d..1bedb4164da 100644 --- a/src/containers/sprite-selector-item.jsx +++ b/src/containers/sprite-selector-item.jsx @@ -10,6 +10,7 @@ import VM from 'scratch-vm'; import getCostumeUrl from '../lib/get-costume-url'; import DragRecognizer from '../lib/drag-recognizer'; import {getEventXY} from '../lib/touch-utils'; +import DeleteConfirmationPrompt from '../components/delete-confirmation-prompt/delete-confirmation-prompt.jsx'; import SpriteSelectorItemComponent from '../components/sprite-selector-item/sprite-selector-item.jsx'; @@ -19,8 +20,8 @@ class SpriteSelectorItem extends React.PureComponent { bindAll(this, [ 'getCostumeData', 'setRef', + 'setState', 'handleClick', - 'handleDelete', 'handleDuplicate', 'handleExport', 'handleMouseEnter', @@ -28,13 +29,18 @@ class SpriteSelectorItem extends React.PureComponent { 'handleMouseDown', 'handleDragEnd', 'handleDrag', - 'handleTouchEnd' + 'handleTouchEnd', + 'handleDeleteButtonClick', + 'handleDeleteSpriteModalClose', + 'handleDeleteSpriteModalConfirm' ]); this.dragRecognizer = new DragRecognizer({ onDrag: this.handleDrag, onDragEnd: this.handleDragEnd }); + + this.state = {isDeletePromptOpen: false}; } componentDidMount () { document.addEventListener('touchend', this.handleTouchEnd); @@ -90,10 +96,6 @@ class SpriteSelectorItem extends React.PureComponent { this.props.onClick(this.props.id); } } - handleDelete (e) { - e.stopPropagation(); // To prevent from bubbling back to handleClick - this.props.onDeleteButtonClick(this.props.id); - } handleDuplicate (e) { e.stopPropagation(); // To prevent from bubbling back to handleClick this.props.onDuplicateButtonClick(this.props.id); @@ -108,6 +110,22 @@ class SpriteSelectorItem extends React.PureComponent { handleMouseEnter () { this.props.dispatchSetHoveredSprite(this.props.id); } + handleDeleteButtonClick (e) { + e.stopPropagation(); // To prevent from bubbling back to handleClick + + if (this.props.withDeleteConfirmation) { + this.setState({isDeletePromptOpen: true}); + } else { + this.props.onDeleteButtonClick(this.props.id); + } + } + handleDeleteSpriteModalClose () { + this.setState({isDeletePromptOpen: false}); + } + handleDeleteSpriteModalConfirm () { + this.props.onDeleteButtonClick(this.props.id); + this.setState({isDeletePromptOpen: false}); + } setRef (component) { // Access the DOM node using .elem because it is going through ContextMenuTrigger this.ref = component && component.elem; @@ -126,27 +144,36 @@ class SpriteSelectorItem extends React.PureComponent { receivedBlocks, costumeURL, vm, + deleteConfirmationModalPosition, /* eslint-enable no-unused-vars */ ...props } = this.props; - return ( + return (<> + {this.state.isDeletePromptOpen ? : null} + ); } } - SpriteSelectorItem.propTypes = { asset: PropTypes.instanceOf(storage.Asset), costumeURL: PropTypes.string, @@ -164,6 +191,8 @@ SpriteSelectorItem.propTypes = { onExportButtonClick: PropTypes.func, receivedBlocks: PropTypes.bool.isRequired, selected: PropTypes.bool, + withDeleteConfirmation: PropTypes.bool, + deleteConfirmationModalPosition: PropTypes.string, vm: PropTypes.instanceOf(VM).isRequired }; diff --git a/src/containers/stage-selector.jsx b/src/containers/stage-selector.jsx index 94d1d6c00ff..66b1cb5e5df 100644 --- a/src/containers/stage-selector.jsx +++ b/src/containers/stage-selector.jsx @@ -69,10 +69,10 @@ class StageSelector extends React.Component { addBackdropFromLibraryItem (item, shouldActivateTab = true) { const vmBackdrop = { name: item.name, - md5: item.md5, - rotationCenterX: item.info[0] && item.info[0] / 2, - rotationCenterY: item.info[1] && item.info[1] / 2, - bitmapResolution: item.info.length > 2 ? item.info[2] : 1, + md5: item.md5ext, + rotationCenterX: item.rotationCenterX, + rotationCenterY: item.rotationCenterY, + bitmapResolution: item.bitmapResolution, skinId: null }; this.handleNewBackdrop(vmBackdrop, shouldActivateTab); diff --git a/src/containers/stage.jsx b/src/containers/stage.jsx index 9ddd0d90794..caa3de483dd 100644 --- a/src/containers/stage.jsx +++ b/src/containers/stage.jsx @@ -8,7 +8,6 @@ import {connect} from 'react-redux'; import {STAGE_DISPLAY_SIZES} from '../lib/layout-constants'; import {getEventXY} from '../lib/touch-utils'; import VideoProvider from '../lib/video/video-provider'; -import {SVGRenderer as V2SVGAdapter} from 'scratch-svg-renderer'; import {BitmapAdapter as V2BitmapAdapter} from 'scratch-svg-renderer'; import StageComponent from '../components/stage/stage.jsx'; @@ -69,7 +68,6 @@ class Stage extends React.Component { // default color this.props.vm.renderer.draw(); } - this.props.vm.attachV2SVGAdapter(new V2SVGAdapter()); this.props.vm.attachV2BitmapAdapter(new V2BitmapAdapter()); } componentDidMount () { @@ -304,25 +302,31 @@ class Stage extends React.Component { } this.setState({mouseDownTimeoutId: null}); } - drawDragCanvas (drawableData) { + /** + * Initialize the position of the "dragged sprite" canvas + * @param {DrawableExtraction} drawableData The data returned from renderer.extractDrawableScreenSpace + * @param {number} x The x position of the initial drag event + * @param {number} y The y position of the initial drag event + */ + drawDragCanvas (drawableData, x, y) { const { - data, - width, - height, - x, - y + imageData, + x: boundsX, + y: boundsY, + width: boundsWidth, + height: boundsHeight } = drawableData; - this.dragCanvas.width = width; - this.dragCanvas.height = height; - // Need to convert uint8array from WebGL readPixels into Uint8ClampedArray - // for ImageData constructor. Shares underlying buffer, so it is fast. - const imageData = new ImageData( - new Uint8ClampedArray(data.buffer), width, height); + this.dragCanvas.width = imageData.width; + this.dragCanvas.height = imageData.height; + // On high-DPI devices, the canvas size in layout-pixels is not equal to the size of the extracted data. + this.dragCanvas.style.width = `${boundsWidth}px`; + this.dragCanvas.style.height = `${boundsHeight}px`; + this.dragCanvas.getContext('2d').putImageData(imageData, 0, 0); // Position so that pick location is at (0, 0) so that positionDragCanvas() // can use translation to move to mouse position smoothly. - this.dragCanvas.style.left = `${-x}px`; - this.dragCanvas.style.top = `${-y}px`; + this.dragCanvas.style.left = `${boundsX - x}px`; + this.dragCanvas.style.top = `${boundsY - y}px`; this.dragCanvas.style.display = 'block'; } clearDragCanvas () { @@ -349,19 +353,23 @@ class Stage extends React.Component { // Dragging always brings the target to the front target.goToFront(); - // Extract the drawable art - const drawableData = this.renderer.extractDrawable(drawableId, x, y); + const [scratchMouseX, scratchMouseY] = this.getScratchCoords(x, y); + const offsetX = target.x - scratchMouseX; + const offsetY = -(target.y + scratchMouseY); this.props.vm.startDrag(targetId); this.setState({ isDragging: true, dragId: targetId, - dragOffset: drawableData.scratchOffset + dragOffset: [offsetX, offsetY] }); if (this.props.useEditorDragStyle) { - this.drawDragCanvas(drawableData); + // Extract the drawable art + const drawableData = this.renderer.extractDrawableScreenSpace(drawableId); + this.drawDragCanvas(drawableData, x, y); this.positionDragCanvas(x, y); this.props.vm.postSpriteInfo({visible: false}); + this.props.vm.renderer.draw(); } } onStopDrag (mouseX, mouseY) { @@ -387,12 +395,9 @@ class Stage extends React.Component { } this.props.vm.postSpriteInfo(spriteInfo); // Then clear the dragging canvas and stop drag (potentially slow if selecting sprite) - setTimeout(() => { - this.clearDragCanvas(); - setTimeout(() => { - commonStopDragActions(); - }, 30); - }, 30); + this.clearDragCanvas(); + commonStopDragActions(); + this.props.vm.renderer.draw(); } else { commonStopDragActions(); } diff --git a/src/containers/target-pane.jsx b/src/containers/target-pane.jsx index 1042415b24c..010cf12dd1d 100644 --- a/src/containers/target-pane.jsx +++ b/src/containers/target-pane.jsx @@ -14,6 +14,7 @@ import {showStandardAlert, closeAlertWithId} from '../reducers/alerts'; import {setRestore} from '../reducers/restore-deletion'; import DragConstants from '../lib/drag-constants'; import TargetPaneComponent from '../components/target-pane/target-pane.jsx'; +import {BLOCKS_DEFAULT_SCALE} from '../lib/layout-constants'; import spriteLibraryContent from '../lib/libraries/sprites.json'; import {handleFileUpload, spriteUpload} from '../lib/file-uploader.js'; import sharedMessages from '../lib/shared-messages'; @@ -110,7 +111,7 @@ class TargetPane extends React.Component { ); const item = surpriseSprites[Math.floor(Math.random() * surpriseSprites.length)]; randomizeSpritePosition(item); - this.props.vm.addSprite(JSON.stringify(item.json)) + this.props.vm.addSprite(JSON.stringify(item)) .then(this.handleActivateBlocksTab); } handlePaintSpriteClick () { @@ -156,10 +157,42 @@ class TargetPane extends React.Component { } handleBlockDragEnd (blocks) { if (this.props.hoveredTarget.sprite && this.props.hoveredTarget.sprite !== this.props.editingTarget) { - this.props.vm.shareBlocksToTarget(blocks, this.props.hoveredTarget.sprite, this.props.editingTarget); + this.shareBlocks(blocks, this.props.hoveredTarget.sprite, this.props.editingTarget); this.props.onReceivedBlocks(true); } } + shareBlocks (blocks, targetId, optFromTargetId) { + // Position the top-level block based on the scroll position. + const topBlock = blocks.find(block => block.topLevel); + if (topBlock) { + let metrics; + if (this.props.workspaceMetrics.targets[targetId]) { + metrics = this.props.workspaceMetrics.targets[targetId]; + } else { + metrics = { + scrollX: 0, + scrollY: 0, + scale: BLOCKS_DEFAULT_SCALE + }; + } + + // Determine position of the top-level block based on the target's workspace metrics. + const {scrollX, scrollY, scale} = metrics; + const posY = -scrollY + 30; + let posX; + if (this.props.isRtl) { + posX = scrollX + 30; + } else { + posX = -scrollX + 30; + } + + // Actually apply the position! + topBlock.x = posX / scale; + topBlock.y = posY / scale; + } + + return this.props.vm.shareBlocksToTarget(blocks, targetId, optFromTargetId); + } handleDrop (dragInfo) { const {sprite: targetId} = this.props.hoveredTarget; if (dragInfo.dragType === DragConstants.SPRITE) { @@ -195,23 +228,25 @@ class TargetPane extends React.Component { }, targetId); } else if (dragInfo.dragType === DragConstants.BACKPACK_CODE) { fetchCode(dragInfo.payload.bodyUrl) - .then(blocks => { - this.props.vm.shareBlocksToTarget(blocks, targetId); - this.props.vm.refreshWorkspace(); - }); + .then(blocks => this.shareBlocks(blocks, targetId)) + .then(() => this.props.vm.refreshWorkspace()); } } } render () { + /* eslint-disable no-unused-vars */ const { - onActivateTab, // eslint-disable-line no-unused-vars - onReceivedBlocks, // eslint-disable-line no-unused-vars - onHighlightTarget, // eslint-disable-line no-unused-vars - dispatchUpdateRestore, // eslint-disable-line no-unused-vars - onShowImporting, // eslint-disable-line no-unused-vars - onCloseImporting, // eslint-disable-line no-unused-vars + dispatchUpdateRestore, + isRtl, + onActivateTab, + onCloseImporting, + onHighlightTarget, + onReceivedBlocks, + onShowImporting, + workspaceMetrics, ...componentProps } = this.props; + /* eslint-enable no-unused-vars */ return ( ({ editingTarget: state.scratchGui.targets.editingTarget, hoveredTarget: state.scratchGui.hoveredTarget, + isRtl: state.locales.isRtl, + spriteLibraryVisible: state.scratchGui.modals.spriteLibrary, sprites: state.scratchGui.targets.sprites, stage: state.scratchGui.targets.stage, raiseSprites: state.scratchGui.blockDrag, - spriteLibraryVisible: state.scratchGui.modals.spriteLibrary + workspaceMetrics: state.scratchGui.workspaceMetrics }); const mapDispatchToProps = dispatch => ({ diff --git a/src/containers/tips-library.jsx b/src/containers/tips-library.jsx index 5ed0beb9ba0..a6b2e008c59 100644 --- a/src/containers/tips-library.jsx +++ b/src/containers/tips-library.jsx @@ -66,7 +66,7 @@ class TipsLibrary extends React.PureComponent { if (notScratchDesktop()) return true; // Do not filter anything in online editor const deck = decksLibraryContent[id]; // Scratch Desktop doesn't want tutorials with `requiredProjectId` - if (deck.hasOwnProperty('requiredProjectId')) return false; + if (Object.prototype.hasOwnProperty.call(deck, 'requiredProjectId')) return false; // Scratch Desktop should not load tutorials that are _only_ videos if (deck.steps.filter(s => s.title).length === 0) return false; // Allow any other tutorials @@ -78,6 +78,7 @@ class TipsLibrary extends React.PureComponent { name: decksLibraryContent[id].name, featured: true, tags: decksLibraryContent[id].tags, + category: decksLibraryContent[id].category, urlId: decksLibraryContent[id].urlId, requiredProjectId: decksLibraryContent[id].requiredProjectId, hidden: decksLibraryContent[id].hidden || false @@ -94,6 +95,7 @@ class TipsLibrary extends React.PureComponent { visible={this.props.visible} onItemSelected={this.handleItemSelect} onRequestClose={this.props.onRequestClose} + withCategories /> ); } diff --git a/src/containers/watermark.jsx b/src/containers/watermark.jsx index fcb08ead285..857eb5839c4 100644 --- a/src/containers/watermark.jsx +++ b/src/containers/watermark.jsx @@ -50,7 +50,7 @@ const mapStateToProps = state => { if (currentTargetId) { if (targets.stage.id === currentTargetId) { asset = targets.stage.costume.asset; - } else if (targets.sprites.hasOwnProperty(currentTargetId)) { + } else if (Object.prototype.hasOwnProperty.call(targets.sprites, currentTargetId)) { const currentSprite = targets.sprites[currentTargetId]; asset = currentSprite.costume.asset; } diff --git a/src/css/colors.css b/src/css/colors.css index 3f1701d5c58..538d4e8d032 100644 --- a/src/css/colors.css +++ b/src/css/colors.css @@ -10,14 +10,21 @@ $ui-white-transparent: hsla(0, 100%, 100%, 0.25); /* 25% transparent version of $ui-transparent: hsla(0, 100%, 100%, 0); /* 25% transparent version of ui-white */ $ui-black-transparent: hsla(0, 0%, 0%, 0.15); /* 15% transparent version of black */ +$ui-black-transparent-10: hsla(0, 0%, 0%, 0.10); /* 10% transparent version of black */ + +$ui-green: hsla(163, 85%, 35%, 1); /* #0DA57A */ +$ui-green-2: hsla(163, 85%, 40%, 1); /* #0FBD8C */ $text-primary: hsla(225, 15%, 40%, 1); /* #575E75 */ $text-primary-transparent: hsla(225, 15%, 40%, 0.75); $motion-primary: hsla(215, 100%, 65%, 1); /* #4C97FF */ $motion-tertiary: hsla(215, 60%, 50%, 1); /* #3373CC */ -$motion-transparent: hsla(215, 100%, 65%, 0.35); /* 35% transparent version of motion-primary */ -$motion-light-transparent: hsla(215, 100%, 65%, 0.15); /* 15% transparent version of motion-primary */ + +$looks-secondary: hsla(260, 60%, 60%, 1); /* #855CD6 */ +$looks-transparent: hsla(260, 60%, 60%, 0.35); /* 35% transparent version of looks-tertiary */ +$looks-light-transparent: hsla(260, 60%, 60%, 0.15); /* 15% transparent version of looks-tertiary */ +$looks-secondary-dark: hsla(260, 42%, 51%, 1); /* #714EB6 */ $red-primary: hsla(20, 100%, 55%, 1); /* #FF661A */ $red-tertiary: hsla(20, 100%, 45%, 1); /* #E64D00 */ @@ -31,6 +38,7 @@ $data-primary: hsla(30, 100%, 55%, 1); /* #FF8C1A */ $pen-primary: hsla(163, 85%, 40%, 1); /* #0FBD8C */ $pen-transparent: hsla(163, 85%, 40%, 0.25); /* #0FBD8C */ +$pen-tertiary: hsla(163, 86%, 30%, 1); /* #0B8E69 */ $error-primary: hsla(30, 100%, 55%, 1); /* #FF8C1A */ $error-light: hsla(30, 100%, 70%, 1); /* #FFB366 */ @@ -41,4 +49,4 @@ $extensions-tertiary: hsla(163, 85%, 30%, 1); /* #0B8E69 */ $extensions-transparent: hsla(163, 85%, 40%, 0.35); /* 35% transparent version of extensions-primary */ $extensions-light: hsla(163, 57%, 85%, 1); /* opaque version of extensions-transparent, on white bg */ -$drop-highlight: hsla(215, 100%, 77%); /* lighter than motion-primary */ +$drop-highlight: hsla(215, 100%, 77%, 1); /* lighter than motion-primary */ diff --git a/src/css/units.css b/src/css/units.css index 0b00f3234ec..587385fc049 100644 --- a/src/css/units.css +++ b/src/css/units.css @@ -6,7 +6,6 @@ $space: 0.5rem; $sprites-per-row: 5; $menu-bar-height: 3rem; -$language-selector-width: 3rem; $sprite-info-height: 6rem; $stage-menu-height: 2.75rem; diff --git a/src/index.js b/src/index.js index 70dda5a90ca..8763b5c068f 100644 --- a/src/index.js +++ b/src/index.js @@ -6,6 +6,7 @@ import {ScratchPaintReducer} from 'scratch-paint'; import {setFullScreen, setPlayer} from './reducers/mode'; import {remixProject} from './reducers/project-state'; import {setAppElement} from 'react-modal'; +import {activateDeck} from './reducers/cards.js'; const guiReducers = { locales: LocalesReducer, @@ -27,5 +28,6 @@ export { localesInitialState, remixProject, setFullScreen, - setPlayer + setPlayer, + activateDeck }; diff --git a/src/lib/analytics.js b/src/lib/analytics.js index a411ed9582f..e0f1d986e7d 100644 --- a/src/lib/analytics.js +++ b/src/lib/analytics.js @@ -1,10 +1,22 @@ -import GoogleAnalytics from 'react-ga'; +// This was originally a thin wrapper around `react-ga`, which only supports UA. +// We now use GTM, so we could use `react-gtm-module`, but it doesn't support GTM environments (GTM_ENV_AUTH). +// So we use the GTM snippets directly. -GoogleAnalytics.initialize(process.env.GA_ID || window.GA_ID, { - debug: (process.env.NODE_ENV !== 'production'), - titleCase: true, - sampleRate: (process.env.NODE_ENV === 'production') ? 100 : 0, - forceSSL: true -}); -export default GoogleAnalytics; +/** + * Report analytics to GA4 using an interface similar to the 'react-ga' module we were using for UA. + */ +const GA4 = { + event: ({category, action, label}) => { + window.dataLayer = window.dataLayer || []; + // There is no perfect mapping from UA to GA4 + // See https://support.google.com/analytics/answer/11091025 + window.dataLayer.push({ + event: category, + action, + label + }); + } +}; + +export default GA4; diff --git a/src/lib/app-state-hoc.jsx b/src/lib/app-state-hoc.jsx index c7c076e3388..c3f7b2978a9 100644 --- a/src/lib/app-state-hoc.jsx +++ b/src/lib/app-state-hoc.jsx @@ -114,6 +114,7 @@ const AppStateHOC = function (WrappedComponent, localesOnly) { AppStateWrapper.propTypes = { isFullScreen: PropTypes.bool, isPlayerOnly: PropTypes.bool, + isTelemetryEnabled: PropTypes.bool, showTelemetryModal: PropTypes.bool }; return AppStateWrapper; diff --git a/src/lib/audio/audio-util.js b/src/lib/audio/audio-util.js index a01c30de811..bca00fdd108 100644 --- a/src/lib/audio/audio-util.js +++ b/src/lib/audio/audio-util.js @@ -59,9 +59,57 @@ const encodeAndAddSoundToVM = function (vm, samples, sampleRate, name, callback) }); }; +/** + @typedef SoundBuffer + @type {Object} + @property {Float32Array} samples Array of audio samples + @property {number} sampleRate Audio sample rate + */ + +/** + * Downsample the given buffer to try to reduce file size below SOUND_BYTE_LIMIT + * @param {SoundBuffer} buffer - Buffer to resample + * @param {function(SoundBuffer):Promise} resampler - resampler function + * @returns {SoundBuffer} Downsampled buffer with half the sample rate + */ +const downsampleIfNeeded = (buffer, resampler) => { + const {samples, sampleRate} = buffer; + const duration = samples.length / sampleRate; + const encodedByteLength = samples.length * 2; /* bitDepth 16 bit */ + // Resolve immediately if already within byte limit + if (encodedByteLength < SOUND_BYTE_LIMIT) { + return Promise.resolve({samples, sampleRate}); + } + // If encodeable at 22khz, resample and call submitNewSamples again + if (duration * 22050 * 2 < SOUND_BYTE_LIMIT) { + return resampler({samples, sampleRate}, 22050); + } + // Cannot save this sound at 22khz, refuse to edit + // In the future we could introduce further compression here + return Promise.reject(new Error('Sound too large to save, refusing to edit')); +}; + +/** + * Drop every other sample of an audio buffer as a last-resort way of downsampling. + * @param {SoundBuffer} buffer - Buffer to resample + * @returns {SoundBuffer} Downsampled buffer with half the sample rate + */ +const dropEveryOtherSample = buffer => { + const newLength = Math.floor(buffer.samples.length / 2); + const newSamples = new Float32Array(newLength); + for (let i = 0; i < newLength; i++) { + newSamples[i] = buffer.samples[i * 2]; + } + return { + samples: newSamples, + sampleRate: buffer.sampleRate / 2 + }; +}; + export { computeRMS, computeChunkedRMS, encodeAndAddSoundToVM, - SOUND_BYTE_LIMIT + downsampleIfNeeded, + dropEveryOtherSample }; diff --git a/src/lib/audio/shared-audio-context.js b/src/lib/audio/shared-audio-context.js index 91992083497..c421954cb4d 100644 --- a/src/lib/audio/shared-audio-context.js +++ b/src/lib/audio/shared-audio-context.js @@ -2,10 +2,22 @@ import StartAudioContext from 'startaudiocontext'; import bowser from 'bowser'; let AUDIO_CONTEXT; -if (!bowser.msie) { - AUDIO_CONTEXT = new (window.AudioContext || window.webkitAudioContext)(); - StartAudioContext(AUDIO_CONTEXT); +if (!bowser.msie) { + /** + * AudioContext can be initialized only when user interaction event happens + */ + const event = + typeof document.ontouchstart === 'undefined' ? + 'mousedown' : + 'touchstart'; + const initAudioContext = () => { + document.removeEventListener(event, initAudioContext); + AUDIO_CONTEXT = new (window.AudioContext || + window.webkitAudioContext)(); + StartAudioContext(AUDIO_CONTEXT); + }; + document.addEventListener(event, initAudioContext); } /** diff --git a/src/lib/backpack-api.js b/src/lib/backpack-api.js index 550d37d43d6..37a0aded036 100644 --- a/src/lib/backpack-api.js +++ b/src/lib/backpack-api.js @@ -26,7 +26,7 @@ const getBackpackContents = ({ json: true }, (error, response) => { if (error || response.statusCode !== 200) { - return reject(); + return reject(new Error(response.status)); } return resolve(response.body.map(item => includeFullUrls(item, host))); }); @@ -49,7 +49,7 @@ const saveBackpackObject = ({ json: {type, mime, name, body, thumbnail} }, (error, response) => { if (error || response.statusCode !== 200) { - return reject(); + return reject(new Error(response.status)); } return resolve(includeFullUrls(response.body, host)); }); @@ -67,7 +67,7 @@ const deleteBackpackObject = ({ headers: {'x-token': token} }, (error, response) => { if (error || response.statusCode !== 200) { - return reject(); + return reject(new Error(response.status)); } return resolve(response.body); }); @@ -78,7 +78,7 @@ const deleteBackpackObject = ({ const fetchAs = (responseType, uri) => new Promise((resolve, reject) => { xhr({uri, responseType}, (error, response) => { if (error || response.statusCode !== 200) { - return reject(); + return reject(new Error(response.status)); } return resolve(response.body); }); diff --git a/src/lib/backpack/jpeg-thumbnail.js b/src/lib/backpack/jpeg-thumbnail.js index e16c33544fd..687e9755722 100644 --- a/src/lib/backpack/jpeg-thumbnail.js +++ b/src/lib/backpack/jpeg-thumbnail.js @@ -6,17 +6,24 @@ const jpegThumbnail = dataUrl => new Promise((resolve, reject) => { const maxDimension = 96; // 3x the maximum displayed size of 32px - if (image.height > image.width) { - canvas.height = maxDimension; - canvas.width = (maxDimension / image.height) * image.width; + if (image.height < 1 || image.width < 1) { + canvas.width = canvas.height = maxDimension; + // drawImage can fail if image height/width is less than 1 + // Use blank image; the costume is too small to render anyway + ctx.fillStyle = 'white'; // Create white background, since jpeg doesn't have transparency + ctx.fillRect(0, 0, canvas.width, canvas.height); } else { - canvas.width = maxDimension; - canvas.height = (maxDimension / image.width) * image.height; + if (image.height > image.width) { + canvas.height = maxDimension; + canvas.width = (maxDimension / image.height) * image.width; + } else { + canvas.width = maxDimension; + canvas.height = (maxDimension / image.width) * image.height; + } + ctx.fillStyle = 'white'; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.drawImage(image, 0, 0, canvas.width, canvas.height); } - - ctx.fillStyle = 'white'; // Create white background, since jpeg doesn't have transparency - ctx.fillRect(0, 0, canvas.width, canvas.height); - ctx.drawImage(image, 0, 0, canvas.width, canvas.height); resolve(canvas.toDataURL('image/jpeg', 0.92 /* quality */)); // Default quality is 0.92 }; image.onerror = err => { diff --git a/src/lib/backpack/sound-payload.js b/src/lib/backpack/sound-payload.js index 111f700b816..8a978609829 100644 --- a/src/lib/backpack/sound-payload.js +++ b/src/lib/backpack/sound-payload.js @@ -1,5 +1,5 @@ // eslint-disable-next-line import/no-unresolved -import soundThumbnail from '!base64-loader!./sound-thumbnail.jpg'; +import soundThumbnail from '!base64-loader!./sound-thumbnail.jpg?'; const soundPayload = sound => { const assetDataUrl = sound.asset.encodeDataURI(); diff --git a/src/lib/blocks.js b/src/lib/blocks.js index 892218dbe66..f89f5fe0b02 100644 --- a/src/lib/blocks.js +++ b/src/lib/blocks.js @@ -1,12 +1,11 @@ -import ScratchBlocks from 'scratch-blocks'; - /** * Connect scratch blocks with the vm * @param {VirtualMachine} vm - The scratch vm + * @param {Bool} useCatBlocks - Whether to use cat blocks rendering of ScratchBlocks * @return {ScratchBlocks} ScratchBlocks connected with the vm */ -export default function (vm) { - +export default function (vm, useCatBlocks) { + const ScratchBlocks = useCatBlocks ? require('cat-blocks') : require('scratch-blocks'); const jsonForMenuBlock = function (name, menuOptionsFn, colors, start) { return { message0: '%1', @@ -24,6 +23,7 @@ export default function (vm) { colour: colors.secondary, colourSecondary: colors.secondary, colourTertiary: colors.tertiary, + colourQuaternary: colors.quaternary, outputShape: ScratchBlocks.OUTPUT_SHAPE_ROUND }; }; @@ -43,6 +43,7 @@ export default function (vm) { colour: colors.primary, colourSecondary: colors.secondary, colourTertiary: colors.tertiary, + colourQuaternary: colors.quaternary, extensions: ['shape_hat'] }; }; @@ -69,6 +70,7 @@ export default function (vm) { colour: ScratchBlocks.Colours.sensing.primary, colourSecondary: ScratchBlocks.Colours.sensing.secondary, colourTertiary: ScratchBlocks.Colours.sensing.tertiary, + colourQuaternary: ScratchBlocks.Colours.sensing.quaternary, outputShape: ScratchBlocks.OUTPUT_SHAPE_ROUND }; }; @@ -116,7 +118,7 @@ export default function (vm) { const spriteMenu = function () { const sprites = []; for (const targetId in vm.runtime.targets) { - if (!vm.runtime.targets.hasOwnProperty(targetId)) continue; + if (!Object.prototype.hasOwnProperty.call(vm.runtime.targets, targetId)) continue; if (vm.runtime.targets[targetId].isOriginal) { if (!vm.runtime.targets[targetId].isStage) { if (vm.runtime.targets[targetId] === vm.editingTarget) { @@ -213,6 +215,18 @@ export default function (vm) { ScratchBlocks.Blocks.sensing_of.init = function () { const blockId = this.id; + const blockType = this.type; + + // Get the sensing_of block from vm. + let defaultSensingOfBlock; + const blocks = vm.runtime.flyoutBlocks._blocks; + Object.keys(blocks).forEach(id => { + const block = blocks[id]; + if (id === blockType || (block && block.opcode === blockType)) { + defaultSensingOfBlock = block; + } + }); + // Function that fills in menu for the first input in the sensing block. // Called every time it opens since it depends on the values in the other block input. const menuFn = function () { @@ -236,7 +250,7 @@ export default function (vm) { // The block doesn't exist, but should be in the flyout. Look there. if (!sensingOfBlock) { - sensingOfBlock = vm.runtime.flyoutBlocks.getBlock(blockId); + sensingOfBlock = vm.runtime.flyoutBlocks.getBlock(blockId) || defaultSensingOfBlock; // If we still don't have a block, just return an empty list . This happens during // scratch blocks construction. if (!sensingOfBlock) { diff --git a/src/lib/bmp-converter.js b/src/lib/bmp-converter.js new file mode 100644 index 00000000000..fc33666b520 --- /dev/null +++ b/src/lib/bmp-converter.js @@ -0,0 +1,27 @@ +export default bmpImage => new Promise(resolve => { + // If the input is an ArrayBuffer, we need to convert it to a `Blob` and give it a URL so we can use it as an + // `src`. If it's a data URI, we can use it as-is. + const imageUrl = bmpImage instanceof String ? + bmpImage : + window.URL.createObjectURL(new Blob([bmpImage], {type: 'image/bmp'})); + + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + + const image = document.createElement('img'); + + image.addEventListener('load', () => { + canvas.width = image.naturalWidth; + canvas.height = image.naturalHeight; + ctx.drawImage(image, 0, 0); + + const dataUrl = canvas.toDataURL('image/png'); + + // Revoke URL. If a blob URL was generated earlier, this allows the blob to be GC'd and prevents a memory leak. + window.URL.revokeObjectURL(imageUrl); + + resolve(dataUrl); + }); + + image.setAttribute('src', imageUrl); +}); diff --git a/src/lib/cloud-manager-hoc.jsx b/src/lib/cloud-manager-hoc.jsx index 183ef24a495..9054a593927 100644 --- a/src/lib/cloud-manager-hoc.jsx +++ b/src/lib/cloud-manager-hoc.jsx @@ -25,10 +25,12 @@ const cloudManagerHOC = function (WrappedComponent) { super(props); this.cloudProvider = null; bindAll(this, [ - 'handleCloudDataUpdate' + 'handleCloudDataUpdate', + 'handleExtensionAdded' ]); this.props.vm.on('HAS_CLOUD_DATA_UPDATE', this.handleCloudDataUpdate); + this.props.vm.on('EXTENSION_ADDED', this.handleExtensionAdded); } componentDidMount () { if (this.shouldConnect(this.props)) { @@ -54,13 +56,10 @@ const cloudManagerHOC = function (WrappedComponent) { canUseCloud (props) { return !!(props.cloudHost && props.username && props.vm && props.projectId && props.hasCloudPermission); } - shouldNotModifyCloudData (props) { - return (props.hasEverEnteredEditor && !props.canSave); - } shouldConnect (props) { return !this.isConnected() && this.canUseCloud(props) && props.isShowingWithId && props.vm.runtime.hasCloudData() && - !this.shouldNotModifyCloudData(props); + props.canModifyCloudData; } shouldDisconnect (props, prevProps) { return this.isConnected() && @@ -70,7 +69,7 @@ const cloudManagerHOC = function (WrappedComponent) { (props.projectId !== prevProps.projectId) || (props.username !== prevProps.username) || // Editing someone else's project - this.shouldNotModifyCloudData(props) + !props.canModifyCloudData ); } isConnected () { @@ -99,14 +98,21 @@ const cloudManagerHOC = function (WrappedComponent) { this.connectToCloud(); } } + handleExtensionAdded (categoryInfo) { + // Note that props.vm.extensionManager.isExtensionLoaded('videoSensing') is still false + // at the point of this callback, so it is difficult to reuse the canModifyCloudData logic. + if (categoryInfo.id === 'videoSensing' && this.isConnected()) { + this.disconnectFromCloud(); + } + } render () { const { /* eslint-disable no-unused-vars */ + canModifyCloudData, cloudHost, projectId, username, hasCloudPermission, - hasEverEnteredEditor, isShowingWithId, onShowCloudInfo, /* eslint-enable no-unused-vars */ @@ -124,23 +130,32 @@ const cloudManagerHOC = function (WrappedComponent) { } CloudManager.propTypes = { - canSave: PropTypes.bool.isRequired, + canModifyCloudData: PropTypes.bool.isRequired, cloudHost: PropTypes.string, hasCloudPermission: PropTypes.bool, - hasEverEnteredEditor: PropTypes.bool, - isShowingWithId: PropTypes.bool, + isShowingWithId: PropTypes.bool.isRequired, onShowCloudInfo: PropTypes.func, projectId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), username: PropTypes.string, vm: PropTypes.instanceOf(VM).isRequired }; - const mapStateToProps = state => { + CloudManager.defaultProps = { + cloudHost: null, + hasCloudPermission: false, + onShowCloudInfo: () => {}, + username: null + }; + + const mapStateToProps = (state, ownProps) => { const loadingState = state.scratchGui.projectState.loadingState; return { - hasEverEnteredEditor: state.scratchGui.mode.hasEverEnteredEditor, isShowingWithId: getIsShowingWithId(loadingState), - projectId: state.scratchGui.projectState.projectId + projectId: state.scratchGui.projectState.projectId, + // if you're editing someone else's project, you can't modify cloud data + canModifyCloudData: (!state.scratchGui.mode.hasEverEnteredEditor || ownProps.canSave) && + // possible security concern if the program attempts to encode webcam data over cloud variables + !ownProps.vm.extensionManager.isExtensionLoaded('videoSensing') }; }; diff --git a/src/lib/default-project/0fb9be3e8397c983338cb71dc84d0b25.svg b/src/lib/default-project/0fb9be3e8397c983338cb71dc84d0b25.svg new file mode 100644 index 00000000000..5ff997fd111 --- /dev/null +++ b/src/lib/default-project/0fb9be3e8397c983338cb71dc84d0b25.svg @@ -0,0 +1,42 @@ + + + + costume2.1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/lib/default-project/b7853f557e4426412e64bb3da6531a99.svg b/src/lib/default-project/b7853f557e4426412e64bb3da6531a99.svg deleted file mode 100644 index a537afb3aa5..00000000000 --- a/src/lib/default-project/b7853f557e4426412e64bb3da6531a99.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - costume1.1 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/lib/default-project/bcf454acf82e4504149f7ffe07081dbc.svg b/src/lib/default-project/bcf454acf82e4504149f7ffe07081dbc.svg new file mode 100644 index 00000000000..03df23e29ad --- /dev/null +++ b/src/lib/default-project/bcf454acf82e4504149f7ffe07081dbc.svg @@ -0,0 +1,42 @@ + + + + costume1.1 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/lib/default-project/e6ddc55a6ddd9cc9d84fe0b4c21e016f.svg b/src/lib/default-project/e6ddc55a6ddd9cc9d84fe0b4c21e016f.svg deleted file mode 100644 index d49c68211a4..00000000000 --- a/src/lib/default-project/e6ddc55a6ddd9cc9d84fe0b4c21e016f.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - costume2.1 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/lib/default-project/index.js b/src/lib/default-project/index.js index 08dbdb32e60..d6c80ddd9e1 100644 --- a/src/lib/default-project/index.js +++ b/src/lib/default-project/index.js @@ -1,19 +1,18 @@ import projectData from './project-data'; /* eslint-disable import/no-unresolved */ -import popWav from '!arraybuffer-loader!./83a9787d4cb6f3b7632b4ddfebf74367.wav'; -import meowWav from '!arraybuffer-loader!./83c36d806dc92327b9e7049a565c6bff.wav'; -import backdrop from '!raw-loader!./cd21514d0531fdffb22204e0ec5ed84a.svg'; -import costume1 from '!raw-loader!./b7853f557e4426412e64bb3da6531a99.svg'; -import costume2 from '!raw-loader!./e6ddc55a6ddd9cc9d84fe0b4c21e016f.svg'; +import popWav from '!arraybuffer-loader!./83a9787d4cb6f3b7632b4ddfebf74367.wav?'; +import meowWav from '!arraybuffer-loader!./83c36d806dc92327b9e7049a565c6bff.wav?'; +import backdrop from '!raw-loader!./cd21514d0531fdffb22204e0ec5ed84a.svg?'; +import costume1 from '!raw-loader!./bcf454acf82e4504149f7ffe07081dbc.svg?'; +import costume2 from '!raw-loader!./0fb9be3e8397c983338cb71dc84d0b25.svg?'; /* eslint-enable import/no-unresolved */ const defaultProject = translator => { let _TextEncoder; if (typeof TextEncoder === 'undefined') { - _TextEncoder = require('text-encoding').TextEncoder; + _TextEncoder = require('fastestsmallesttextencoderdecoder').TextEncoder; } else { - /* global TextEncoder */ _TextEncoder = TextEncoder; } const encoder = new _TextEncoder(); @@ -40,12 +39,12 @@ const defaultProject = translator => { dataFormat: 'SVG', data: encoder.encode(backdrop) }, { - id: 'b7853f557e4426412e64bb3da6531a99', + id: 'bcf454acf82e4504149f7ffe07081dbc', assetType: 'ImageVector', dataFormat: 'SVG', data: encoder.encode(costume1) }, { - id: 'e6ddc55a6ddd9cc9d84fe0b4c21e016f', + id: '0fb9be3e8397c983338cb71dc84d0b25', assetType: 'ImageVector', dataFormat: 'SVG', data: encoder.encode(costume2) diff --git a/src/lib/default-project/project-data.js b/src/lib/default-project/project-data.js index 3cd500ec47a..9ee63b237b5 100644 --- a/src/lib/default-project/project-data.js +++ b/src/lib/default-project/project-data.js @@ -74,19 +74,19 @@ const projectData = translateFunction => { currentCostume: 0, costumes: [ { - assetId: 'b7853f557e4426412e64bb3da6531a99', + assetId: 'bcf454acf82e4504149f7ffe07081dbc', name: translator(messages.costume, {index: 1}), bitmapResolution: 1, - md5ext: 'b7853f557e4426412e64bb3da6531a99.svg', + md5ext: 'bcf454acf82e4504149f7ffe07081dbc.svg', dataFormat: 'svg', rotationCenterX: 48, rotationCenterY: 50 }, { - assetId: 'e6ddc55a6ddd9cc9d84fe0b4c21e016f', + assetId: '0fb9be3e8397c983338cb71dc84d0b25', name: translator(messages.costume, {index: 2}), bitmapResolution: 1, - md5ext: 'e6ddc55a6ddd9cc9d84fe0b4c21e016f.svg', + md5ext: '0fb9be3e8397c983338cb71dc84d0b25.svg', dataFormat: 'svg', rotationCenterX: 46, rotationCenterY: 53 diff --git a/src/lib/define-dynamic-block.js b/src/lib/define-dynamic-block.js index 33f1c8732cd..5f6222ab0d6 100644 --- a/src/lib/define-dynamic-block.js +++ b/src/lib/define-dynamic-block.js @@ -1,7 +1,6 @@ // TODO: access `BlockType` and `ArgumentType` without reaching into VM // Should we move these into a new extension support module or something? -import ArgumentType from 'scratch-vm/src/extension-support/argument-type'; -import BlockType from 'scratch-vm/src/extension-support/block-type'; +import {ArgumentType, BlockType} from 'scratch-vm'; /** * Define a block using extension info which has the ability to dynamically determine (and update) its layout. diff --git a/src/lib/download-blob.js b/src/lib/download-blob.js index 4f04db35038..e129a9a5333 100644 --- a/src/lib/download-blob.js +++ b/src/lib/download-blob.js @@ -8,11 +8,26 @@ export default (filename, blob) => { return; } - const url = window.URL.createObjectURL(blob); - downloadLink.href = url; - downloadLink.download = filename; - downloadLink.type = blob.type; - downloadLink.click(); - window.URL.revokeObjectURL(url); - document.body.removeChild(downloadLink); + if ('download' in HTMLAnchorElement.prototype) { + const url = window.URL.createObjectURL(blob); + downloadLink.href = url; + downloadLink.download = filename; + downloadLink.type = blob.type; + downloadLink.click(); + // remove the link after a timeout to prevent a crash on iOS 13 Safari + window.setTimeout(() => { + document.body.removeChild(downloadLink); + window.URL.revokeObjectURL(url); + }, 1000); + } else { + // iOS 12 Safari, open a new page and set href to data-uri + let popup = window.open('', '_blank'); + const reader = new FileReader(); + reader.onloadend = function () { + popup.location.href = reader.result; + popup = null; + }; + reader.readAsDataURL(blob); + } + }; diff --git a/src/lib/drag-utils.js b/src/lib/drag-utils.js index e3f5c1bd0e6..096b42fe292 100644 --- a/src/lib/drag-utils.js +++ b/src/lib/drag-utils.js @@ -12,9 +12,10 @@ * many rows, or a single row of items. * @param {{x: number, y: number}} position The xy coordinates to retreive the corresponding index of. * @param {Array.} boxes The rects of the items, returned from `getBoundingClientRect` + * @param {bool} isRtl are the boxes in RTL order. * @return {?number} index of the corresponding box, or null if one could not be found. */ -const indexForPositionOnList = ({x, y}, boxes) => { +const indexForPositionOnList = ({x, y}, boxes, isRtl) => { if (boxes.length === 0) return null; let index = null; const leftEdge = Math.min.apply(null, boxes.map(b => b.left)); @@ -25,16 +26,23 @@ const indexForPositionOnList = ({x, y}, boxes) => { const box = boxes[n]; // Construct an "extended" box for each, extending out to infinity if // the box is along a boundary. - const minX = box.left === leftEdge ? -Infinity : box.left; + let minX = box.left === leftEdge ? -Infinity : box.left; + let maxX = box.right === rightEdge ? Infinity : box.right; const minY = box.top === topEdge ? -Infinity : box.top; const maxY = box.bottom === bottomEdge ? Infinity : box.bottom; // The last item in the wrapped list gets a right edge at infinity, even - // if it isn't the farthest right. Add this as an "or" condition for extension. - const maxX = (n === boxes.length - 1 || box.right === rightEdge) ? - Infinity : box.right; + // if it isn't the farthest right, in RTL mode. In LTR mode, it gets a + // left edge at infinity. + if (n === boxes.length - 1) { + if (isRtl) { + minX = -Infinity; + } else { + maxX = Infinity; + } + } // Check if the point is in the bounds. - if (x > minX && x <= maxX && y > minY && y <= maxY) { + if (x >= minX && x <= maxX && y >= minY && y <= maxY) { index = n; break; // No need to keep looking. } diff --git a/src/lib/drop-area-hoc.jsx b/src/lib/drop-area-hoc.jsx index a5bfc649923..c9312ef2bf3 100644 --- a/src/lib/drop-area-hoc.jsx +++ b/src/lib/drop-area-hoc.jsx @@ -78,7 +78,7 @@ const DropAreaHOC = function (dragTypes) { } } render () { - const componentProps = omit(this.props, ['onDrop', 'dragInfo']); + const componentProps = omit(this.props, ['onDrop', 'dragInfo', 'componentRef']); return ( ( diff --git a/src/lib/file-uploader.js b/src/lib/file-uploader.js index 15a0185416b..50519c27cd9 100644 --- a/src/lib/file-uploader.js +++ b/src/lib/file-uploader.js @@ -1,6 +1,6 @@ -import {BitmapAdapter} from 'scratch-svg-renderer'; -import log from './log.js'; +import {BitmapAdapter, sanitizeSvg} from 'scratch-svg-renderer'; import randomizeSpritePosition from './randomize-sprite-position.js'; +import bmpConverter from './bmp-converter'; import gifDecoder from './gif-decoder'; /** @@ -102,6 +102,9 @@ const costumeUpload = function (fileData, fileType, storage, handleCostume, hand let assetType = null; switch (fileType) { case 'image/svg+xml': { + // run svg bytes through scratch-svg-renderer's sanitization code + fileData = sanitizeSvg.sanitizeByteStream(fileData); + costumeFormat = storage.DataFormat.SVG; assetType = storage.AssetType.ImageVector; break; @@ -111,6 +114,14 @@ const costumeUpload = function (fileData, fileType, storage, handleCostume, hand assetType = storage.AssetType.ImageBitmap; break; } + case 'image/bmp': { + // Convert .bmp files to .png to compress them. .bmps are completely uncompressed, + // and would otherwise take up a lot of storage space and take much longer to upload and download. + bmpConverter(fileData).then(dataUrl => { + costumeUpload(dataUrl, 'image/png', storage, handleCostume); + }); + return; // Return early because we're triggering another proper costumeUpload + } case 'image/png': { costumeFormat = storage.DataFormat.PNG; assetType = storage.AssetType.ImageBitmap; @@ -162,12 +173,13 @@ const costumeUpload = function (fileData, fileType, storage, handleCostume, hand * @param {ArrayBuffer} fileData The sound data to load * @param {string} fileType The MIME type of this file; This function will exit * early if the fileType is unexpected. - * @param {ScratchStorage} storage The ScratchStorage instance to cache the sound data + * @param {ScratchStorage} storage The ScratchStorage instance to cache the sound data * @param {Function} handleSound The function to execute on the sound object of type VMAsset * This function should be responsible for adding the sound to the VM * as well as handling other UI flow that should come after adding the sound + * @param {Function} handleError The function to execute if there is an error parsing the sound */ -const soundUpload = function (fileData, fileType, storage, handleSound) { +const soundUpload = function (fileData, fileType, storage, handleSound, handleError) { let soundFormat; switch (fileType) { case 'audio/mp3': @@ -183,7 +195,7 @@ const soundUpload = function (fileData, fileType, storage, handleSound) { break; } default: - log.warn(`Encountered unexpected file type: ${fileType}`); + handleError(`Encountered unexpected file type: ${fileType}`); return; } @@ -205,6 +217,7 @@ const spriteUpload = function (fileData, fileType, spriteName, storage, handleSp } case 'image/svg+xml': case 'image/png': + case 'image/bmp': case 'image/jpeg': case 'image/gif': { // Make a sprite from an image by making it a costume first diff --git a/src/lib/layout-constants.js b/src/lib/layout-constants.js index 89cc7f3d9b6..8766efae2cb 100644 --- a/src/lib/layout-constants.js +++ b/src/lib/layout-constants.js @@ -37,6 +37,9 @@ const STAGE_DISPLAY_SIZES = keyMirror({ small: null }); +// zoom level to start with +const BLOCKS_DEFAULT_SCALE = 0.675; + const STAGE_DISPLAY_SCALES = {}; STAGE_DISPLAY_SCALES[STAGE_DISPLAY_SIZES.large] = 1; // large mode, wide browser (standard) STAGE_DISPLAY_SCALES[STAGE_DISPLAY_SIZES.largeConstrained] = 0.85; // large mode but narrow browser @@ -50,6 +53,7 @@ export default { }; export { + BLOCKS_DEFAULT_SCALE, STAGE_DISPLAY_SCALES, STAGE_DISPLAY_SIZES, STAGE_SIZE_MODES diff --git a/src/lib/libraries/.eslintrc.js b/src/lib/libraries/.eslintrc.js new file mode 100644 index 00000000000..25cdd21176c --- /dev/null +++ b/src/lib/libraries/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + rules: { + // These manifest files use duplicate imports to make things easier to follow + // by providing clear parallel structure. Turn the error off for this folder. + 'no-duplicate-imports': 0 + } +}; diff --git a/src/lib/libraries/backdrops.json b/src/lib/libraries/backdrops.json index 8cb7f58452b..7b4344e2148 100644 --- a/src/lib/libraries/backdrops.json +++ b/src/lib/libraries/backdrops.json @@ -1,8 +1,6 @@ [ { "name": "Arctic", - "md5": "67e0db3305b3c8bac3a363b1c428892e.png", - "type": "backdrop", "tags": [ "outdoors", "cold", @@ -12,309 +10,287 @@ "antarctica", "robert hunter" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "67e0db3305b3c8bac3a363b1c428892e", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "67e0db3305b3c8bac3a363b1c428892e.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Baseball 1", - "md5": "825d9b54682c406215d9d1f98a819449.svg", - "type": "backdrop", "tags": [ "baseball", "sports", "outdoors", "alex eben meyer" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "825d9b54682c406215d9d1f98a819449", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "825d9b54682c406215d9d1f98a819449.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Baseball 2", - "md5": "7be1f5b3e682813dac1f297e52ff7dca.svg", - "type": "backdrop", "tags": [ "baseball", "sports", "outdoors", "alex eben meyer" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "7be1f5b3e682813dac1f297e52ff7dca", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7be1f5b3e682813dac1f297e52ff7dca.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Basketball 1", - "md5": "ae21eac3d1814aee1d37ae82ea287816.svg", - "type": "backdrop", "tags": [ "sports", "outdoors", "basketball", "alex eben meyer" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "ae21eac3d1814aee1d37ae82ea287816", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ae21eac3d1814aee1d37ae82ea287816.svg", + "rotationCenterX": 249, + "rotationCenterY": 186 }, { "name": "Basketball 2", - "md5": "a5865738283613a2725b2c9dda6d8c78.png", - "type": "backdrop", "tags": [ "outdoors", "sports", "basketball" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "a5865738283613a2725b2c9dda6d8c78", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a5865738283613a2725b2c9dda6d8c78.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Beach Malibu", - "md5": "050615fe992a00d6af0e664e497ebf53.png", - "type": "backdrop", "tags": [ "outdoors" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "050615fe992a00d6af0e664e497ebf53", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "050615fe992a00d6af0e664e497ebf53.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Beach Rio", - "md5": "968f0ede6e70e1dbb763d6fd4c5003e0.png", - "type": "backdrop", "tags": [ "outdoors" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "968f0ede6e70e1dbb763d6fd4c5003e0", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "968f0ede6e70e1dbb763d6fd4c5003e0.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Bedroom 1", - "md5": "7aa6bbb2ddc4c10f901e1a50aeac1c7e.png", - "type": "backdrop", "tags": [ "bedroom", "indoors" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "7aa6bbb2ddc4c10f901e1a50aeac1c7e", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "7aa6bbb2ddc4c10f901e1a50aeac1c7e.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Bedroom 2", - "md5": "e2f8b0dbd0a65d2ad8bfc21616662a6a.png", - "type": "backdrop", "tags": [ "indoors" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "e2f8b0dbd0a65d2ad8bfc21616662a6a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "e2f8b0dbd0a65d2ad8bfc21616662a6a.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Bedroom 3", - "md5": "8cc0b88d53345b3e337e8f028a32a4e7.png", - "type": "backdrop", "tags": [ "indoors" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "8cc0b88d53345b3e337e8f028a32a4e7", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "8cc0b88d53345b3e337e8f028a32a4e7.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Bench With View", - "md5": "962201a2b712a302fb087f8f0dcb2076.png", - "type": "backdrop", "tags": [ "outdoors", "hill", "view" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "962201a2b712a302fb087f8f0dcb2076", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "962201a2b712a302fb087f8f0dcb2076.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Blue Sky", - "md5": "e7c147730f19d284bcd7b3f00af19bb6.svg", - "type": "backdrop", "tags": [ "outdoors", "flying" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "e7c147730f19d284bcd7b3f00af19bb6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e7c147730f19d284bcd7b3f00af19bb6.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Blue Sky 2 ", - "md5": "5a906c2f272b77f59f0ef207857a8b3a.svg", - "type": "backdrop", "tags": [ "outdoors", "flying" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "8eb8790be5507fdccf73e7c1570bbbab", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8eb8790be5507fdccf73e7c1570bbbab.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Boardwalk", - "md5": "de0e54cd11551566f044e7e6bc588b2c.png", - "type": "backdrop", "tags": [ "outdoors", "ocean" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "de0e54cd11551566f044e7e6bc588b2c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "de0e54cd11551566f044e7e6bc588b2c.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Canyon", - "md5": "c7c0b27b959193a0b570a9639cfe8158.png", - "type": "backdrop", "tags": [ "outdoors", "nature" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "c7c0b27b959193a0b570a9639cfe8158", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c7c0b27b959193a0b570a9639cfe8158.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Castle 1", - "md5": "e1914ed7917267f1c2ef2b48004cade9.png", - "type": "backdrop", "tags": [ "fantasy" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "e1914ed7917267f1c2ef2b48004cade9", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "e1914ed7917267f1c2ef2b48004cade9.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Castle 2", - "md5": "951765ee7f7370f120c9df20b577c22f.png", - "type": "backdrop", "tags": [ "fantasy" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "951765ee7f7370f120c9df20b577c22f", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "951765ee7f7370f120c9df20b577c22f.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Castle 3", - "md5": "76fa99f67569fcd39b4be74ed38c33f3.png", - "type": "backdrop", "tags": [ "fantasy" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "76fa99f67569fcd39b4be74ed38c33f3", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "76fa99f67569fcd39b4be74ed38c33f3.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Castle 4", - "md5": "4f45f79af8e8dac3d41eb5a06ade61d4.png", - "type": "backdrop", "tags": [ "fantasy" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "4f45f79af8e8dac3d41eb5a06ade61d4", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "4f45f79af8e8dac3d41eb5a06ade61d4.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Chalkboard", - "md5": "a8a24b5aa717bbef09dbe31368914427.png", - "type": "backdrop", "tags": [ "indoors", "school" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "a8a24b5aa717bbef09dbe31368914427", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a8a24b5aa717bbef09dbe31368914427.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Circles", - "md5": "4e29033ec2b891a8f1ca21242811d403.svg", - "type": "backdrop", "tags": [ "patterns" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "c9847be305920807c5597d81576dd0c4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c9847be305920807c5597d81576dd0c4.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "City With Water", - "md5": "1ef98019fc94ea65a1b55d5521285c7a.png", - "type": "backdrop", "tags": [ "outdoors", "boston" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "1ef98019fc94ea65a1b55d5521285c7a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "1ef98019fc94ea65a1b55d5521285c7a.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Colorful City", - "md5": "04d18ddd1b85f0ea30beb14b8da49f60.png", - "type": "backdrop", "tags": [ "city", "town", @@ -322,47 +298,44 @@ "skyline", "outdoors" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "04d18ddd1b85f0ea30beb14b8da49f60", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "04d18ddd1b85f0ea30beb14b8da49f60.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Concert", - "md5": "c8d90320d2966c08af8cdd1c6a7a93b5.png", - "type": "backdrop", "tags": [ "indoors", "music", "andrew rae" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "c8d90320d2966c08af8cdd1c6a7a93b5", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c8d90320d2966c08af8cdd1c6a7a93b5.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Desert", - "md5": "d98a9526a34890cf4bad11b5409eae2a.png", - "type": "backdrop", "tags": [ "desert", " landscape", " outdoors", " cacti" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "d98a9526a34890cf4bad11b5409eae2a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "d98a9526a34890cf4bad11b5409eae2a.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Farm", - "md5": "1e8a70bd07f1dcba3383883f3b948266.png", - "type": "backdrop", "tags": [ "outdoors", "chicken", @@ -370,245 +343,228 @@ "coup", "owen davey" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "1e8a70bd07f1dcba3383883f3b948266", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "1e8a70bd07f1dcba3383883f3b948266.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Field At Mit", - "md5": "5b0a970202b464915915260c03f05455.png", - "type": "backdrop", "tags": [ "outdoors", "architecture" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "5b0a970202b464915915260c03f05455", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "5b0a970202b464915915260c03f05455.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Flowers", - "md5": "25a6ede51a96d4e55de2ffb81ae96f8c.png", - "type": "backdrop", "tags": [ "outdoors", "nature" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "25a6ede51a96d4e55de2ffb81ae96f8c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "25a6ede51a96d4e55de2ffb81ae96f8c.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Forest", - "md5": "92968ac16b2f0c3f7835a6dacd172c7b.png", - "type": "backdrop", "tags": [ "outdoors", "forest" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "92968ac16b2f0c3f7835a6dacd172c7b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "92968ac16b2f0c3f7835a6dacd172c7b.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Galaxy", - "md5": "5fab1922f254ae9fd150162c3e392bef.png", - "type": "backdrop", "tags": [ "space", "stars", "nasa" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "5fab1922f254ae9fd150162c3e392bef", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "5fab1922f254ae9fd150162c3e392bef.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Garden-rock", - "md5": "4f66053598bea0905e1559ab9d5a6e31.png", - "type": "backdrop", "tags": [ "outdoors", " garden", " park" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "4f66053598bea0905e1559ab9d5a6e31", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "4f66053598bea0905e1559ab9d5a6e31.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Greek Theater", - "md5": "93d71e8b8a96cc007b8d68f36acd338a.png", - "type": "backdrop", "tags": [ "outdoors", "theatre" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "93d71e8b8a96cc007b8d68f36acd338a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "93d71e8b8a96cc007b8d68f36acd338a.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Hall", - "md5": "ea86ca30b346f27ca5faf1254f6a31e3.png", - "type": "backdrop", "tags": [ "indoors" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "ea86ca30b346f27ca5faf1254f6a31e3", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "ea86ca30b346f27ca5faf1254f6a31e3.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Hay Field", - "md5": "da102a69d135973e0fc139131dec785a.png", - "type": "backdrop", "tags": [ "outdoors", "farm" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "da102a69d135973e0fc139131dec785a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "da102a69d135973e0fc139131dec785a.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Hearts", - "md5": "26d3418b2fbc1af2c5fea82e1c3df1db.svg", - "type": "backdrop", "tags": [ "patterns" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "f98526ccb0eec3ac7d6c8f8ab502825e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f98526ccb0eec3ac7d6c8f8ab502825e.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Hill", - "md5": "2129c842f28d6881f622fdc3497ff2da.png", - "type": "backdrop", "tags": [ "outdoors", "nature" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "2129c842f28d6881f622fdc3497ff2da", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "2129c842f28d6881f622fdc3497ff2da.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Jungle", - "md5": "f4f908da19e2753f3ed679d7b37650ca.png", - "type": "backdrop", "tags": [ "outdoors", "forest", "robert hunter" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "f4f908da19e2753f3ed679d7b37650ca", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "f4f908da19e2753f3ed679d7b37650ca.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Jurassic", - "md5": "64025bdca5db4938f65597e3682fddcf.svg", - "type": "backdrop", "tags": [ "outdoors", "dinosaur", "alex eben meyer" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "64025bdca5db4938f65597e3682fddcf", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "64025bdca5db4938f65597e3682fddcf.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Light", - "md5": "4b98c07876ed8997c3762e75790507b4.svg", - "type": "backdrop", "tags": [ "patterns" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "4b98c07876ed8997c3762e75790507b4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4b98c07876ed8997c3762e75790507b4.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Metro", - "md5": "0b4a15ba028bf205ec051390d6ac4de7.png", - "type": "backdrop", "tags": [ "outdoors", "city", "urban" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "0b4a15ba028bf205ec051390d6ac4de7", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "0b4a15ba028bf205ec051390d6ac4de7.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Moon", - "md5": "0b1d2eaf22d62ef88de80ccde5578fba.png", - "type": "backdrop", "tags": [ "space", "nasa", "apollo" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "0b1d2eaf22d62ef88de80ccde5578fba", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "0b1d2eaf22d62ef88de80ccde5578fba.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Mountain", - "md5": "f84989feee2cf462a1c597169777ee3c.png", - "type": "backdrop", "tags": [ "outdoors", "snow", "cave", "robert hunter" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "f84989feee2cf462a1c597169777ee3c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "f84989feee2cf462a1c597169777ee3c.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Mural", - "md5": "efb625f7e0b199b15f69e116cd053cea.png", - "type": "backdrop", "tags": [ "outdoors", "mural", @@ -616,208 +572,194 @@ "street", "art" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "efb625f7e0b199b15f69e116cd053cea", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "efb625f7e0b199b15f69e116cd053cea.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Nebula", - "md5": "9b5cdbd596da1b6149f56b794b6394f4.png", - "type": "backdrop", "tags": [ "space", "nasa", "bubble", "hubble" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "9b5cdbd596da1b6149f56b794b6394f4", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "9b5cdbd596da1b6149f56b794b6394f4.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Neon Tunnel", - "md5": "57d2b13b2f73d3d878c72810c137b0d6.png", - "type": "backdrop", "tags": [ "games", "game", "space" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "57d2b13b2f73d3d878c72810c137b0d6", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "57d2b13b2f73d3d878c72810c137b0d6.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Night City", - "md5": "6fdc795ff487204f72740567be5f64f9.png", - "type": "backdrop", "tags": [ "outdoors", "urban", "city", "metro" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "6fdc795ff487204f72740567be5f64f9", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "6fdc795ff487204f72740567be5f64f9.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Night City With Street", - "md5": "14443ad7907b6479d7562a12b8ae0efb.png", - "type": "backdrop", "tags": [ "urban", "city", "metro", "transportation" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "14443ad7907b6479d7562a12b8ae0efb", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "14443ad7907b6479d7562a12b8ae0efb.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Party", - "md5": "108160d0e44d1c340182e31c9dc0758a.svg", - "type": "backdrop", "tags": [ "indoors", "inflatable" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "108160d0e44d1c340182e31c9dc0758a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "108160d0e44d1c340182e31c9dc0758a.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Pathway", - "md5": "5d747ec036755a4b129f0d5b978bc61c.png", - "type": "backdrop", "tags": [ "outdoors", "garden" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "5d747ec036755a4b129f0d5b978bc61c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "5d747ec036755a4b129f0d5b978bc61c.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Playground", - "md5": "e5f794c8756ca0cead5cb7e7fe354c41.png", - "type": "backdrop", "tags": [ "outdoors", "play" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "e5f794c8756ca0cead5cb7e7fe354c41", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "e5f794c8756ca0cead5cb7e7fe354c41.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Playing Field", - "md5": "2de108f3098e92f5c5976cf75d38e99d.png", - "type": "backdrop", "tags": [ "outdoors", "sports" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "2de108f3098e92f5c5976cf75d38e99d", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "2de108f3098e92f5c5976cf75d38e99d.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Pool", - "md5": "6cab934df643d2fc508cfa90c0c4059b.png", - "type": "backdrop", "tags": [ "outdoors", "sports", "swim", "swimming" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "6cab934df643d2fc508cfa90c0c4059b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "6cab934df643d2fc508cfa90c0c4059b.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Rays", - "md5": "87e963282db9e020e8c4d075891ea12b.svg", - "type": "backdrop", "tags": [ "patterns", "raimondious" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "87e963282db9e020e8c4d075891ea12b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "87e963282db9e020e8c4d075891ea12b.svg", + "rotationCenterX": 240.1199951171875, + "rotationCenterY": 180 }, { "name": "Refrigerator", - "md5": "98f053f9681e872f34fafd783ce72205.svg", - "type": "backdrop", "tags": [ "food", "indoors", "alex eben meyer" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "98f053f9681e872f34fafd783ce72205", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "98f053f9681e872f34fafd783ce72205.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Room 1", - "md5": "a81668321aa3dcc0fc185d3e36ae76f6.png", - "type": "backdrop", "tags": [ "indoors", "books", "library" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "a81668321aa3dcc0fc185d3e36ae76f6", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a81668321aa3dcc0fc185d3e36ae76f6.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Room 2", - "md5": "05ae3e3bbea890a6e3552ffe8456775e.png", - "type": "backdrop", "tags": [ "indoors" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "05ae3e3bbea890a6e3552ffe8456775e", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "05ae3e3bbea890a6e3552ffe8456775e.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Savanna", - "md5": "9b020b8c7cb6a9592f7303add9441d8f.png", - "type": "backdrop", "tags": [ "africa", "savanna", @@ -825,32 +767,30 @@ "outdoors", "robert hunter" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "9b020b8c7cb6a9592f7303add9441d8f", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "9b020b8c7cb6a9592f7303add9441d8f.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "School", - "md5": "1dea69ac0f62cf538d368a7bde1372ac.png", - "type": "backdrop", "tags": [ "outdoors", "building", "education", "learning" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "1dea69ac0f62cf538d368a7bde1372ac", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "1dea69ac0f62cf538d368a7bde1372ac.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Slopes", - "md5": "63b6a69594a0a87888b56244bfa2ac1b.png", - "type": "backdrop", "tags": [ "outdoors", "winter", @@ -859,48 +799,45 @@ "cold", "snow" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "63b6a69594a0a87888b56244bfa2ac1b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "63b6a69594a0a87888b56244bfa2ac1b.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Soccer", - "md5": "04a63154f04b09494354090f7cc2f1b9.png", - "type": "backdrop", "tags": [ "soccer", "football", "sports", "alex eben meyer" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "04a63154f04b09494354090f7cc2f1b9", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "04a63154f04b09494354090f7cc2f1b9.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Soccer 2", - "md5": "b0dc1268cb595aaeef405bce40d1639c.png", - "type": "backdrop", "tags": [ "soccer", "football", "sports", "alex eben meyer" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "b0dc1268cb595aaeef405bce40d1639c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "b0dc1268cb595aaeef405bce40d1639c.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Space", - "md5": "84208d9a3718ec3c9fc5a32a792fa1d0.png", - "type": "backdrop", "tags": [ "space", "moon", @@ -908,16 +845,15 @@ "planet", "wren mcdonald" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "84208d9a3718ec3c9fc5a32a792fa1d0", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "84208d9a3718ec3c9fc5a32a792fa1d0.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Space City 1", - "md5": "20344b0edcc498281e4cb80242a72667.png", - "type": "backdrop", "tags": [ "space", "moon", @@ -925,16 +861,15 @@ "planet", "wren mcdonald" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "20344b0edcc498281e4cb80242a72667", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "20344b0edcc498281e4cb80242a72667.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Space City 2", - "md5": "32b2316fd375faa18088f6c57ebb1c8d.png", - "type": "backdrop", "tags": [ "space", "moon", @@ -942,16 +877,15 @@ "planet", "wren mcdonald" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "32b2316fd375faa18088f6c57ebb1c8d", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "32b2316fd375faa18088f6c57ebb1c8d.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Spaceship", - "md5": "0c450891306fa63ef02aa0fda7fd0ef9.png", - "type": "backdrop", "tags": [ "space", "moon", @@ -959,174 +893,162 @@ "planet", "wren mcdonald" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "0c450891306fa63ef02aa0fda7fd0ef9", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "0c450891306fa63ef02aa0fda7fd0ef9.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Spotlight", - "md5": "d26bf4c3980163d9106625cc2ea6c50d.png", - "type": "backdrop", "tags": [ "music", "dance" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "d26bf4c3980163d9106625cc2ea6c50d", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "d26bf4c3980163d9106625cc2ea6c50d.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Stars", - "md5": "47282ff0f7047c6fab9c94b531abf721.png", - "type": "backdrop", "tags": [ "space", "nasa" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "47282ff0f7047c6fab9c94b531abf721", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "47282ff0f7047c6fab9c94b531abf721.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Stripes", - "md5": "a6a21f5c08d586e8daaebde37c97fb6f.svg", - "type": "backdrop", "tags": [ "patterns" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "a6a21f5c08d586e8daaebde37c97fb6f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a6a21f5c08d586e8daaebde37c97fb6f.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Theater", - "md5": "c2b097bc5cdb6a14ef5485202bc5ee76.png", - "type": "backdrop", "tags": [ "indoors", "music", "andrew rae" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "c2b097bc5cdb6a14ef5485202bc5ee76", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c2b097bc5cdb6a14ef5485202bc5ee76.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Theater 2", - "md5": "061a78ed83495dd0acd6d62e83e1b972.png", - "type": "backdrop", "tags": [ "music" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "061a78ed83495dd0acd6d62e83e1b972", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "061a78ed83495dd0acd6d62e83e1b972.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Tree", - "md5": "a23fbf972001c94637b568992f8fd7bd.png", - "type": "backdrop", "tags": [ "outdoors", "nature" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "a23fbf972001c94637b568992f8fd7bd", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a23fbf972001c94637b568992f8fd7bd.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Underwater 1", - "md5": "fb907f72b310acc8b95cbf2d2cccabc9.svg", - "type": "backdrop", "tags": [ "ocean", "outdoors", "underwater", "ipzy" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "d3344650f594bcecdf46aa4a9441badd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d3344650f594bcecdf46aa4a9441badd.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Underwater 2", - "md5": "1517c21786d2d0edc2f3037408d850bd.png", - "type": "backdrop", "tags": [ "outdoors", "nature", "underwater" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "1517c21786d2d0edc2f3037408d850bd", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "1517c21786d2d0edc2f3037408d850bd.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Urban", - "md5": "1679049718869e1f548e1e8823e29c1c.png", - "type": "backdrop", "tags": [ "outdoors", "city", "metro", "transportation" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "1679049718869e1f548e1e8823e29c1c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "1679049718869e1f548e1e8823e29c1c.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Wall 1", - "md5": "7e5327c68ff6ddabc48dbfe4717a04fe.png", - "type": "backdrop", "tags": [ "outdoors", "brick" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "7e5327c68ff6ddabc48dbfe4717a04fe", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "7e5327c68ff6ddabc48dbfe4717a04fe.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Wall 2", - "md5": "82d867fcd9f1b5f49e29c2f853d55665.png", - "type": "backdrop", "tags": [ "outdoors", "brick" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "82d867fcd9f1b5f49e29c2f853d55665", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "82d867fcd9f1b5f49e29c2f853d55665.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Water And Rocks", - "md5": "0015433a406a53f00b792424b823268c.png", - "type": "backdrop", "tags": [ "outdoors", "nature", @@ -1134,16 +1056,15 @@ "river", "stream" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "0015433a406a53f00b792424b823268c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "0015433a406a53f00b792424b823268c.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Wetland", - "md5": "ef9973bcff6d4cbc558e946028ec7d23.png", - "type": "backdrop", "tags": [ "outdoor", "nature", @@ -1151,47 +1072,44 @@ "wetland", "owen davey" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "ef9973bcff6d4cbc558e946028ec7d23", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "ef9973bcff6d4cbc558e946028ec7d23.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Winter", - "md5": "5fa9385a60b904672d0e46e9d768bb32.svg", - "type": "backdrop", "tags": [ "outdoors", "trees", "forest", "winter" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "5fa9385a60b904672d0e46e9d768bb32", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5fa9385a60b904672d0e46e9d768bb32.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Witch House", - "md5": "597b9a9813fe5d8d387283138a0b8f2b.svg", - "type": "backdrop", "tags": [ "fantasy", "indoors", "ipzy" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "30085b2d27beb5acdbe895d8b3e64b04", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "30085b2d27beb5acdbe895d8b3e64b04.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Woods", - "md5": "d26cfd278999c9e37d6af75c296a58df.svg", - "type": "backdrop", "tags": [ "fantasy", "spooky", @@ -1201,69 +1119,66 @@ "forest", "alex eben meyer" ], - "info": [ - 480, - 360, - 1 - ] + "assetId": "f3eb165d6f3fd23370f97079f2e631bf", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f3eb165d6f3fd23370f97079f2e631bf.svg", + "rotationCenterX": 240, + "rotationCenterY": 180 }, { "name": "Woods And Bench", - "md5": "4fcf7ed0de6c6b6e9b52c511b0650e9c.png", - "type": "backdrop", "tags": [ "outdoors", "park" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "4fcf7ed0de6c6b6e9b52c511b0650e9c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "4fcf7ed0de6c6b6e9b52c511b0650e9c.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Xy-grid", - "md5": "9838d02002d05f88dc54d96494fbc202.png", - "type": "backdrop", "tags": [ "grid", "xy", "coordinates" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "9838d02002d05f88dc54d96494fbc202", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "9838d02002d05f88dc54d96494fbc202.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Xy-grid-20px", - "md5": "4eec0e1db92b8dea3e5bee25105e8f46.png", - "type": "backdrop", "tags": [ "grid", "xy", "coordinates" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "4eec0e1db92b8dea3e5bee25105e8f46", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "4eec0e1db92b8dea3e5bee25105e8f46.png", + "rotationCenterX": 480, + "rotationCenterY": 360 }, { "name": "Xy-grid-30px", - "md5": "3b8bcabd0ac683b7cb3673208039764b.png", - "type": "backdrop", "tags": [ "grid", "xy", "coordinates" ], - "info": [ - 960, - 720, - 2 - ] + "assetId": "3b8bcabd0ac683b7cb3673208039764b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "3b8bcabd0ac683b7cb3673208039764b.png", + "rotationCenterX": 480, + "rotationCenterY": 360 } ] \ No newline at end of file diff --git a/src/lib/libraries/costumes.json b/src/lib/libraries/costumes.json index eb57f4afee6..6abccd68ac6 100644 --- a/src/lib/libraries/costumes.json +++ b/src/lib/libraries/costumes.json @@ -1,82 +1,75 @@ [ { "name": "Abby-a", - "md5": "afab2d2141e9811bd89e385e9628cb5f.svg", - "type": "costume", "tags": [ "people", "person", "drawing" ], - "info": [ - 31, - 100, - 1 - ] + "assetId": "809d9b47347a6af2860e7a3a35bce057", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "809d9b47347a6af2860e7a3a35bce057.svg", + "rotationCenterX": 31, + "rotationCenterY": 100 }, { "name": "Abby-b", - "md5": "1e0116c7c2e5e80c679d0b33f1f5cfb7.svg", - "type": "costume", "tags": [ "people", "person", "drawing" ], - "info": [ - 31, - 100, - 1 - ] + "assetId": "920f14335615fff9b8c55fccb8971984", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "920f14335615fff9b8c55fccb8971984.svg", + "rotationCenterX": 31, + "rotationCenterY": 100 }, { "name": "Abby-c", - "md5": "b6e23922f23b49ddc6f62f675e77417c.svg", - "type": "costume", "tags": [ "people", "person", "drawing" ], - "info": [ - 32, - 100, - 1 - ] + "assetId": "34a175600dc009a521eb46fdbbbeeb67", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "34a175600dc009a521eb46fdbbbeeb67.svg", + "rotationCenterX": 32, + "rotationCenterY": 100 }, { "name": "Abby-d", - "md5": "2d05d4da65e7b5009a491d8153d37253.svg", - "type": "costume", "tags": [ "people", "person", "drawing" ], - "info": [ - 32, - 101, - 1 - ] + "assetId": "45de34b47a2ce22f6f5d28bb35a44ff5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "45de34b47a2ce22f6f5d28bb35a44ff5.svg", + "rotationCenterX": 32, + "rotationCenterY": 101 }, { "name": "Amon", - "md5": "60f720956ab1840431dcf0616ce98f14.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 348, - 324, - 2 - ] + "assetId": "60f720956ab1840431dcf0616ce98f14", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "60f720956ab1840431dcf0616ce98f14.png", + "rotationCenterX": 174, + "rotationCenterY": 162 }, { "name": "Andie-a", - "md5": "d2c433e02481b10584e34ccdcf5a046a.svg", - "type": "costume", "tags": [ "sports", "basketball", @@ -86,16 +79,15 @@ "handicapable", "alex eben meyer" ], - "info": [ - 80, - 65, - 1 - ] + "assetId": "b36584db82bdd45014430aa918461ca0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b36584db82bdd45014430aa918461ca0.svg", + "rotationCenterX": 80, + "rotationCenterY": 65 }, { "name": "Andie-b", - "md5": "045f92ad80d72521098ede6d7c80549a.svg", - "type": "costume", "tags": [ "sports", "basketball", @@ -105,16 +97,15 @@ "handicapable", "alex eben meyer" ], - "info": [ - 40, - 91, - 1 - ] + "assetId": "b3fc774e753fef520fb544127a48554b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b3fc774e753fef520fb544127a48554b.svg", + "rotationCenterX": 40, + "rotationCenterY": 91 }, { "name": "Andie-c", - "md5": "c9bad70ad371b8d6d97daed7ab9def98.svg", - "type": "costume", "tags": [ "sports", "basketball", @@ -124,16 +115,15 @@ "handicapable", "alex eben meyer" ], - "info": [ - 46, - 49, - 1 - ] + "assetId": "ded71c8a0f39852178f1695b622c2d89", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ded71c8a0f39852178f1695b622c2d89.svg", + "rotationCenterX": 46, + "rotationCenterY": 49 }, { "name": "Andie-d", - "md5": "7c9db638cd671898ff07771112faff0f.svg", - "type": "costume", "tags": [ "sports", "basketball", @@ -143,356 +133,331 @@ "handicapable", "alex eben meyer" ], - "info": [ - 71, - 57, - 1 - ] + "assetId": "d92aaf6cf44921905d51ca4a10a4f3d6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d92aaf6cf44921905d51ca4a10a4f3d6.svg", + "rotationCenterX": 71, + "rotationCenterY": 57 }, { "name": "Anina Pop Down", - "md5": "e3698b76cb0864df2fbaba80e6bd8067.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 148, - 312, - 2 - ] + "assetId": "e3698b76cb0864df2fbaba80e6bd8067", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "e3698b76cb0864df2fbaba80e6bd8067.png", + "rotationCenterX": 74, + "rotationCenterY": 156 }, { "name": "Anina Pop Front", - "md5": "4931a363e3e4efa20230f6ff2991c6b4.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 136, - 540, - 2 - ] + "assetId": "4931a363e3e4efa20230f6ff2991c6b4", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "4931a363e3e4efa20230f6ff2991c6b4.png", + "rotationCenterX": 68, + "rotationCenterY": 270 }, { "name": "Anina Pop L Arm", - "md5": "62c50c90535b64f2ae130a5c680ddcb4.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 136, - 548, - 2 - ] + "assetId": "62c50c90535b64f2ae130a5c680ddcb4", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "62c50c90535b64f2ae130a5c680ddcb4.png", + "rotationCenterX": 68, + "rotationCenterY": 274 }, { "name": "Anina Pop Left", - "md5": "d86bb27b4f8d7b70c39c96f29c6943b4.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 476, - 532, - 2 - ] + "assetId": "d86bb27b4f8d7b70c39c96f29c6943b4", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "d86bb27b4f8d7b70c39c96f29c6943b4.png", + "rotationCenterX": 238, + "rotationCenterY": 266 }, { "name": "Anina Pop R Arm", - "md5": "ca27e001a263ee6b5852508f39d021db.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 176, - 544, - 2 - ] + "assetId": "ca27e001a263ee6b5852508f39d021db", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "ca27e001a263ee6b5852508f39d021db.png", + "rotationCenterX": 88, + "rotationCenterY": 272 }, { "name": "Anina Pop Right", - "md5": "7bb9c790b02231e1272701167c26b17a.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 132, - 536, - 2 - ] + "assetId": "7bb9c790b02231e1272701167c26b17a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "7bb9c790b02231e1272701167c26b17a.png", + "rotationCenterX": 66, + "rotationCenterY": 268 }, { "name": "Anina Pop Stand", - "md5": "105f4f3d260dcb8bea02ea9ee5d18cf4.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 152, - 552, - 2 - ] + "assetId": "105f4f3d260dcb8bea02ea9ee5d18cf4", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "105f4f3d260dcb8bea02ea9ee5d18cf4.png", + "rotationCenterX": 76, + "rotationCenterY": 276 }, { "name": "Anina R Cross", - "md5": "3948aad16f8169c013c956dd152a09a6.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 252, - 536, - 2 - ] + "assetId": "3948aad16f8169c013c956dd152a09a6", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "3948aad16f8169c013c956dd152a09a6.png", + "rotationCenterX": 126, + "rotationCenterY": 268 }, { "name": "Anina Stance", - "md5": "84c5e22b4303c7c1fb707125706c9aaa.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 152, - 504, - 2 - ] + "assetId": "84c5e22b4303c7c1fb707125706c9aaa", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "84c5e22b4303c7c1fb707125706c9aaa.png", + "rotationCenterX": 76, + "rotationCenterY": 252 }, { "name": "Anina Top Freeze", - "md5": "b7693bd6250d4411ee622b67f8025924.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 220, - 536, - 2 - ] + "assetId": "b7693bd6250d4411ee622b67f8025924", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "b7693bd6250d4411ee622b67f8025924.png", + "rotationCenterX": 110, + "rotationCenterY": 268 }, { "name": "Anina Top L Step", - "md5": "ed90e8b7a05c1552194af597ac0637cd.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 456, - 548, - 2 - ] + "assetId": "ed90e8b7a05c1552194af597ac0637cd", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "ed90e8b7a05c1552194af597ac0637cd.png", + "rotationCenterX": 228, + "rotationCenterY": 274 }, { "name": "Anina Top R Step", - "md5": "2d208a34e74fdce9dab9d4c585dcfa2b.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 496, - 544, - 2 - ] + "assetId": "2d208a34e74fdce9dab9d4c585dcfa2b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "2d208a34e74fdce9dab9d4c585dcfa2b.png", + "rotationCenterX": 248, + "rotationCenterY": 272 }, { "name": "Anina Top Stand", - "md5": "db6c03113f71b91f22a9f3351f90e5bf.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 148, - 560, - 2 - ] + "assetId": "db6c03113f71b91f22a9f3351f90e5bf", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "db6c03113f71b91f22a9f3351f90e5bf.png", + "rotationCenterX": 74, + "rotationCenterY": 280 }, { "name": "Apple", - "md5": "831ccd4741a7a56d85f6698a21f4ca69.svg", - "type": "costume", "tags": [ "food", "red", "crunchy", "fruit" ], - "info": [ - 31, - 31, - 1 - ] + "assetId": "3826a4091a33e4d26f87a2fac7cf796b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3826a4091a33e4d26f87a2fac7cf796b.svg", + "rotationCenterX": 31, + "rotationCenterY": 31 }, { "name": "Arrow1-a", - "md5": "62f8794dd120e9b4ead4d098d50fc64b.svg", - "type": "costume", "tags": [ "icons", "symbols", "right" ], - "info": [ - 28, - 23, - 1 - ] + "assetId": "be8fcd10da0b082f8d4775088ef7bd52", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "be8fcd10da0b082f8d4775088ef7bd52.svg", + "rotationCenterX": 28, + "rotationCenterY": 23 }, { "name": "Arrow1-b", - "md5": "a157dc7e33d7c7a048af933de999e397.svg", - "type": "costume", "tags": [ "icons", "symbols", "left" ], - "info": [ - 28, - 23, - 1 - ] + "assetId": "65b8e977641885010a10a46512fb95b4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "65b8e977641885010a10a46512fb95b4.svg", + "rotationCenterX": 28, + "rotationCenterY": 23 }, { "name": "Arrow1-c", - "md5": "d3b389e91f7beb22b2b1a80af09990ee.svg", - "type": "costume", "tags": [ "icons", "symbols", "down" ], - "info": [ - 23, - 28, - 1 - ] + "assetId": "dafcdfda65af14e172809984710f31a9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dafcdfda65af14e172809984710f31a9.svg", + "rotationCenterX": 23, + "rotationCenterY": 28 }, { "name": "Arrow1-d", - "md5": "412717ff731e9f19003a5840054057eb.svg", - "type": "costume", "tags": [ "icons", "symbols", "up" ], - "info": [ - 23, - 28, - 1 - ] + "assetId": "70ffa0bae8693418459f21f370584f6d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "70ffa0bae8693418459f21f370584f6d.svg", + "rotationCenterX": 23, + "rotationCenterY": 28 }, { "name": "Avery Walking-a", - "md5": "ed334e546806dfbf26d2591d7ddb12d0.svg", - "type": "costume", "tags": [ "people", "walking" ], - "info": [ - 50, - 95, - 1 - ] + "assetId": "dc6a584704c09a3fbafb9825635a9fd4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dc6a584704c09a3fbafb9825635a9fd4.svg", + "rotationCenterX": 50, + "rotationCenterY": 95 }, { "name": "Avery Walking-b", - "md5": "c295731e8666ad2e1575fb4b4f82988d.svg", - "type": "costume", "tags": [ "people", "walking" ], - "info": [ - 50, - 102, - 1 - ] + "assetId": "448e54fb14b13d492885fc247e76b7f4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "448e54fb14b13d492885fc247e76b7f4.svg", + "rotationCenterX": 50, + "rotationCenterY": 102 }, { "name": "Avery Walking-c", - "md5": "597a834225c9949e419dff7db1bc2453.svg", - "type": "costume", "tags": [ "people", "walking" ], - "info": [ - 48, - 95, - 1 - ] + "assetId": "3a935fe75ac999e22b93d06b3081a271", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3a935fe75ac999e22b93d06b3081a271.svg", + "rotationCenterX": 48, + "rotationCenterY": 95 }, { "name": "Avery Walking-d", - "md5": "ce9622d11d24607eec7988196b38c3c6.svg", - "type": "costume", "tags": [ "people", "walking" ], - "info": [ - 50, - 101, - 1 - ] + "assetId": "8f439476a738251043d488d7a4bc6870", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8f439476a738251043d488d7a4bc6870.svg", + "rotationCenterX": 50, + "rotationCenterY": 101 }, { "name": "Avery-a", - "md5": "21393c9114c7d34b1df7ccd12c793672.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 39, - 94, - 1 - ] + "assetId": "f52bde34d8027aab14b53f228fe5cc14", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f52bde34d8027aab14b53f228fe5cc14.svg", + "rotationCenterX": 39, + "rotationCenterY": 94 }, { "name": "Avery-b", - "md5": "cc55f2f09599edc4ae0876e8b3d187d0.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 39, - 94, - 1 - ] + "assetId": "944385ea927e8f9d72b9e19620487999", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "944385ea927e8f9d72b9e19620487999.svg", + "rotationCenterX": 39, + "rotationCenterY": 94 }, { "name": "Ball-a", - "md5": "10117ddaefa98d819f2b1df93805622f.svg", - "type": "costume", "tags": [ "round", "game", @@ -501,16 +466,15 @@ "yellow", "things" ], - "info": [ - 22, - 22, - 1 - ] + "assetId": "3c6241985b581284ec191f9d1deffde8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3c6241985b581284ec191f9d1deffde8.svg", + "rotationCenterX": 22, + "rotationCenterY": 22 }, { "name": "Ball-b", - "md5": "6e6330cad7750ea7e9dc88402661deb8.svg", - "type": "costume", "tags": [ "round", "game", @@ -519,16 +483,15 @@ "blue", "things" ], - "info": [ - 22, - 22, - 1 - ] + "assetId": "ad7dc51cafd73e8279073e33b0eab335", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ad7dc51cafd73e8279073e33b0eab335.svg", + "rotationCenterX": 22, + "rotationCenterY": 22 }, { "name": "Ball-c", - "md5": "bb45ed5db278f15c17c012c34a6b160f.svg", - "type": "costume", "tags": [ "round", "game", @@ -537,16 +500,15 @@ "pink", "things" ], - "info": [ - 22, - 22, - 1 - ] + "assetId": "f221a2edf87aff3615c0c003e616b31b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f221a2edf87aff3615c0c003e616b31b.svg", + "rotationCenterX": 22, + "rotationCenterY": 22 }, { "name": "Ball-d", - "md5": "5d494659deae5c0de06b5885f5524276.svg", - "type": "costume", "tags": [ "round", "game", @@ -555,16 +517,15 @@ "green", "things" ], - "info": [ - 22, - 22, - 1 - ] + "assetId": "db144b2a19f4f1ab31e30d58f00447dc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "db144b2a19f4f1ab31e30d58f00447dc.svg", + "rotationCenterX": 22, + "rotationCenterY": 22 }, { "name": "Ball-e", - "md5": "e80c98bc62fd32e8df81642af11ffb1a.svg", - "type": "costume", "tags": [ "round", "game", @@ -573,68 +534,63 @@ "purple", "things" ], - "info": [ - 22, - 22, - 1 - ] + "assetId": "1c44b7494dec047371f74c705f1d99fc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1c44b7494dec047371f74c705f1d99fc.svg", + "rotationCenterX": 22, + "rotationCenterY": 22 }, { "name": "Ballerina-a", - "md5": "6051bb7008cf17c8853a6f81f04c8a0f.svg", - "type": "costume", "tags": [ "dance" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "5197d3778baf55da6b81b3ada1e10021", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5197d3778baf55da6b81b3ada1e10021.svg", + "rotationCenterX": 31.00008984350052, + "rotationCenterY": 49 }, { "name": "Ballerina-b", - "md5": "8bc5e47fb1439e29e11e9e3f2e20c6de.svg", - "type": "costume", "tags": [ "dance" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "4ccb1752a43f48aafe490c9c08e58c27", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4ccb1752a43f48aafe490c9c08e58c27.svg", + "rotationCenterX": 29.496239121982484, + "rotationCenterY": 23.769351839794098 }, { "name": "Ballerina-c", - "md5": "6d3a07761b294f705987b0af58f8e335.svg", - "type": "costume", "tags": [ "dance" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "fc02bf591dd3d91eeeb50c7424d08274", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fc02bf591dd3d91eeeb50c7424d08274.svg", + "rotationCenterX": 59.502591601941845, + "rotationCenterY": 59.184989331170854 }, { "name": "Ballerina-d", - "md5": "c3164795edf39e436272f425b4f5e487.svg", - "type": "costume", "tags": [ "dance" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "5aae21aee33c3f1ae943af5ea11254bf", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5aae21aee33c3f1ae943af5ea11254bf.svg", + "rotationCenterX": 36.40099014292747, + "rotationCenterY": 77.95160112758442 }, { "name": "Balloon1-a", - "md5": "bc96a1fb5fe794377acd44807e421ce2.svg", - "type": "costume", "tags": [ "party", "pop", @@ -643,16 +599,15 @@ "blue", "things" ], - "info": [ - 32, - 94, - 1 - ] + "assetId": "d7974f9e15000c16222f94ee32d8227a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d7974f9e15000c16222f94ee32d8227a.svg", + "rotationCenterX": 32, + "rotationCenterY": 94 }, { "name": "Balloon1-b", - "md5": "d7bb51d9c38af6314bd2b4058d2a592d.svg", - "type": "costume", "tags": [ "party", "pop", @@ -661,16 +616,15 @@ "yellow", "things" ], - "info": [ - 31, - 94, - 1 - ] + "assetId": "a2516ac2b8d7a348194908e630387ea9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a2516ac2b8d7a348194908e630387ea9.svg", + "rotationCenterX": 31, + "rotationCenterY": 94 }, { "name": "Balloon1-c", - "md5": "247cef27b665d77d9efaca69327cae77.svg", - "type": "costume", "tags": [ "party", "pop", @@ -679,16 +633,15 @@ "purple", "things" ], - "info": [ - 31, - 94, - 1 - ] + "assetId": "63e5aea255610f9fdf0735e1e9a55a5c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "63e5aea255610f9fdf0735e1e9a55a5c.svg", + "rotationCenterX": 31, + "rotationCenterY": 94 }, { "name": "Bananas", - "md5": "1a76b68e056954f5c8ac1f073df1533d.svg", - "type": "costume", "tags": [ "food", "yellow", @@ -696,47 +649,44 @@ "potassium", "fruit" ], - "info": [ - 39, - 38, - 1 - ] + "assetId": "e5d3d3eb61797f5999732a8f5efead24", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e5d3d3eb61797f5999732a8f5efead24.svg", + "rotationCenterX": 39, + "rotationCenterY": 38 }, { "name": "Baseball", - "md5": "838dc2b2278619d3a9beefc6c8072a08.svg", - "type": "costume", "tags": [ "baseball", "sports", "ball", "alex eben meyer" ], - "info": [ - 28, - 28, - 1 - ] + "assetId": "74e08fc57820f925c7689e7b754c5848", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "74e08fc57820f925c7689e7b754c5848.svg", + "rotationCenterX": 28, + "rotationCenterY": 28 }, { "name": "Basketball", - "md5": "482f04cbffa835c4abf29ab996d3fbbd.svg", - "type": "costume", "tags": [ "sports", "basketball", "alex eben meyer" ], - "info": [ - 23, - 23, - 1 - ] + "assetId": "6b0b2aaa12d655e96b5b34e92d9fbd4f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6b0b2aaa12d655e96b5b34e92d9fbd4f.svg", + "rotationCenterX": 23, + "rotationCenterY": 23 }, { "name": "Bat-a", - "md5": "75bf9a5c5ec7dc9325a0301b6f6e72dd.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -745,16 +695,15 @@ "animals", "alex eben meyer" ], - "info": [ - 80, - 60, - 1 - ] + "assetId": "4e4ced87ed37ee66c758bba077e0eae6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4e4ced87ed37ee66c758bba077e0eae6.svg", + "rotationCenterX": 80, + "rotationCenterY": 60 }, { "name": "Bat-b", - "md5": "b92d4967a0c233b0e78d6e834653f846.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -763,16 +712,15 @@ "animals", "alex eben meyer" ], - "info": [ - 39, - 61, - 1 - ] + "assetId": "bc6dd12fc9e407c7774959cdf427f8b5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bc6dd12fc9e407c7774959cdf427f8b5.svg", + "rotationCenterX": 39, + "rotationCenterY": 61 }, { "name": "Bat-c", - "md5": "56b1458bd81b8ac2401c216f7352343c.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -781,16 +729,15 @@ "animals", "alex eben meyer" ], - "info": [ - 68, - 66, - 1 - ] + "assetId": "60f5bfce5d9b11bfcd199a6aa5454b3f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "60f5bfce5d9b11bfcd199a6aa5454b3f.svg", + "rotationCenterX": 68, + "rotationCenterY": 66 }, { "name": "Bat-d", - "md5": "7f806f928a192aab0b0d03aa96a89a67.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -799,278 +746,260 @@ "animals", "alex eben meyer" ], - "info": [ - 29, - 62, - 1 - ] + "assetId": "698c2a48e774f9959d57c9618b156c20", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "698c2a48e774f9959d57c9618b156c20.svg", + "rotationCenterX": 29, + "rotationCenterY": 62 }, { "name": "Batter-a", - "md5": "f7357c4cef5f31c6460e4f69dd0adabb.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 46, - 80, - 1 - ] + "assetId": "9d193bef6e3d6d8eba6d1470b8bf9351", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9d193bef6e3d6d8eba6d1470b8bf9351.svg", + "rotationCenterX": 46, + "rotationCenterY": 80 }, { "name": "Batter-b", - "md5": "c60fe1da0dcddedfd152384c60cbd5cc.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 16, - 67, - 1 - ] + "assetId": "fdfde4bcbaca0f68e83fdf3f4ef0c660", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fdfde4bcbaca0f68e83fdf3f4ef0c660.svg", + "rotationCenterX": 16, + "rotationCenterY": 67 }, { "name": "Batter-c", - "md5": "165c30e123e785d4cbbc0d9621f1c349.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 94, - 66, - 1 - ] + "assetId": "bd4fc003528acfa847e45ff82f346eee", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bd4fc003528acfa847e45ff82f346eee.svg", + "rotationCenterX": 94, + "rotationCenterY": 66 }, { "name": "Batter-d", - "md5": "e82529d9c31b56a3dd098ccc94be68a6.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 70, - 102, - 1 - ] + "assetId": "592ee9ab2aeefe65cb4fb95fcd046f33", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "592ee9ab2aeefe65cb4fb95fcd046f33.svg", + "rotationCenterX": 70, + "rotationCenterY": 102 }, { "name": "Beachball", - "md5": "87d64cab74c64b31498cc85f07510ee4.svg", - "type": "costume", "tags": [ "round", "sports", "bounce", "inflatable" ], - "info": [ - 34, - 33, - 1 - ] + "assetId": "5198b5a03ebae60698e0906f59a5fc15", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5198b5a03ebae60698e0906f59a5fc15.svg", + "rotationCenterX": 34, + "rotationCenterY": 33 }, { "name": "Bear-a", - "md5": "5a4148d7684fc95f38c58a1672062c9e.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 100, - 90, - 1 - ] + "assetId": "deef1eaa96d550ae6fc11524a1935024", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "deef1eaa96d550ae6fc11524a1935024.svg", + "rotationCenterX": 100, + "rotationCenterY": 90 }, { "name": "Bear-b", - "md5": "92a64ce184c8515217e0e98e49624622.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 94, - 191, - 1 - ] + "assetId": "6f303e972f33fcb7ef36d0d8012d0975", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6f303e972f33fcb7ef36d0d8012d0975.svg", + "rotationCenterX": 94, + "rotationCenterY": 190.66666666666666 }, { "name": "Bear-walk-a", - "md5": "d15eddb1a0f0ff0fa867bc006b46685d.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 130, - 94, - 1 - ] + "assetId": "6d4d06e3f4cd0c9455b777b9a40782b6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6d4d06e3f4cd0c9455b777b9a40782b6.svg", + "rotationCenterX": 130, + "rotationCenterY": 94 }, { "name": "Bear-walk-b", - "md5": "06e3f1bcf4f46b83df3820d92430f202.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 130, - 94, - 1 - ] + "assetId": "7453709bef16e33e6f989aee14d7fc07", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7453709bef16e33e6f989aee14d7fc07.svg", + "rotationCenterX": 130, + "rotationCenterY": 94 }, { "name": "Bear-walk-c", - "md5": "13a3584040c9903b1824bb249d7f8a0e.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 130, - 94, - 1 - ] + "assetId": "6d50c5fe63ab5f77d10144a68ca535a6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6d50c5fe63ab5f77d10144a68ca535a6.svg", + "rotationCenterX": 130, + "rotationCenterY": 94 }, { "name": "Bear-walk-d", - "md5": "c5d49a105619c497be45a5d2c43a740a.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 130, - 94, - 1 - ] + "assetId": "e531b307381c2aa148be4ccc36db0333", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e531b307381c2aa148be4ccc36db0333.svg", + "rotationCenterX": 130, + "rotationCenterY": 94 }, { "name": "Bear-walk-e", - "md5": "ece252d79c2d30c647c43c58986d9671.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 130, - 94, - 1 - ] + "assetId": "0a38a860f2e573b8dc5b09f390d30fbd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0a38a860f2e573b8dc5b09f390d30fbd.svg", + "rotationCenterX": 130, + "rotationCenterY": 94 }, { "name": "Bear-walk-f", - "md5": "ff66b87efec0e647dc30ec58df168ec4.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 130, - 94, - 1 - ] + "assetId": "f36c80d2e731be95df7ec6d07f89fa00", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f36c80d2e731be95df7ec6d07f89fa00.svg", + "rotationCenterX": 130, + "rotationCenterY": 94 }, { "name": "Bear-walk-g", - "md5": "d1404b12adf0d6b1b881f0dca47ce21a.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 130, - 94, - 1 - ] + "assetId": "d2a5f124f988def1d214e6d0813a48f3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d2a5f124f988def1d214e6d0813a48f3.svg", + "rotationCenterX": 130, + "rotationCenterY": 94 }, { "name": "Bear-walk-h", - "md5": "489055be58a7d9806e1d50455c88c399.svg", - "type": "costume", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 130, - 94, - 1 - ] + "assetId": "36d06aa23c684fc996952adb0e76e6b4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "36d06aa23c684fc996952adb0e76e6b4.svg", + "rotationCenterX": 130, + "rotationCenterY": 94 }, { "name": "Beetle", - "md5": "e1ce8f153f011fdd52486c91c6ed594d.svg", - "type": "costume", "tags": [ "animals", "insect", "bug", "antennae" ], - "info": [ - 43, - 38, - 1 - ] + "assetId": "46d0dfd4ae7e9bfe3a6a2e35a4905eae", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "46d0dfd4ae7e9bfe3a6a2e35a4905eae.svg", + "rotationCenterX": 43, + "rotationCenterY": 38 }, { "name": "Bell1", - "md5": "f35056c772395455d703773657e1da6e.svg", - "type": "costume", "tags": [ "music", "holiday", "ring", "things" ], - "info": [ - 59, - 69, - 1 - ] + "assetId": "8c0234fe1bfd36f5a72e975fbbc18bfd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8c0234fe1bfd36f5a72e975fbbc18bfd.svg", + "rotationCenterX": 59, + "rotationCenterY": 69 }, { "name": "Ben-a", - "md5": "322e13bd17d02acfdc048a5ef2167be8.svg", - "type": "costume", "tags": [ "sports", "soccer", @@ -1078,16 +1007,15 @@ "people", "alex eben meyer" ], - "info": [ - 54, - 69, - 1 - ] + "assetId": "2cd77b8a9961e7ad4da905e7731b7c1b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2cd77b8a9961e7ad4da905e7731b7c1b.svg", + "rotationCenterX": 54, + "rotationCenterY": 69 }, { "name": "Ben-b", - "md5": "59ba1e80ba75b1d06c37db4b9b4fde27.svg", - "type": "costume", "tags": [ "sports", "soccer", @@ -1095,16 +1023,15 @@ "people", "alex eben meyer" ], - "info": [ - 54, - 69, - 1 - ] + "assetId": "165d993c30dfdb9e829d0d98867d7826", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "165d993c30dfdb9e829d0d98867d7826.svg", + "rotationCenterX": 54, + "rotationCenterY": 69 }, { "name": "Ben-c", - "md5": "940ec2fa85d666dde95a51bcbccd266e.svg", - "type": "costume", "tags": [ "sports", "soccer", @@ -1112,16 +1039,15 @@ "people", "alex eben meyer" ], - "info": [ - 73, - 71, - 1 - ] + "assetId": "9f9f88aea3457084d8d734040b0b9067", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9f9f88aea3457084d8d734040b0b9067.svg", + "rotationCenterX": 73, + "rotationCenterY": 71 }, { "name": "Ben-d", - "md5": "3043a50a91b9d484a8cd32eb82f2d88f.svg", - "type": "costume", "tags": [ "sports", "soccer", @@ -1129,233 +1055,218 @@ "people", "alex eben meyer" ], - "info": [ - 44, - 71, - 1 - ] + "assetId": "acc208e29f0422c2bcffa3b8873abc63", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "acc208e29f0422c2bcffa3b8873abc63.svg", + "rotationCenterX": 44, + "rotationCenterY": 71 }, { "name": "Bowl-a", - "md5": "86f616639846f06fef29931e6b9b59de.svg", - "type": "costume", "tags": [ "thing", "food" ], - "info": [ - 30, - 15, - 1 - ] + "assetId": "d147f16e3e2583719c073ac5b55fe3ca", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d147f16e3e2583719c073ac5b55fe3ca.svg", + "rotationCenterX": 30, + "rotationCenterY": 15 }, { "name": "Bowtie", - "md5": "7d876f3ba4b04f3193a701ed30b4490c.svg", - "type": "costume", "tags": [ "fashion" ], - "info": [ - 15, - 8, - 1 - ] + "assetId": "4b032ba44b8077439e73815542e7ed23", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4b032ba44b8077439e73815542e7ed23.svg", + "rotationCenterX": 15, + "rotationCenterY": 8 }, { "name": "Bread", - "md5": "68366160ce0ac1221cdde4455eca9cba.svg", - "type": "costume", "tags": [ "food", "ipzy" ], - "info": [ - 37, - 12, - 1 - ] + "assetId": "585de1550446d4420f8a10fdecac995b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "585de1550446d4420f8a10fdecac995b.svg", + "rotationCenterX": 37, + "rotationCenterY": 12 }, { "name": "Broom", - "md5": "836197f784bc4c4decfb1a5a60ca6c56.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "flying", "things" ], - "info": [ - 135, - 25, - 1 - ] + "assetId": "556288a1c996345c751a3dc88b570cfa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "556288a1c996345c751a3dc88b570cfa.svg", + "rotationCenterX": 135, + "rotationCenterY": 25 }, { "name": "Building-a", - "md5": "d713270e235851e5962becd73a951771.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 40, - 30, - 1 - ] + "assetId": "e8c9508b1f6a0a432e09c10ef9ada67c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e8c9508b1f6a0a432e09c10ef9ada67c.svg", + "rotationCenterX": 40, + "rotationCenterY": 30 }, { "name": "Building-b", - "md5": "8c2d59c50a97d33b096f629258f02be6.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 46, - -11, - 1 - ] + "assetId": "a8c977a3b85ffe8c8b453c9d668989b8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a8c977a3b85ffe8c8b453c9d668989b8.svg", + "rotationCenterX": 46, + "rotationCenterY": -11 }, { "name": "Building-c", - "md5": "7f3f51f495c39809bed95991dfa1f80d.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 25, - 17, - 1 - ] + "assetId": "e4764cfc384a499f92da3ea745bcebe2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e4764cfc384a499f92da3ea745bcebe2.svg", + "rotationCenterX": 25, + "rotationCenterY": 17 }, { "name": "Building-d", - "md5": "bbe68ab80b36e4c71f4e28414c7f781e.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 59, - -10, - 1 - ] + "assetId": "d1fcce0aac589a17324943a3b759fc2a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d1fcce0aac589a17324943a3b759fc2a.svg", + "rotationCenterX": 59, + "rotationCenterY": -10 }, { "name": "Building-e", - "md5": "1beeb8f034a1128c9a799297b0b7fc26.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 36, - 55, - 1 - ] + "assetId": "bb47a3d5d03a34937557c558c6cb5d18", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bb47a3d5d03a34937557c558c6cb5d18.svg", + "rotationCenterX": 36, + "rotationCenterY": 55 }, { "name": "Building-f", - "md5": "451e0a565e95d945fe2addfe609ee9df.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 41, - 27, - 1 - ] + "assetId": "80b120b7152ed72fded84fef485f4f79", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "80b120b7152ed72fded84fef485f4f79.svg", + "rotationCenterX": 41, + "rotationCenterY": 27 }, { "name": "Building-g", - "md5": "58b3c9b7a41dde698fa2b427b502c1fa.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 64, - -65, - 1 - ] + "assetId": "4212ff1769c169bfa0db043b18fdade8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4212ff1769c169bfa0db043b18fdade8.svg", + "rotationCenterX": 64, + "rotationCenterY": -65 }, { "name": "Building-h", - "md5": "e952c8b14eeac894302d07d37a45ed99.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 33, - 136, - 1 - ] + "assetId": "8f64966be60d332b345598819c67a8b6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8f64966be60d332b345598819c67a8b6.svg", + "rotationCenterX": 33, + "rotationCenterY": 136 }, { "name": "Building-i", - "md5": "b00b1123e3bfcb600242528d059ffcfb.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 31, - -12, - 1 - ] + "assetId": "fcedb6b25a2db6de28b39130f978b0bf", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fcedb6b25a2db6de28b39130f978b0bf.svg", + "rotationCenterX": 31, + "rotationCenterY": -12 }, { "name": "Building-j", - "md5": "e08fd1a7397efcfe0e3691f945693cb4.svg", - "type": "costume", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 29, - 33, - 1 - ] + "assetId": "148034b1557cc3dae39953e43ab50ff0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "148034b1557cc3dae39953e43ab50ff0.svg", + "rotationCenterX": 29, + "rotationCenterY": 33 }, { "name": "Butterfly1-a", - "md5": "8419d4851defd1e862e4f7c1699d2190.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -1363,16 +1274,15 @@ "wetland", "owen davey" ], - "info": [ - 65, - 49, - 1 - ] + "assetId": "fe98df7367e314d9640bfaa54fc239be", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fe98df7367e314d9640bfaa54fc239be.svg", + "rotationCenterX": 65, + "rotationCenterY": 49 }, { "name": "Butterfly1-b", - "md5": "0873714e8d55d9eeb0bc8e8ab64441cc.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -1380,16 +1290,15 @@ "wetland", "owen davey" ], - "info": [ - 65, - 49, - 1 - ] + "assetId": "49c9f952007d870a046cff93b6e5e098", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "49c9f952007d870a046cff93b6e5e098.svg", + "rotationCenterX": 65, + "rotationCenterY": 49 }, { "name": "Butterfly1-c", - "md5": "9c422631ca8d46413487f5dd627b65c6.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -1397,16 +1306,15 @@ "wetland", "owen davey" ], - "info": [ - 65, - 49, - 1 - ] + "assetId": "34b76c1835c6a7fc2c47956e49bb0f52", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "34b76c1835c6a7fc2c47956e49bb0f52.svg", + "rotationCenterX": 65, + "rotationCenterY": 49 }, { "name": "Butterfly2-a", - "md5": "836d4cc7889f4a1cbcb0303934f31f79.svg", - "type": "costume", "tags": [ "animals", "drawing", @@ -1415,16 +1323,15 @@ "insect", "antennae" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "372ae0abd2e8e50a20bc12cb160d8746", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "372ae0abd2e8e50a20bc12cb160d8746.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Butterfly2-b", - "md5": "55dd0671a359d7c35f7b78f4176660e8.svg", - "type": "costume", "tags": [ "animals", "drawing", @@ -1433,152 +1340,142 @@ "insect", "antennae" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "e96f4c6913107c9b790d37bb65507c14", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e96f4c6913107c9b790d37bb65507c14.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Button1", - "md5": "7ef67c5bc8cf7df64fdb3b1d6b250f71.svg", - "type": "costume", "tags": [ "icons", "round", "green", "games" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "21fb7fa07eac4794fded0be4e18e20a2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "21fb7fa07eac4794fded0be4e18e20a2.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Button2-a", - "md5": "c0051ff23e9aae78295964206793c1e3.svg", - "type": "costume", "tags": [ "icons", "blue", "games" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "af4cd54e776031bc9cc54ddd6892f97b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "af4cd54e776031bc9cc54ddd6892f97b.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Button2-b", - "md5": "712a561dc0ad66e348b8247e566b50ef.svg", - "type": "costume", "tags": [ "icons", "orange", "games" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "329bf3d86050ceaea2b27e2c5d2baec1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "329bf3d86050ceaea2b27e2c5d2baec1.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Button3-a", - "md5": "ffb2a9c21084c58fdb677c8d12a97519.svg", - "type": "costume", "tags": [ "icons", "gray", "games" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "5021f6b7d166873ef0711c4d4a351912", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5021f6b7d166873ef0711c4d4a351912.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Button3-b", - "md5": "7a9ccb55e4da36f48811ab125d2492e0.svg", - "type": "costume", "tags": [ "icons", "blue", "games" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "a3b357ea21773bcb3545a227ee877e9a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a3b357ea21773bcb3545a227ee877e9a.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Button4-a", - "md5": "ecfe263bc256349777e571eaf39761d4.svg", - "type": "costume", "tags": [ "icons", "checkmark" ], - "info": [ - 35, - 34, - 1 - ] + "assetId": "71ced7c192168c7b221d16b4eaff440e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "71ced7c192168c7b221d16b4eaff440e.svg", + "rotationCenterX": 35, + "rotationCenterY": 34 }, { "name": "Button4-b", - "md5": "9c49edde00b80cd22d636a0577a9b1c9.svg", - "type": "costume", "tags": [ "icons", "checkmark" ], - "info": [ - 35, - 34, - 1 - ] + "assetId": "7d34ad26633abbc752c9cd93ace0a81f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7d34ad26633abbc752c9cd93ace0a81f.svg", + "rotationCenterX": 35, + "rotationCenterY": 34 }, { "name": "Button5-a", - "md5": "71e97245b7be4fd6fe3ba8cdeecadaf1.svg", - "type": "costume", "tags": [ "icons", "symbols", "x", "black" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "94957f2f79e8970d8b2cd0f74a0c1ffc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "94957f2f79e8970d8b2cd0f74a0c1ffc.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Button5-b", - "md5": "54cd55512f7571060e6e64168e541222.svg", - "type": "costume", "tags": [ "icons", "symbols", "x", "red" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "a4bb9a9e06e65337798471035719985a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a4bb9a9e06e65337798471035719985a.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Cake-a", - "md5": "e1e8e8a765b8778d6181035c5c66984d.svg", - "type": "costume", "tags": [ "food", "bakery", @@ -1588,16 +1485,15 @@ "sprankles", "dragable" ], - "info": [ - 64, - 50, - 1 - ] + "assetId": "862488bf66b67c5330cae9235b853b6e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "862488bf66b67c5330cae9235b853b6e.svg", + "rotationCenterX": 64, + "rotationCenterY": 50 }, { "name": "Cake-b", - "md5": "460268a804e7682c9fabf37e4b70071c.svg", - "type": "costume", "tags": [ "food", "bakery", @@ -1608,210 +1504,196 @@ "dragable", "lie" ], - "info": [ - 64, - 42, - 1 - ] + "assetId": "dfe9c5d40da0dcc386fad524c36d3579", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dfe9c5d40da0dcc386fad524c36d3579.svg", + "rotationCenterX": 64, + "rotationCenterY": 42 }, { "name": "Calvrett Jumping", - "md5": "452683db3ad7a882f5ab9de496441592.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 336, - 432, - 2 - ] + "assetId": "452683db3ad7a882f5ab9de496441592", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "452683db3ad7a882f5ab9de496441592.png", + "rotationCenterX": 168, + "rotationCenterY": 216 }, { "name": "Calvrett Thinking", - "md5": "728ec1ebc275b53809023a36c66eeaa3.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 212, - 340, - 2 - ] + "assetId": "728ec1ebc275b53809023a36c66eeaa3", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "728ec1ebc275b53809023a36c66eeaa3.png", + "rotationCenterX": 106, + "rotationCenterY": 170 }, { "name": "Casey-a", - "md5": "b7269d70079e96299666cc7b3f8eabc3.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 75, - 62, - 1 - ] + "assetId": "e5a47371f3e9f853b36560cda35344b6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e5a47371f3e9f853b36560cda35344b6.svg", + "rotationCenterX": 75, + "rotationCenterY": 62 }, { "name": "Casey-b", - "md5": "d22f6e818106f247f91e1c7c315863c3.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 60, - 74, - 1 - ] + "assetId": "e09e5ef2bdeb69163a543f3216c1f54c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e09e5ef2bdeb69163a543f3216c1f54c.svg", + "rotationCenterX": 60, + "rotationCenterY": 74 }, { "name": "Casey-c", - "md5": "a6ea02408a3f8366dfd704aae9a6ed0b.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 57, - 72, - 1 - ] + "assetId": "50bd5162671b8a30fcfa3082a9e79ec4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "50bd5162671b8a30fcfa3082a9e79ec4.svg", + "rotationCenterX": 57, + "rotationCenterY": 72 }, { "name": "Casey-d", - "md5": "033ef301acfdfbc38774a14a559c1654.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 71, - 74, - 1 - ] + "assetId": "ebc3de539e02801d420268eb189c5a47", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ebc3de539e02801d420268eb189c5a47.svg", + "rotationCenterX": 71, + "rotationCenterY": 74 }, { "name": "Cassy-a", - "md5": "6cb3686db1fa658b6541cc9fa3ccfcc7.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 208, - 384, - 2 - ] + "assetId": "6cb3686db1fa658b6541cc9fa3ccfcc7", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "6cb3686db1fa658b6541cc9fa3ccfcc7.png", + "rotationCenterX": 104, + "rotationCenterY": 192 }, { "name": "Cassy-b", - "md5": "f801cec764da5ef6374e1d557296d14e.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 280, - 384, - 2 - ] + "assetId": "f801cec764da5ef6374e1d557296d14e", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "f801cec764da5ef6374e1d557296d14e.png", + "rotationCenterX": 140, + "rotationCenterY": 192 }, { "name": "Cassy-c", - "md5": "63483bbf72fc55719918a335e1a16426.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 148, - 376, - 2 - ] + "assetId": "63483bbf72fc55719918a335e1a16426", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "63483bbf72fc55719918a335e1a16426.png", + "rotationCenterX": 74, + "rotationCenterY": 188 }, { "name": "Cassy-d", - "md5": "aca39a47cf3affd8a83d3287d2856c29.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 188, - 360, - 2 - ] + "assetId": "aca39a47cf3affd8a83d3287d2856c29", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "aca39a47cf3affd8a83d3287d2856c29.png", + "rotationCenterX": 94, + "rotationCenterY": 180 }, { "name": "Cat 2", - "md5": "01ae57fd339529445cb890978ef8a054.svg", - "type": "costume", "tags": [ "kitty", "kitten", "animals", "mammal" ], - "info": [ - 87, - 39, - 1 - ] + "assetId": "7499cf6ec438d0c7af6f896bc6adc294", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7499cf6ec438d0c7af6f896bc6adc294.svg", + "rotationCenterX": 87, + "rotationCenterY": 39 }, { "name": "Cat Flying-a", - "md5": "bf6b9f91e6928be67eda5154ca5fb2c6.svg", - "type": "costume", "tags": [ "animals", "cat", "kitty", "kitten" ], - "info": [ - 55, - 37, - 1 - ] + "assetId": "a1ab94c8172c3b97ed9a2bf7c32172cd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a1ab94c8172c3b97ed9a2bf7c32172cd.svg", + "rotationCenterX": 55, + "rotationCenterY": 37 }, { "name": "Cat Flying-b", - "md5": "6a5f707419e619463135f5bae599fa5b.svg", - "type": "costume", "tags": [ "animals", "cat", "kitty", "kitten" ], - "info": [ - 44, - 46, - 1 - ] + "assetId": "6667936a2793aade66c765c329379ad0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6667936a2793aade66c765c329379ad0.svg", + "rotationCenterX": 44, + "rotationCenterY": 46 }, { "name": "Cat-a", - "md5": "b7853f557e4426412e64bb3da6531a99.svg", - "type": "costume", "tags": [ "animals", "cat", @@ -1821,16 +1703,15 @@ "orange", "scratch cat" ], - "info": [ - 48, - 50, - 1 - ] + "assetId": "bcf454acf82e4504149f7ffe07081dbc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bcf454acf82e4504149f7ffe07081dbc.svg", + "rotationCenterX": 48, + "rotationCenterY": 50 }, { "name": "Cat-b", - "md5": "e6ddc55a6ddd9cc9d84fe0b4c21e016f.svg", - "type": "costume", "tags": [ "animals", "cat", @@ -1840,443 +1721,861 @@ "orange", "scratch cat" ], - "info": [ - 46, - 53, - 1 - ] + "assetId": "0fb9be3e8397c983338cb71dc84d0b25", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0fb9be3e8397c983338cb71dc84d0b25.svg", + "rotationCenterX": 46, + "rotationCenterY": 53 }, { "name": "Catcher-a", - "md5": "27c88c54a59b9fff7e3e4763a6e9874e.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 41, - 51, - 1 - ] + "assetId": "895cdda4f2bd9d6f50ff07188e7ce395", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "895cdda4f2bd9d6f50ff07188e7ce395.svg", + "rotationCenterX": 41, + "rotationCenterY": 51 }, { "name": "Catcher-b", - "md5": "799a822cffc9460c0bf1b387cbd5e06b.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 41, - 47, - 1 - ] + "assetId": "a31e30677637ae4de975d40b6d822853", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a31e30677637ae4de975d40b6d822853.svg", + "rotationCenterX": 41, + "rotationCenterY": 47 }, { "name": "Catcher-c", - "md5": "a6f2bf8b354e8d1a789f8e6f83133d02.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 60, - 87, - 1 - ] + "assetId": "99af13802e9bfd7b4a4bfb8ead825c0c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "99af13802e9bfd7b4a4bfb8ead825c0c.svg", + "rotationCenterX": 60, + "rotationCenterY": 87 }, { "name": "Catcher-d", - "md5": "c86af45d9168bfb81259e5bb40be1778.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 86, - 46, - 1 - ] + "assetId": "8aa875f077c405e2045f5ab60705e712", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8aa875f077c405e2045f5ab60705e712.svg", + "rotationCenterX": 86, + "rotationCenterY": 46 }, { "name": "Centaur-a", - "md5": "45c1890ae0ab41f24f67ea74bec006c9.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 110, - 140, - 1 - ] + "assetId": "d722329bd9373ad80625e5be6d52f3ed", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d722329bd9373ad80625e5be6d52f3ed.svg", + "rotationCenterX": 110, + "rotationCenterY": 140 }, { "name": "Centaur-b", - "md5": "783e8cd43e0c1feca25f639cb5cbc7da.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 110, - 140, - 1 - ] + "assetId": "2373556e776cad3ba4d6ee04fc34550b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2373556e776cad3ba4d6ee04fc34550b.svg", + "rotationCenterX": 110, + "rotationCenterY": 140 }, { "name": "Centaur-c", - "md5": "d09f7160383c6399354c3d9960e852db.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 110, - 140, - 1 - ] + "assetId": "d7aa990538915b7ef1f496d7e8486ade", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d7aa990538915b7ef1f496d7e8486ade.svg", + "rotationCenterX": 110, + "rotationCenterY": 140 }, { "name": "Centaur-d", - "md5": "1ba8b4d384f995688c1b7048d1935697.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 110, - 140, - 1 - ] + "assetId": "c00ffa6c5dd0baf9f456b897ff974377", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c00ffa6c5dd0baf9f456b897ff974377.svg", + "rotationCenterX": 110, + "rotationCenterY": 140 }, { "name": "Champ99-a", - "md5": "7b073f47fbd9421e0d60daacc157f506.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 496, - 612, - 2 - ] + "assetId": "7b073f47fbd9421e0d60daacc157f506", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "7b073f47fbd9421e0d60daacc157f506.png", + "rotationCenterX": 248, + "rotationCenterY": 306 }, { "name": "Champ99-b", - "md5": "d6ae13605610aa008d48b0c8b25a57d3.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 328, - 580, - 2 - ] + "assetId": "d6ae13605610aa008d48b0c8b25a57d3", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "d6ae13605610aa008d48b0c8b25a57d3.png", + "rotationCenterX": 164, + "rotationCenterY": 290 }, { "name": "Champ99-c", - "md5": "26fdff424232926001d20041c3d5673b.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 304, - 540, - 2 - ] + "assetId": "26fdff424232926001d20041c3d5673b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "26fdff424232926001d20041c3d5673b.png", + "rotationCenterX": 152, + "rotationCenterY": 270 }, { "name": "Champ99-d", - "md5": "a28ffc2b129fb359ff22c79c48341267.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 376, - 520, - 2 - ] + "assetId": "a28ffc2b129fb359ff22c79c48341267", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a28ffc2b129fb359ff22c79c48341267.png", + "rotationCenterX": 188, + "rotationCenterY": 260 }, { "name": "Champ99-e", - "md5": "56f3220fa82d99dcfc7d27d433ed01e4.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 380, - 496, - 2 - ] + "assetId": "56f3220fa82d99dcfc7d27d433ed01e4", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "56f3220fa82d99dcfc7d27d433ed01e4.png", + "rotationCenterX": 190, + "rotationCenterY": 248 }, { "name": "Champ99-f", - "md5": "68453506ae4b6b60a3fc6817ba39d492.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 228, - 500, - 2 - ] + "assetId": "68453506ae4b6b60a3fc6817ba39d492", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "68453506ae4b6b60a3fc6817ba39d492.png", + "rotationCenterX": 114, + "rotationCenterY": 250 }, { "name": "Champ99-g", - "md5": "20318b14a332fd618ec91e7c1de8be9a.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 264, - 516, - 2 - ] + "assetId": "20318b14a332fd618ec91e7c1de8be9a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "20318b14a332fd618ec91e7c1de8be9a.png", + "rotationCenterX": 132, + "rotationCenterY": 258 + }, + { + "name": "Character1-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "03bc23a9fa12c1244c83a07a81f20bfd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "03bc23a9fa12c1244c83a07a81f20bfd.svg", + "rotationCenterX": 49.8898709690844, + "rotationCenterY": 124.76092657062226 + }, + { + "name": "Character1-b", + "tags": [ + "disability", + "disabled", + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "f26b130c2c58b812be21d1a9745863a1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f26b130c2c58b812be21d1a9745863a1.svg", + "rotationCenterX": 54.60290188300769, + "rotationCenterY": 122.98040317401274 + }, + { + "name": "Character1-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "cc0be722cf93eef63726bd606ab11c5c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cc0be722cf93eef63726bd606ab11c5c.svg", + "rotationCenterX": 54.60291410943074, + "rotationCenterY": 126.85057804587933 + }, + { + "name": "Character1-d", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "6be261800647c53becb1f93ed31ed13e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6be261800647c53becb1f93ed31ed13e.svg", + "rotationCenterX": 54.602918664146046, + "rotationCenterY": 123.84994499999999 + }, + { + "name": "Character1-e", + "tags": [ + "disability", + "disabled", + "wheelchair", + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "6f78ce6a87d114162ed9fbef30f9a0fd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6f78ce6a87d114162ed9fbef30f9a0fd.svg", + "rotationCenterX": 65.725, + "rotationCenterY": 120.67006881854581 + }, + { + "name": "Character1-f", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "527ba82c5e82f43c8fca0be905dbe20a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "527ba82c5e82f43c8fca0be905dbe20a.svg", + "rotationCenterX": 54.60291455471537, + "rotationCenterY": 126.76429674297606 + }, + { + "name": "Character1-g", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "1e303bb57aac0cb4678e85de4251f3f4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1e303bb57aac0cb4678e85de4251f3f4.svg", + "rotationCenterX": 54.60291143772301, + "rotationCenterY": 125.34991500000001 + }, + { + "name": "Character1-h", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "0f18f9e90d0ed68ebec23da087eb2603", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0f18f9e90d0ed68ebec23da087eb2603.svg", + "rotationCenterX": 54.60291643772288, + "rotationCenterY": 126.34996499999997 + }, + { + "name": "Character1-i", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "5e2f620e5687a36e1954414054c69ccc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5e2f620e5687a36e1954414054c69ccc.svg", + "rotationCenterX": 59.662344830457954, + "rotationCenterY": 124.64983500000002 + }, + { + "name": "Character1-j", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "1044a68cc743f83564e36a6bca16830b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1044a68cc743f83564e36a6bca16830b.svg", + "rotationCenterX": 57.80000000000001, + "rotationCenterY": 127.9064156368213 + }, + { + "name": "Character1-k", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "b37d0e0d46f07cb2cbdc5285e176bf62", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b37d0e0d46f07cb2cbdc5285e176bf62.svg", + "rotationCenterX": 55.00291821886171, + "rotationCenterY": 122.96517404562759 + }, + { + "name": "Character1-l", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "984043e1e7c544999c31f952d1d43a56", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "984043e1e7c544999c31f952d1d43a56.svg", + "rotationCenterX": 56, + "rotationCenterY": 124.849995 + }, + { + "name": "Character1-m", + "tags": [ + "old", + "grandma", + "mom", + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "6d5ddfc69f9c6a3f1d2ded1428237931", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6d5ddfc69f9c6a3f1d2ded1428237931.svg", + "rotationCenterX": 56, + "rotationCenterY": 126.73041545130786 + }, + { + "name": "Character2-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "7084b3baab935de819cc5ab46f7cecf8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7084b3baab935de819cc5ab46f7cecf8.svg", + "rotationCenterX": 47.99056799868501, + "rotationCenterY": 127.80503283089969 + }, + { + "name": "Character2-b", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "df7cbf2913bcea721df2e0360644f193", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "df7cbf2913bcea721df2e0360644f193.svg", + "rotationCenterX": 44.99552075655663, + "rotationCenterY": 125.14875889583388 + }, + { + "name": "Character2-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "e0eacf1e575adc559c41e3a81a892168", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e0eacf1e575adc559c41e3a81a892168.svg", + "rotationCenterX": 47.95809, + "rotationCenterY": 123.53880000000001 + }, + { + "name": "Character2-d", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "e8b44b0e904fd4bb7430c26b743f1520", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e8b44b0e904fd4bb7430c26b743f1520.svg", + "rotationCenterX": 44.995540756556636, + "rotationCenterY": 128.2061488659535 + }, + { + "name": "Character2-e", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "67d425b11544caa0fe9228f355c6485b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "67d425b11544caa0fe9228f355c6485b.svg", + "rotationCenterX": 48.00809000000001, + "rotationCenterY": 122.45 + }, + { + "name": "Character2-f", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "db3f436fcb6fb28828a4c932b60feb5e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "db3f436fcb6fb28828a4c932b60feb5e.svg", + "rotationCenterX": 48.53553350541961, + "rotationCenterY": 126.89993965793039 + }, + { + "name": "Character2-g", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "93e035270675f933b94ee951d7e475e3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "93e035270675f933b94ee951d7e475e3.svg", + "rotationCenterX": 47.53308999999999, + "rotationCenterY": 125.43368141092515 + }, + { + "name": "Character2-h", + "tags": [ + "disability", + "disabled", + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "f4f2778df2840de5a6449a49f3efb599", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f4f2778df2840de5a6449a49f3efb599.svg", + "rotationCenterX": 44.953870756556626, + "rotationCenterY": 128.08851543576878 + }, + { + "name": "Character2-i", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "1cf73a791959e07b5bafe18474f93b78", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1cf73a791959e07b5bafe18474f93b78.svg", + "rotationCenterX": 48.00809000000001, + "rotationCenterY": 126.87082000000001 + }, + { + "name": "Character2-j", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "bf0d808f7bf0c11c338b4fea0a735874", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bf0d808f7bf0c11c338b4fea0a735874.svg", + "rotationCenterX": 48.64271853726632, + "rotationCenterY": 128.03860864267807 }, { "name": "Cheesy Puffs", - "md5": "82772a61ec74974e84c686c61ea0b7d5.png", - "type": "costume", "tags": [ "food" ], - "info": [ - 174, - 144, - 2 - ] + "assetId": "82772a61ec74974e84c686c61ea0b7d5", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "82772a61ec74974e84c686c61ea0b7d5.png", + "rotationCenterX": 87, + "rotationCenterY": 72 }, { "name": "Chick-a", - "md5": "7cd74ad0da97a828e8499ee181c9dbb1.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 32, - 37, - 1 - ] + "assetId": "80abbc427366bca477ccf1ef0faf240a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "80abbc427366bca477ccf1ef0faf240a.svg", + "rotationCenterX": 32, + "rotationCenterY": 37 }, { "name": "Chick-b", - "md5": "07c2dad5f7063fddf7705f4817fad4f6.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 32, - 37, - 1 - ] + "assetId": "5e23c8c28ffd390df7deb2414be37781", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5e23c8c28ffd390df7deb2414be37781.svg", + "rotationCenterX": 32, + "rotationCenterY": 37 }, { "name": "Chick-c", - "md5": "272d3e4503a4123df62f25b67bad6f03.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 21, - 24, - 1 - ] + "assetId": "77911bbe5e11ede35871e8002a26356d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "77911bbe5e11ede35871e8002a26356d.svg", + "rotationCenterX": 21, + "rotationCenterY": 24 }, { "name": "City Bus-a", - "md5": "accf64aceae7997b7533fb51624ca297.svg", - "type": "costume", "tags": [ "city", "bus", "vehicle", "car" ], - "info": [ - 107, - 67, - 1 - ] + "assetId": "e9694adbff9422363e2ea03166015393", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e9694adbff9422363e2ea03166015393.svg", + "rotationCenterX": 106.89883432142048, + "rotationCenterY": 66.13799999999999 }, { "name": "City Bus-b", - "md5": "b9ea0e326ffa98bc58a73bdf17c9542b.svg", - "type": "costume", "tags": [ "city", "bus", "vehicle", "car" ], - "info": [ - 107, - 67, - 1 - ] + "assetId": "7d7e26014a346b894db8ab1819f2167f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7d7e26014a346b894db8ab1819f2167f.svg", + "rotationCenterX": 106.73206234507279, + "rotationCenterY": 66.60003072266578 }, { "name": "Cloud", - "md5": "47005a1f20309f577a03a67abbb6b94e.svg", - "type": "costume", "tags": [ "thing", "weather", "whether" ], - "info": [ - 71, - 45, - 1 - ] + "assetId": "c9630e30e59e4565e785a26f58568904", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c9630e30e59e4565e785a26f58568904.svg", + "rotationCenterX": 71, + "rotationCenterY": 45 }, { "name": "Cloud-a", - "md5": "c7d7de8e29179407f03b054fa640f4d0.svg", - "type": "costume", "tags": [ "flying", "weather", "things", "sky" ], - "info": [ - 76, - 19, - 1 - ] + "assetId": "9f5958f46d21e33d3f6d7caffbe0daa9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9f5958f46d21e33d3f6d7caffbe0daa9.svg", + "rotationCenterX": 76, + "rotationCenterY": 19 }, { "name": "Cloud-b", - "md5": "d8595350ebb460494c9189dabb968336.svg", - "type": "costume", "tags": [ "flying", "weather", "things", "sky" ], - "info": [ - 101, - 20, - 1 - ] + "assetId": "9105d7dd90b5f2a4b85a1e71aff8703f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9105d7dd90b5f2a4b85a1e71aff8703f.svg", + "rotationCenterX": 101, + "rotationCenterY": 20 }, { "name": "Cloud-c", - "md5": "395fc991e64ac0a4aa46758ab4bc65cb.svg", - "type": "costume", "tags": [ "flying", "weather", "things", "sky" ], - "info": [ - 97, - 9, - 1 - ] + "assetId": "0188b2c7c85176b462881c6bca7a7748", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0188b2c7c85176b462881c6bca7a7748.svg", + "rotationCenterX": 97, + "rotationCenterY": 9 }, { "name": "Cloud-d", - "md5": "1767e704acb11ffa409f77cc79ba7e86.svg", - "type": "costume", "tags": [ "flying", "weather", "things", "sky" ], - "info": [ - 87, - 21, - 1 - ] + "assetId": "9f2eccce13e3e5fd212efd59ff1d96a0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9f2eccce13e3e5fd212efd59ff1d96a0.svg", + "rotationCenterX": 87, + "rotationCenterY": 21 }, { "name": "Convertible", - "md5": "5b883f396844ff5cfecd7c95553fa4fb.png", - "type": "costume", "tags": [ "car", "transportation" ], - "info": [ - 360, - 88, - 2 - ] + "assetId": "5b883f396844ff5cfecd7c95553fa4fb", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "5b883f396844ff5cfecd7c95553fa4fb.png", + "rotationCenterX": 180, + "rotationCenterY": 44 }, { "name": "Convertible 3", - "md5": "b6ac3c9e1789cba2302d2ef82d62d019.svg", - "type": "costume", "tags": [ "transportation", "car", "things" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "621817ef84ad81f5690fac95adab2ede", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "621817ef84ad81f5690fac95adab2ede.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Crab-a", - "md5": "114249a5660f7948663d95de575cfd8d.svg", - "type": "costume", "tags": [ "animals", "crustacean", @@ -2289,16 +2588,15 @@ "summer", "arthropod" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "f7cdd2acbc6d7559d33be8675059c79e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f7cdd2acbc6d7559d33be8675059c79e.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Crab-b", - "md5": "9bf050664e68c10d2616e85f2873be09.svg", - "type": "costume", "tags": [ "animals", "crustacean", @@ -2311,356 +2609,331 @@ "summer", "arthropod" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "49839aa1b0feed02a3c759db5f8dee71", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "49839aa1b0feed02a3c759db5f8dee71.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Crystal-a", - "md5": "8520264d48537bea17b7f6d18e9bb558.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 15, - 15, - 1 - ] + "assetId": "ecd1e7805b37db4caf207b7eef2b7a42", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ecd1e7805b37db4caf207b7eef2b7a42.svg", + "rotationCenterX": 15, + "rotationCenterY": 15 }, { "name": "Crystal-b", - "md5": "b62ce1dc2d34741bad036664a01912fb.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 12, - 24, - 1 - ] + "assetId": "0a7b872042cecaf30cc154c0144f002b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0a7b872042cecaf30cc154c0144f002b.svg", + "rotationCenterX": 12, + "rotationCenterY": 24 }, { "name": "Dan-a", - "md5": "307250744e230fb15e7062238bf2634c.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 144, - 392, - 2 - ] + "assetId": "307250744e230fb15e7062238bf2634c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "307250744e230fb15e7062238bf2634c.png", + "rotationCenterX": 72, + "rotationCenterY": 196 }, { "name": "Dan-b", - "md5": "89b55d049f4b3811676311df00681385.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 188, - 400, - 2 - ] + "assetId": "89b55d049f4b3811676311df00681385", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "89b55d049f4b3811676311df00681385.png", + "rotationCenterX": 94, + "rotationCenterY": 200 }, { "name": "Dani-a", - "md5": "e620d1c3143b5ff05a0e4df89576e054.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 37, - 141, - 1 - ] + "assetId": "6518333c95cf96a9aaf73a4a948e002f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6518333c95cf96a9aaf73a4a948e002f.svg", + "rotationCenterX": 37, + "rotationCenterY": 141 }, { "name": "Dani-b", - "md5": "4de54672f1c7af00623a0ee3bc490ba7.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 86, - 141, - 1 - ] + "assetId": "2cba86439098a7e0daa46e0ff8a59f7c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2cba86439098a7e0daa46e0ff8a59f7c.svg", + "rotationCenterX": 86, + "rotationCenterY": 141 }, { "name": "Dani-c", - "md5": "b4a303342f9b7ed6a74059054347dd30.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 37, - 138, - 1 - ] + "assetId": "b5f989e21b56af371209369c331b821e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b5f989e21b56af371209369c331b821e.svg", + "rotationCenterX": 37, + "rotationCenterY": 138 }, { "name": "Dee-a", - "md5": "aa239b7ccdce6bddf06900c709525764.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 52, - 99, - 1 - ] + "assetId": "43bd4c241a94b3aea883472d7dab5afc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "43bd4c241a94b3aea883472d7dab5afc.svg", + "rotationCenterX": 52, + "rotationCenterY": 99 }, { "name": "Dee-b", - "md5": "62b4ac1b735599e21af77c390b178095.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 33, - 99, - 1 - ] + "assetId": "e4c6ada3509f7033d14bac2c0eea49dc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e4c6ada3509f7033d14bac2c0eea49dc.svg", + "rotationCenterX": 33, + "rotationCenterY": 99 }, { "name": "Dee-c", - "md5": "6aa6196ce3245e93b8d1299f33adffcd.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 36, - 102, - 1 - ] + "assetId": "1de3bbee2771b0ff16c4658d5ad98b0b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1de3bbee2771b0ff16c4658d5ad98b0b.svg", + "rotationCenterX": 36, + "rotationCenterY": 102 }, { "name": "Dee-d", - "md5": "2159a6be8f7ff450d0b5e938ca34a3f4.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 33, - 99, - 1 - ] + "assetId": "320a892c86e9b039ba9d6d50a4897276", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "320a892c86e9b039ba9d6d50a4897276.svg", + "rotationCenterX": 33, + "rotationCenterY": 99 }, { "name": "Dee-e", - "md5": "e358d2a7e3a0a680928657161ce81a0a.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 32, - 99, - 1 - ] + "assetId": "c57c4593701165cdea6de9b014c7c06d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c57c4593701165cdea6de9b014c7c06d.svg", + "rotationCenterX": 32, + "rotationCenterY": 99 }, { "name": "Devin-a", - "md5": "b1897e56265470b55fa65fabe2423c55.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 39, - 95, - 1 - ] + "assetId": "5f614017dba0ce6bff063f6c62041035", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5f614017dba0ce6bff063f6c62041035.svg", + "rotationCenterX": 39, + "rotationCenterY": 95 }, { "name": "Devin-b", - "md5": "873fbd641768c8f753a6568da97633e7.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 40, - 96, - 1 - ] + "assetId": "9d7414a719d6cc5e0e9071ede200a29c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9d7414a719d6cc5e0e9071ede200a29c.svg", + "rotationCenterX": 40, + "rotationCenterY": 96 }, { "name": "Devin-c", - "md5": "eac3c03d86cebb42c8f30e373cb7f623.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 32, - 95, - 1 - ] + "assetId": "5ab51aeaa296e955e75a7a3c103ebb99", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5ab51aeaa296e955e75a7a3c103ebb99.svg", + "rotationCenterX": 32, + "rotationCenterY": 95 }, { "name": "Devin-d", - "md5": "fa6a75afb0e4b822b91d8bb20d40c68f.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 41, - 95, - 1 - ] + "assetId": "bfc7c20b64f86d4b207780f3da695fa4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bfc7c20b64f86d4b207780f3da695fa4.svg", + "rotationCenterX": 41, + "rotationCenterY": 95 }, { "name": "Dinosaur1-a", - "md5": "e70ab4de006f3df64e776abf912a62be.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "alex eben meyer", "sauropod" ], - "info": [ - 98, - 92, - 1 - ] + "assetId": "45b02fbd582c15a50e1953830b59b377", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "45b02fbd582c15a50e1953830b59b377.svg", + "rotationCenterX": 98, + "rotationCenterY": 92 }, { "name": "Dinosaur1-b", - "md5": "af2d8211a65dce9871d49fa70671ce0c.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "alex eben meyer", "sauropod" ], - "info": [ - 98, - 47, - 1 - ] + "assetId": "7f89417968116ada83d4ddaad22403b3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7f89417968116ada83d4ddaad22403b3.svg", + "rotationCenterX": 98, + "rotationCenterY": 47 }, { "name": "Dinosaur1-c", - "md5": "78f7e20f0e187fdca81195e4cc134175.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "alex eben meyer", "sauropod" ], - "info": [ - 81, - 91, - 1 - ] + "assetId": "22d94ee5daf557284465425a61186234", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "22d94ee5daf557284465425a61186234.svg", + "rotationCenterX": 81, + "rotationCenterY": 91 }, { "name": "Dinosaur1-d", - "md5": "91f3dba45e8cec7bdff31ed5acde2c85.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "alex eben meyer", "sauropod" ], - "info": [ - 99, - 91, - 1 - ] + "assetId": "af158d368bf3da576369be1130e18acd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "af158d368bf3da576369be1130e18acd.svg", + "rotationCenterX": 99, + "rotationCenterY": 91 }, { "name": "Dinosaur2-a", - "md5": "f49719e8f2440f5d328f2604e97eb71d.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "triceratops", "alex eben meyer" ], - "info": [ - 63, - 67, - 1 - ] + "assetId": "7799f2848136d11f48ca5f3105d336ef", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7799f2848136d11f48ca5f3105d336ef.svg", + "rotationCenterX": 63, + "rotationCenterY": 67 }, { "name": "Dinosaur2-b", - "md5": "1af6b3af3bf2cda862bbe01034a336bb.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "triceratops", "alex eben meyer" ], - "info": [ - 76, - 67, - 1 - ] + "assetId": "d926c5758d130fcfd9a7ae7dac47e47d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d926c5758d130fcfd9a7ae7dac47e47d.svg", + "rotationCenterX": 76, + "rotationCenterY": 67 }, { "name": "Dinosaur2-c", - "md5": "e83b30a4517bbe155e2b4a6367c8f70b.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "triceratops", "alex eben meyer" ], - "info": [ - 64, - 67, - 1 - ] + "assetId": "0e43f8e573bf232505b207b92efac2ac", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0e43f8e573bf232505b207b92efac2ac.svg", + "rotationCenterX": 64, + "rotationCenterY": 67 }, { "name": "Dinosaur2-d", - "md5": "8244f1fb159237179d1caaa69c070060.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "triceratops", "alex eben meyer" ], - "info": [ - 73, - 67, - 1 - ] + "assetId": "e606ba27dfe94daf3d8e3fdf599e37cf", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e606ba27dfe94daf3d8e3fdf599e37cf.svg", + "rotationCenterX": 73, + "rotationCenterY": 67 }, { "name": "Dinosaur3-a", - "md5": "c4867c44f38df5bde472844878d5beea.svg", - "type": "costume", "tags": [ "animals", "dinosaur", @@ -2668,16 +2941,15 @@ "flying", "alex eben meyer" ], - "info": [ - 113, - 42, - 1 - ] + "assetId": "d85ec1b97f73564ef26fec73d5056c68", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d85ec1b97f73564ef26fec73d5056c68.svg", + "rotationCenterX": 113, + "rotationCenterY": 42 }, { "name": "Dinosaur3-b", - "md5": "b682c1e58ea1c6bea737670f57517b6f.svg", - "type": "costume", "tags": [ "animals", "dinosaur", @@ -2685,16 +2957,15 @@ "flying", "alex eben meyer" ], - "info": [ - 113, - 59, - 1 - ] + "assetId": "e731d1f1ebf4bc0ea55b850ffe5a5f96", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e731d1f1ebf4bc0ea55b850ffe5a5f96.svg", + "rotationCenterX": 113, + "rotationCenterY": 59 }, { "name": "Dinosaur3-c", - "md5": "47a617ca48f4782efeeb60199cff801e.svg", - "type": "costume", "tags": [ "animals", "dinosaur", @@ -2702,16 +2973,15 @@ "flying", "alex eben meyer" ], - "info": [ - 47, - 59, - 1 - ] + "assetId": "ae98efa1c3c3700602e1344db86aaf72", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ae98efa1c3c3700602e1344db86aaf72.svg", + "rotationCenterX": 47, + "rotationCenterY": 59 }, { "name": "Dinosaur3-d", - "md5": "710ff3380d6872b04785db97dc0565c6.svg", - "type": "costume", "tags": [ "animals", "dinosaur", @@ -2719,32 +2989,30 @@ "flying", "alex eben meyer" ], - "info": [ - 113, - 65, - 1 - ] + "assetId": "cf4fb77a4e9839f83d3fa5fc0982ccd3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cf4fb77a4e9839f83d3fa5fc0982ccd3.svg", + "rotationCenterX": 113, + "rotationCenterY": 65 }, { "name": "Dinosaur3-e", - "md5": "6f40025c1157f37858adf7fa85090e64.svg", - "type": "costume", "tags": [ "animals", "dinosaur", "pteranodon", "alex eben meyer" ], - "info": [ - 41, - 40, - 1 - ] + "assetId": "5381feb0fc1b50ddc2793342daddffef", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5381feb0fc1b50ddc2793342daddffef.svg", + "rotationCenterX": 41, + "rotationCenterY": 40 }, { "name": "Dinosaur4-a", - "md5": "d87b5e3c45f5d234c7aa47107c788f18.svg", - "type": "costume", "tags": [ "animals", "dinosaur", @@ -2753,16 +3021,15 @@ "trex", "alex eben meyer" ], - "info": [ - 60, - 52, - 1 - ] + "assetId": "a98e3f93853513e7c00bab4c61752312", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a98e3f93853513e7c00bab4c61752312.svg", + "rotationCenterX": 60, + "rotationCenterY": 52 }, { "name": "Dinosaur4-b", - "md5": "cfe906702bbd30bc3bb8acb53079b6b0.svg", - "type": "costume", "tags": [ "animals", "dinosaur", @@ -2771,16 +3038,15 @@ "trex", "alex eben meyer" ], - "info": [ - 87, - 52, - 1 - ] + "assetId": "ac99ef62e3e018b8db550bb2a187cbe9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ac99ef62e3e018b8db550bb2a187cbe9.svg", + "rotationCenterX": 87, + "rotationCenterY": 52 }, { "name": "Dinosaur4-c", - "md5": "1879b07cfe788b0258afada17aa46973.svg", - "type": "costume", "tags": [ "animals", "dinosaur", @@ -2789,16 +3055,15 @@ "trex", "alex eben meyer" ], - "info": [ - 59, - 52, - 1 - ] + "assetId": "c63cca929380152b978d8671fe6003f7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c63cca929380152b978d8671fe6003f7.svg", + "rotationCenterX": 59, + "rotationCenterY": 52 }, { "name": "Dinosaur4-d", - "md5": "52c17657698ab82881ed3ccf83080684.svg", - "type": "costume", "tags": [ "animals", "dinosaur", @@ -2807,16 +3072,15 @@ "trex", "alex eben meyer" ], - "info": [ - 89, - 88, - 1 - ] + "assetId": "723bd1559f8baae4184fa24a6513362b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "723bd1559f8baae4184fa24a6513362b.svg", + "rotationCenterX": 89, + "rotationCenterY": 88 }, { "name": "Diver1", - "md5": "853803d5600b66538474909c5438c8ee.svg", - "type": "costume", "tags": [ "people", "underwater", @@ -2825,16 +3089,15 @@ "summer", "swimming" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "a24f23a0f5d77cfb59721ef8f6bfe5c7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a24f23a0f5d77cfb59721ef8f6bfe5c7.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Diver2", - "md5": "248d3e69ada69a64b1077149ef6a931a.svg", - "type": "costume", "tags": [ "people", "underwater", @@ -2843,275 +3106,246 @@ "summer", "swimming" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "ef8136a42b7d20961756e551bc87b37f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ef8136a42b7d20961756e551bc87b37f.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Dm Freeze", - "md5": "a4b5d644d9abdbcab236acf19b2a2e81.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 440, - 468, - 2 - ] + "assetId": "a4b5d644d9abdbcab236acf19b2a2e81", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a4b5d644d9abdbcab236acf19b2a2e81.png", + "rotationCenterX": 220, + "rotationCenterY": 234 }, { "name": "Dm Pop Down", - "md5": "729812366245c0dafd456339c9d94e08.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 128, - 148, - 2 - ] + "assetId": "729812366245c0dafd456339c9d94e08", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "729812366245c0dafd456339c9d94e08.png", + "rotationCenterX": 64, + "rotationCenterY": 74 }, { "name": "Dm Pop Front", - "md5": "70da166596bb484eae1bfbaad5c03d54.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 184, - 468, - 2 - ] + "assetId": "70da166596bb484eae1bfbaad5c03d54", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "70da166596bb484eae1bfbaad5c03d54.png", + "rotationCenterX": 92, + "rotationCenterY": 234 }, { "name": "Dm Pop L Arm", - "md5": "3cdebabdb41f6c3e84561cf3ea87bac3.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 180, - 476, - 2 - ] + "assetId": "3cdebabdb41f6c3e84561cf3ea87bac3", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "3cdebabdb41f6c3e84561cf3ea87bac3.png", + "rotationCenterX": 90, + "rotationCenterY": 238 }, { "name": "Dm Pop Left", - "md5": "32ec7b5332cfebd1cfed7f6b79c76e67.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 408, - 500, - 2 - ] + "assetId": "32ec7b5332cfebd1cfed7f6b79c76e67", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "32ec7b5332cfebd1cfed7f6b79c76e67.png", + "rotationCenterX": 204, + "rotationCenterY": 250 }, { "name": "Dm Pop R Arm", - "md5": "50faf1630ea383c0b8c77f70a9329797.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 160, - 480, - 2 - ] + "assetId": "50faf1630ea383c0b8c77f70a9329797", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "50faf1630ea383c0b8c77f70a9329797.png", + "rotationCenterX": 80, + "rotationCenterY": 240 }, { "name": "Dm Pop Right", - "md5": "19bd7995d37e3baade673b2fe7cb982b.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 156, - 476, - 2 - ] + "assetId": "19bd7995d37e3baade673b2fe7cb982b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "19bd7995d37e3baade673b2fe7cb982b.png", + "rotationCenterX": 78, + "rotationCenterY": 238 }, { "name": "Dm Pop Stand", - "md5": "05529eb3c09294bd15f57c6f10d5894e.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 200, - 488, - 2 - ] + "assetId": "05529eb3c09294bd15f57c6f10d5894e", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "05529eb3c09294bd15f57c6f10d5894e.png", + "rotationCenterX": 100, + "rotationCenterY": 244 }, { "name": "Dm Stance", - "md5": "dafbdfe454c5ec7029b5c1e07fcabc90.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 212, - 476, - 2 - ] + "assetId": "dafbdfe454c5ec7029b5c1e07fcabc90", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "dafbdfe454c5ec7029b5c1e07fcabc90.png", + "rotationCenterX": 106, + "rotationCenterY": 238 }, { "name": "Dm Top L Leg", - "md5": "344384a6a3f1bdf494cc7af31e928d36.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 460, - 480, - 2 - ] + "assetId": "344384a6a3f1bdf494cc7af31e928d36", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "344384a6a3f1bdf494cc7af31e928d36.png", + "rotationCenterX": 230, + "rotationCenterY": 240 }, { "name": "Dm Top R Leg", - "md5": "12db59633a1709a2c39534d35263791f.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 436, - 464, - 2 - ] - }, - { - "name": "Dm Top R Leg2", - "md5": "fcb8c2b6cf9b7e6ce9df521b2486deb3.png", - "type": "costume", - "tags": [], - "info": [ - 436, - 464, - 2 - ] + "assetId": "12db59633a1709a2c39534d35263791f", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "12db59633a1709a2c39534d35263791f.png", + "rotationCenterX": 218, + "rotationCenterY": 232 }, { "name": "Dm Top Stand", - "md5": "a22da98e5e63de7b2883355afd0184f0.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 164, - 488, - 2 - ] + "assetId": "a22da98e5e63de7b2883355afd0184f0", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a22da98e5e63de7b2883355afd0184f0.png", + "rotationCenterX": 82, + "rotationCenterY": 244 }, { "name": "Dog1-a", - "md5": "39ddefa0cc58f3b1b06474d63d81ef56.svg", - "type": "costume", "tags": [ "animals", "puppy", "puppies", "mammals" ], - "info": [ - 83, - 80, - 1 - ] + "assetId": "35cd78a8a71546a16c530d0b2d7d5a7f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "35cd78a8a71546a16c530d0b2d7d5a7f.svg", + "rotationCenterX": 83, + "rotationCenterY": 80 }, { "name": "Dog1-b", - "md5": "598f4aa3d8f671375d1d2b3acf753416.svg", - "type": "costume", "tags": [ "animals", "puppy", "puppies", "mammals" ], - "info": [ - 83, - 80, - 1 - ] + "assetId": "d5a72e1eb23a91df4b53c0b16493d1e6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d5a72e1eb23a91df4b53c0b16493d1e6.svg", + "rotationCenterX": 83, + "rotationCenterY": 80 }, { "name": "Dog2-a", - "md5": "e921f865b19b27cd99e16a341dbf09c2.svg", - "type": "costume", "tags": [ "animals", "puppy", "puppies", "mammals" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "66b435d333f34d02d5ae49a598bcc5b3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "66b435d333f34d02d5ae49a598bcc5b3.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Dog2-b", - "md5": "891f2fb7daf79ba8b224a9173eeb0a63.svg", - "type": "costume", "tags": [ "animals", "puppy", "puppies", "mammals" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "6afc06388d69f99e28d883126f9b2734", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6afc06388d69f99e28d883126f9b2734.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Dog2-c", - "md5": "cd236d5eef4431dea82983ac9eec406b.svg", - "type": "costume", "tags": [ "animals", "puppy", "puppies", "mammals" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "4708bff29b3a295a03ac1d5e2d16ec75", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4708bff29b3a295a03ac1d5e2d16ec75.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Donut", - "md5": "9e7b4d153421dae04a24571d7e079e85.svg", - "type": "costume", "tags": [ "food", "sweets", @@ -3122,254 +3356,238 @@ "sprinkles", "sprankles" ], - "info": [ - 73, - 15, - 1 - ] + "assetId": "316a67c9e966fd015b4538f54be456db", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "316a67c9e966fd015b4538f54be456db.svg", + "rotationCenterX": 72.11747235252724, + "rotationCenterY": 14.658782444689848 }, { "name": "Dorian-a", - "md5": "503f1d4d0fe61d071e1dd8b5233cceb0.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 60, - 65, - 1 - ] + "assetId": "a9a064a1f28c9e22b594dcea1d46025b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a9a064a1f28c9e22b594dcea1d46025b.svg", + "rotationCenterX": 60, + "rotationCenterY": 65 }, { "name": "Dorian-b", - "md5": "d5f795ef2395bcd11ceee0b0c24c9341.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 60, - 65, - 1 - ] + "assetId": "7d20ec98603857c031c1f4ad2bd8ea51", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7d20ec98603857c031c1f4ad2bd8ea51.svg", + "rotationCenterX": 60, + "rotationCenterY": 65 }, { "name": "Dorian-c", - "md5": "4ad4ddf4251b9b5bcb16d8d77213685f.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 77, - 67, - 1 - ] + "assetId": "8f2be2387efcbb5d4878886adaa2a88e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8f2be2387efcbb5d4878886adaa2a88e.svg", + "rotationCenterX": 77, + "rotationCenterY": 67 }, { "name": "Dorian-d", - "md5": "67fba4e187ecf42749bdd44e64f29192.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 77, - 53, - 1 - ] + "assetId": "603d3dd151984c0eaa2822f70a234c28", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "603d3dd151984c0eaa2822f70a234c28.svg", + "rotationCenterX": 77, + "rotationCenterY": 53 }, { "name": "Dot-a", - "md5": "3b9e6830365aeadb63c21b681777b783.svg", - "type": "costume", "tags": [ "animals", "space", "dog", "wren mcdonald" ], - "info": [ - 52, - 67, - 1 - ] + "assetId": "106461f60e34ce231b323e2dd2d9f05b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "106461f60e34ce231b323e2dd2d9f05b.svg", + "rotationCenterX": 52, + "rotationCenterY": 67 }, { "name": "Dot-b", - "md5": "a80a07906ffbb9671dba3633223859af.svg", - "type": "costume", "tags": [ "animals", "space", "dog", "wren mcdonald" ], - "info": [ - 65, - 67, - 1 - ] + "assetId": "21482022f9930400302bc8ec70643717", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "21482022f9930400302bc8ec70643717.svg", + "rotationCenterX": 65, + "rotationCenterY": 67 }, { "name": "Dot-c", - "md5": "1e1bdccbab5b566beb7f91b5ec01352f.svg", - "type": "costume", "tags": [ "animals", "space", "dog", "wren mcdonald" ], - "info": [ - 51, - 69, - 1 - ] + "assetId": "9e5a6cc6970ce4932a09affba70a45b0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9e5a6cc6970ce4932a09affba70a45b0.svg", + "rotationCenterX": 50.53907324990831, + "rotationCenterY": 68.96764494984302 }, { "name": "Dot-d", - "md5": "06d70d5de0e25f97c1c606e513ab019c.svg", - "type": "costume", "tags": [ "animals", "space", "dog", "wren mcdonald" ], - "info": [ - 57, - 67, - 1 - ] + "assetId": "fb047c94113ee4c6664305a338525e6a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fb047c94113ee4c6664305a338525e6a.svg", + "rotationCenterX": 56.58074394930321, + "rotationCenterY": 66.76919584395038 }, { "name": "Dove-a", - "md5": "6dde2b880ad6ddeaea2a53821befb86d.svg", - "type": "costume", "tags": [ "animals", "bird", "flying" ], - "info": [ - 86, - 59, - 1 - ] + "assetId": "0f83ab55012a7affd94e38250d55a0a0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0f83ab55012a7affd94e38250d55a0a0.svg", + "rotationCenterX": 86, + "rotationCenterY": 59 }, { "name": "Dove-b", - "md5": "1c0bc118044d7f6033bc9cd1ef555590.svg", - "type": "costume", "tags": [ "animals", "bird", "flying" ], - "info": [ - 88, - 57, - 1 - ] + "assetId": "778a699a044a0a8c10f44c3194e21ef2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "778a699a044a0a8c10f44c3194e21ef2.svg", + "rotationCenterX": 88, + "rotationCenterY": 57 }, { "name": "Dragon-a", - "md5": "8aed65cee4cfe22b4f4b8e749092dbbb.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 210, - 150, - 1 - ] + "assetId": "12ead885460d96a19132e5970839d36d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "12ead885460d96a19132e5970839d36d.svg", + "rotationCenterX": 124.12215277545062, + "rotationCenterY": 106.25815347723332 }, { "name": "Dragon-b", - "md5": "c3360f16bb78b136d9911325da9fda49.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 210, - 150, - 1 - ] + "assetId": "3f672475ad4ca5d1f9331cffd4223140", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3f672475ad4ca5d1f9331cffd4223140.svg", + "rotationCenterX": 152.5, + "rotationCenterY": 99 }, { "name": "Dragon-c", - "md5": "e81af82ebde008c167ebc6874df3ecb4.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 210, - 150, - 1 - ] + "assetId": "e0aa0083fa0b97da97600d4dbb2055e5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e0aa0083fa0b97da97600d4dbb2055e5.svg", + "rotationCenterX": 124.4550776985194, + "rotationCenterY": 105.92484014389998 }, { "name": "Dragon1-a", - "md5": "ee0082b436d6d5dc3de33047166e7bf2.svg", - "type": "costume", "tags": [ "fantasy", "reptile", "flying", "fire" ], - "info": [ - 65, - 60, - 1 - ] + "assetId": "0db3c240e7205693dcb17de23d368b4b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0db3c240e7205693dcb17de23d368b4b.svg", + "rotationCenterX": 65, + "rotationCenterY": 60 }, { "name": "Dragon1-b", - "md5": "bb58ce36997fa205a86a085f202837fd.svg", - "type": "costume", "tags": [ "fantasy", "reptile", "flying", "fire" ], - "info": [ - 84, - 56, - 1 - ] + "assetId": "cc6c18538fea63c53d1363a384b243b4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cc6c18538fea63c53d1363a384b243b4.svg", + "rotationCenterX": 84, + "rotationCenterY": 56 }, { "name": "Dragonfly-a", - "md5": "87aaecd2fb73580e6f1f38c5a2e579a9.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -3377,16 +3595,15 @@ "wetland", "owen davey" ], - "info": [ - 108, - 52, - 1 - ] + "assetId": "5cdfe67af929e3fb095e83c9c4b0bd78", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5cdfe67af929e3fb095e83c9c4b0bd78.svg", + "rotationCenterX": 108, + "rotationCenterY": 52 }, { "name": "Dragonfly-b", - "md5": "4e775a49bd5a7a6d38392731924f72e0.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -3394,225 +3611,209 @@ "wetland", "owen davey" ], - "info": [ - 108, - 46, - 1 - ] + "assetId": "17b864c1ddd4b349a6c4bd5709167307", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "17b864c1ddd4b349a6c4bd5709167307.svg", + "rotationCenterX": 108, + "rotationCenterY": 46 }, { "name": "Dress-a", - "md5": "fa7e0b37a324c212d0f1ce0f701a1ae0.svg", - "type": "costume", "tags": [ "fashion" ], - "info": [ - 57, - 83, - 1 - ] + "assetId": "ddbea537af6012ebac18d16d65c07479", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ddbea537af6012ebac18d16d65c07479.svg", + "rotationCenterX": 57, + "rotationCenterY": 83 }, { "name": "Dress-b", - "md5": "308b6ad8e6cfe5c2b2c1e3a1eb9cc404.svg", - "type": "costume", "tags": [ "fashion" ], - "info": [ - 58, - 83, - 1 - ] + "assetId": "4e22e6fd72500f0a25b959283bfd0a32", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4e22e6fd72500f0a25b959283bfd0a32.svg", + "rotationCenterX": 58, + "rotationCenterY": 83 }, { "name": "Dress-c", - "md5": "1f7a725ba285dc97cb142d4b812db624.svg", - "type": "costume", "tags": [ "fashion" ], - "info": [ - 49, - 83, - 1 - ] + "assetId": "c5fb135d89573570010b0d96c94bcec6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c5fb135d89573570010b0d96c94bcec6.svg", + "rotationCenterX": 49, + "rotationCenterY": 83 }, { "name": "Drum-a", - "md5": "dd66742bc2a3cfe5a6f9f540afd2e15c.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 43, - 60, - 1 - ] + "assetId": "ce6971317035091341ec40571c9056e9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ce6971317035091341ec40571c9056e9.svg", + "rotationCenterX": 43, + "rotationCenterY": 60 }, { "name": "Drum-b", - "md5": "9c9d371da382c227e43f09b1a748c554.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 43, - 60, - 1 - ] + "assetId": "47531b5675be696d0540eb120d5d0678", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "47531b5675be696d0540eb120d5d0678.svg", + "rotationCenterX": 43, + "rotationCenterY": 60 }, { "name": "Drum-cymbal-a", - "md5": "d6d41862fda966df1455d2dbff5e1988.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 30, - 74, - 1 - ] + "assetId": "78398692e6fa226568df0374c4358da4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "78398692e6fa226568df0374c4358da4.svg", + "rotationCenterX": 30, + "rotationCenterY": 74 }, { "name": "Drum-cymbal-b", - "md5": "e6b7d7d8874bc4b7be58afe927157554.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 30, - 74, - 1 - ] + "assetId": "08355ec8cc4b3263f502adfdea993cda", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "08355ec8cc4b3263f502adfdea993cda.svg", + "rotationCenterX": 30, + "rotationCenterY": 74 }, { "name": "Drum-highhat-a", - "md5": "81fb79151a63cb096258607451cc2cf5.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 33, - 73, - 1 - ] + "assetId": "15b2a31a57d0cd911ad0b1c265dcf59e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "15b2a31a57d0cd911ad0b1c265dcf59e.svg", + "rotationCenterX": 33, + "rotationCenterY": 73 }, { "name": "Drum-highhat-b", - "md5": "e3c273e4ad1a24583064f9b61fcd753a.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 33, - 73, - 1 - ] + "assetId": "866b3a49ee2a45998940e2d737c4c502", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "866b3a49ee2a45998940e2d737c4c502.svg", + "rotationCenterX": 33, + "rotationCenterY": 73 }, { "name": "Drum-kit", - "md5": "131d040d86ecea62ccd175a8709c7866.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 58, - 78, - 1 - ] + "assetId": "baf6344b6f55b074786a383c1097697d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "baf6344b6f55b074786a383c1097697d.svg", + "rotationCenterX": 58, + "rotationCenterY": 78 }, { "name": "Drum-kit-b", - "md5": "ff14be049146cf9ab142e0951cb9b735.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 58, - 78, - 1 - ] + "assetId": "3f4fb4836338c55f883607c403b2b25e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3f4fb4836338c55f883607c403b2b25e.svg", + "rotationCenterX": 58, + "rotationCenterY": 78 }, { "name": "Drum-snare-a", - "md5": "ace58710b8fa5fca8fb5bbca15e7d19c.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 21, - 32, - 1 - ] + "assetId": "c42bb05aab3cacddcd88712e33ab8df0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c42bb05aab3cacddcd88712e33ab8df0.svg", + "rotationCenterX": 21, + "rotationCenterY": 32 }, { "name": "Drum-snare-b", - "md5": "f6120839d3f73b262571add2444c443a.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 34, - 48, - 1 - ] + "assetId": "28298d93f5282041267a92bd67308107", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "28298d93f5282041267a92bd67308107.svg", + "rotationCenterX": 34, + "rotationCenterY": 48 }, { "name": "Drums Conga-a", - "md5": "b3da94523b6d3df2dd30602399599ab4.svg", - "type": "costume", "tags": [ "drums", " music", " ericr" ], - "info": [ - 65, - 66, - 1 - ] + "assetId": "2b2eacfce0fb1af023e6ca0f5ef6defe", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2b2eacfce0fb1af023e6ca0f5ef6defe.svg", + "rotationCenterX": 65, + "rotationCenterY": 66 }, { "name": "Drums Conga-b", - "md5": "037703c2b65f051c12e9b22dcf93856c.svg", - "type": "costume", "tags": [ "drums", " music", " ericr" ], - "info": [ - 66, - 94, - 1 - ] + "assetId": "bdad2f140cfbd021f38241fc9acc7fd2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bdad2f140cfbd021f38241fc9acc7fd2.svg", + "rotationCenterX": 66, + "rotationCenterY": 94 }, { "name": "Duck", - "md5": "c3baf7eedfbdac8cd1e4f1f1f779dc0c.svg", - "type": "costume", "tags": [ "animals", "chrisg", @@ -3620,357 +3821,334 @@ "birds", "birb" ], - "info": [ - 61, - 59, - 1 - ] + "assetId": "c9837d0454f5f0f73df290af2045359b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c9837d0454f5f0f73df290af2045359b.svg", + "rotationCenterX": 61, + "rotationCenterY": 59 }, { "name": "Earth", - "md5": "64220361b80d2812e9f27fc88ef39027.svg", - "type": "costume", "tags": [ "space", "planet", "earth", "globe" ], - "info": [ - 55, - 55, - 1 - ] + "assetId": "7405b5efa96995bae6853667f8cd145e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7405b5efa96995bae6853667f8cd145e.svg", + "rotationCenterX": 55, + "rotationCenterY": 55 }, { "name": "Easel-a", - "md5": "edc81e35c94c07dc380c43ea9b311394.svg", - "type": "costume", "tags": [ "bedroom", "art", "easel" ], - "info": [ - 69, - 95, - 1 - ] + "assetId": "a4b3714322c11b350f09a75921ae606b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a4b3714322c11b350f09a75921ae606b.svg", + "rotationCenterX": 69, + "rotationCenterY": 95 }, { "name": "Easel-b", - "md5": "cac798e8cf0364fa9a8bc52b85bda6b2.svg", - "type": "costume", "tags": [ "bedroom", "art", "easel" ], - "info": [ - 69, - 95, - 1 - ] + "assetId": "6a736beddc7844538be390c18b7c4361", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6a736beddc7844538be390c18b7c4361.svg", + "rotationCenterX": 69, + "rotationCenterY": 95 }, { "name": "Easel-c", - "md5": "afbf42eb496694afb31f9ea69b3a1a7a.svg", - "type": "costume", "tags": [ "bedroom", "art", "easel" ], - "info": [ - 68, - 94, - 1 - ] + "assetId": "caec09682a7fcdffef4647e8355ba004", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "caec09682a7fcdffef4647e8355ba004.svg", + "rotationCenterX": 68, + "rotationCenterY": 94 }, { "name": "Egg-a", - "md5": "6f1a24a63d16c45425aa2eb64934a278.svg", - "type": "costume", "tags": [ "food", "breakfast", "alex eben meyer" ], - "info": [ - 18, - 26, - 1 - ] + "assetId": "f8ee449298c1446cb0ef281923a4e57a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f8ee449298c1446cb0ef281923a4e57a.svg", + "rotationCenterX": 18, + "rotationCenterY": 26 }, { "name": "Egg-b", - "md5": "7f1320549dd8bfd596c52aec02d898ce.svg", - "type": "costume", "tags": [ "food", "breakfast", "alex eben meyer" ], - "info": [ - 23, - 27, - 1 - ] + "assetId": "fbc629c3b062423e8c09cfacfb1e65f8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fbc629c3b062423e8c09cfacfb1e65f8.svg", + "rotationCenterX": 23, + "rotationCenterY": 27 }, { "name": "Egg-c", - "md5": "62ed6f412aae07a575faa51451009168.svg", - "type": "costume", "tags": [ "food", "breakfast", "alex eben meyer" ], - "info": [ - 28, - 27, - 1 - ] + "assetId": "0d127490af16f8a4ca5ce3212b2391c2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0d127490af16f8a4ca5ce3212b2391c2.svg", + "rotationCenterX": 28, + "rotationCenterY": 27 }, { "name": "Egg-d", - "md5": "0dce0615471ebf1bebc3ba8b4bebbd18.svg", - "type": "costume", "tags": [ "food", "breakfast", "alex eben meyer" ], - "info": [ - 19, - 27, - 1 - ] + "assetId": "b0b6e88ec64b842398200bab562b53e3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b0b6e88ec64b842398200bab562b53e3.svg", + "rotationCenterX": 19, + "rotationCenterY": 27 }, { "name": "Egg-e", - "md5": "3848cf5708b7c712bb7bb9bbcce636aa.svg", - "type": "costume", "tags": [ "food", "breakfast", "alex eben meyer" ], - "info": [ - 20, - 26, - 1 - ] + "assetId": "41535b4742f40e2630746b0c4bec98f2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "41535b4742f40e2630746b0c4bec98f2.svg", + "rotationCenterX": 20, + "rotationCenterY": 26 }, { "name": "Egg-f", - "md5": "0f7e63d9f23038a5012409af93c8dfad.svg", - "type": "costume", "tags": [ "food", "breakfast", "alex eben meyer" ], - "info": [ - 31, - 26, - 1 - ] + "assetId": "bb0505b802140a8cc200c9f8bfce4503", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bb0505b802140a8cc200c9f8bfce4503.svg", + "rotationCenterX": 31, + "rotationCenterY": 26 }, { "name": "Elephant-a", - "md5": "b3515b3805938b0fae4e527aa0b4524e.svg", - "type": "costume", "tags": [ "animals", "mammals", "pachydermata" ], - "info": [ - 107, - 33, - 1 - ] + "assetId": "b59873e9558c1c456200f50e5ab34770", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b59873e9558c1c456200f50e5ab34770.svg", + "rotationCenterX": 107, + "rotationCenterY": 33 }, { "name": "Elephant-b", - "md5": "bce91fa266220d3679a4c19c4e38b1f7.svg", - "type": "costume", "tags": [ "animals", "mammals", "pachydermata" ], - "info": [ - 95, - 40, - 1 - ] + "assetId": "2c9b5e0125d95b8bc511f6bb09b5ea2f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2c9b5e0125d95b8bc511f6bb09b5ea2f.svg", + "rotationCenterX": 95, + "rotationCenterY": 40 }, { "name": "Elf-a", - "md5": "00748a750dc4fd754ce4debb5e3595c0.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 50, - 140, - 1 - ] + "assetId": "e92abad171396a3198455df8557802e5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e92abad171396a3198455df8557802e5.svg", + "rotationCenterX": 50, + "rotationCenterY": 140 }, { "name": "Elf-b", - "md5": "91815a19569ef9f0ef68bca56bb80446.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 50, - 140, - 1 - ] + "assetId": "92ff640b911a8348d2734c0e38bba68c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "92ff640b911a8348d2734c0e38bba68c.svg", + "rotationCenterX": 50, + "rotationCenterY": 140 }, { "name": "Elf-c", - "md5": "8153eaf84bc3db9a671cafd34506243b.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 50, - 140, - 1 - ] + "assetId": "524406c2b1fe253c1565ff516309817e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "524406c2b1fe253c1565ff516309817e.svg", + "rotationCenterX": 50, + "rotationCenterY": 140 }, { "name": "Elf-d", - "md5": "2432797fc69a62fc643505b0ba039169.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 50, - 140, - 1 - ] + "assetId": "808c6fa2eb1cba0de1d17b18c6f41279", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "808c6fa2eb1cba0de1d17b18c6f41279.svg", + "rotationCenterX": 50, + "rotationCenterY": 140 }, { "name": "Elf-e", - "md5": "a06e6c93b143ae2a7b776bd1deee6b59.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 50, - 140, - 1 - ] + "assetId": "ec458328a85f89f06866e2337076ac0a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ec458328a85f89f06866e2337076ac0a.svg", + "rotationCenterX": 50, + "rotationCenterY": 140 }, { "name": "Fairy-a", - "md5": "fe97687c7f1b747bb6f41c252cc5926a.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 85, - 140, - 1 - ] + "assetId": "40d726e17bfd2ffeb8c0aa5393ee1c77", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "40d726e17bfd2ffeb8c0aa5393ee1c77.svg", + "rotationCenterX": 85, + "rotationCenterY": 140 }, { "name": "Fairy-b", - "md5": "c8e0d935b2e4372ecc813705a79be3eb.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 85, - 140, - 1 - ] + "assetId": "bea920473027f43e04c44e588c6cc39a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bea920473027f43e04c44e588c6cc39a.svg", + "rotationCenterX": 85, + "rotationCenterY": 140 }, { "name": "Fairy-c", - "md5": "4d0740d1b5be93256ad235062daa876b.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 85, - 140, - 1 - ] + "assetId": "d4f6163a1610243f55dd9cf1c9875c61", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d4f6163a1610243f55dd9cf1c9875c61.svg", + "rotationCenterX": 85, + "rotationCenterY": 140 }, { "name": "Fairy-d", - "md5": "ca555dadd377431e38a3bc67ece4d36a.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 85, - 140, - 1 - ] + "assetId": "902350bba0d4b4612db1e2e902b6f201", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "902350bba0d4b4612db1e2e902b6f201.svg", + "rotationCenterX": 85, + "rotationCenterY": 140 }, { "name": "Fairy-e", - "md5": "a681f6d6044abdebcdd6634ce85da484.svg", - "type": "costume", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 85, - 140, - 1 - ] + "assetId": "decd31f829032b1d4dcf5efdbd362cb9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "decd31f829032b1d4dcf5efdbd362cb9.svg", + "rotationCenterX": 85, + "rotationCenterY": 140 }, { "name": "Fish-a", - "md5": "8598752b1b7b9892c23817c4ed848e7d.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -3978,16 +4156,15 @@ "underwater", "daria skrybchencko" ], - "info": [ - 63, - 45, - 1 - ] + "assetId": "a9b3d163756621f8395592ad77fb9369", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a9b3d163756621f8395592ad77fb9369.svg", + "rotationCenterX": 63, + "rotationCenterY": 45 }, { "name": "Fish-b", - "md5": "52032e4310f9855b89f873b528a5e928.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -3995,16 +4172,15 @@ "underwater", "daria skrybchencko" ], - "info": [ - 63, - 45, - 1 - ] + "assetId": "7a0c31c0087f342867d4754f8dc57541", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7a0c31c0087f342867d4754f8dc57541.svg", + "rotationCenterX": 63, + "rotationCenterY": 45 }, { "name": "Fish-c", - "md5": "06c139dcfe45bf31ef45e7030b77dc36.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -4012,16 +4188,15 @@ "underwater", "daria skrybchencko" ], - "info": [ - 63, - 45, - 1 - ] + "assetId": "4a3478b3cdc3e8688a671be88c2775fd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4a3478b3cdc3e8688a671be88c2775fd.svg", + "rotationCenterX": 63, + "rotationCenterY": 45 }, { "name": "Fish-d", - "md5": "6a3a2c97374c157e0dbc0a03c2079284.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -4029,48 +4204,45 @@ "underwater", "daria skrybchencko" ], - "info": [ - 63, - 45, - 1 - ] + "assetId": "886e0bb732453eb8d3a849b4eab54943", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "886e0bb732453eb8d3a849b4eab54943.svg", + "rotationCenterX": 63, + "rotationCenterY": 45 }, { "name": "Fishbowl-a", - "md5": "9d1013e04ca7425f680a4b4e6dd6ede6.svg", - "type": "costume", "tags": [ "fishbowl", "fish", "animals", "pet" ], - "info": [ - 28, - 24, - 1 - ] + "assetId": "17c53cf0296f24722ba5b001d513e58f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "17c53cf0296f24722ba5b001d513e58f.svg", + "rotationCenterX": 28, + "rotationCenterY": 24 }, { "name": "Fishbowl-b", - "md5": "0bbfc827e8d2f3da6db82efe95563f93.svg", - "type": "costume", "tags": [ "fishbowl", "fish", "animals", "pet" ], - "info": [ - 28, - 24, - 1 - ] + "assetId": "b3db01c5cda32fe3ea0b48dde5fa8130", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b3db01c5cda32fe3ea0b48dde5fa8130.svg", + "rotationCenterX": 28, + "rotationCenterY": 24 }, { "name": "Food Truck-a", - "md5": "b30ec8ff043e0f1747591d564d56d7fa.svg", - "type": "costume", "tags": [ "city", "truck", @@ -4078,16 +4250,15 @@ "food", "car" ], - "info": [ - 121, - 125, - 1 - ] + "assetId": "a77f9693f87288d023a4632cf019776e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a77f9693f87288d023a4632cf019776e.svg", + "rotationCenterX": 120.82215422900005, + "rotationCenterY": 123.2192 }, { "name": "Food Truck-b", - "md5": "afd51531621d2b33869b47342311b363.svg", - "type": "costume", "tags": [ "city", "truck", @@ -4095,16 +4266,15 @@ "food", "car" ], - "info": [ - 121, - 101, - 1 - ] + "assetId": "f4150de2297a63c3efd125c8e12dd7cc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f4150de2297a63c3efd125c8e12dd7cc.svg", + "rotationCenterX": 120.82199999999996, + "rotationCenterY": 100.675 }, { "name": "Food Truck-c", - "md5": "42f88485a25bf9a683d28957db9f969f.svg", - "type": "costume", "tags": [ "city", "truck", @@ -4112,102 +4282,95 @@ "food", "car" ], - "info": [ - 121, - 92, - 1 - ] + "assetId": "e850e3c93de767519f7f78b38f16ed1d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e850e3c93de767519f7f78b38f16ed1d.svg", + "rotationCenterX": 120.82199999999996, + "rotationCenterY": 91.45043052455627 }, { "name": "Football Running", - "md5": "7ee31371b2eafba57cc5a78fc1a787fe.png", - "type": "costume", "tags": [ "people", "sports" ], - "info": [ - 184, - 400, - 2 - ] + "assetId": "7ee31371b2eafba57cc5a78fc1a787fe", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "7ee31371b2eafba57cc5a78fc1a787fe.png", + "rotationCenterX": 92, + "rotationCenterY": 200 }, { "name": "Football Standing", - "md5": "c717def72c8bd98749284d31b51d7097.png", - "type": "costume", "tags": [ "people", "sports" ], - "info": [ - 148, - 400, - 2 - ] + "assetId": "c717def72c8bd98749284d31b51d7097", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c717def72c8bd98749284d31b51d7097.png", + "rotationCenterX": 74, + "rotationCenterY": 200 }, { "name": "Fortune Cookie", - "md5": "c56dcaa1fa4e3c9740142b93d5982850.png", - "type": "costume", "tags": [ "food" ], - "info": [ - 120, - 124, - 2 - ] + "assetId": "c56dcaa1fa4e3c9740142b93d5982850", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c56dcaa1fa4e3c9740142b93d5982850.png", + "rotationCenterX": 60, + "rotationCenterY": 62 }, { "name": "Fox-a", - "md5": "0aef4633e8580e209020b054eb55982f.svg", - "type": "costume", "tags": [ "animals", "mammal", "robert hunter" ], - "info": [ - 86, - 44, - 1 - ] + "assetId": "9dd59a4514b5373d4f665db78e145636", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9dd59a4514b5373d4f665db78e145636.svg", + "rotationCenterX": 86, + "rotationCenterY": 44 }, { "name": "Fox-b", - "md5": "ae0bb1b900e853ddc8820e0c7bd60f53.svg", - "type": "costume", "tags": [ "animals", "mammal", "robert hunter" ], - "info": [ - 44, - 50, - 1 - ] + "assetId": "2c256eacbb753be361e8e52a0eefde77", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2c256eacbb753be361e8e52a0eefde77.svg", + "rotationCenterX": 44, + "rotationCenterY": 50 }, { "name": "Fox-c", - "md5": "3cc3761cbabdcf13dbfdf04048bfbccf.svg", - "type": "costume", "tags": [ "animals", "mammal", "robert hunter" ], - "info": [ - 48, - 38, - 1 - ] + "assetId": "dd398ed81edb60c91ad4805f4437d2fa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dd398ed81edb60c91ad4805f4437d2fa.svg", + "rotationCenterX": 48, + "rotationCenterY": 38 }, { "name": "Frank-a", - "md5": "8ebcc9a619ae0455df9da42d39f59c1d.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -4217,16 +4380,15 @@ "monster", "alex eben meyer" ], - "info": [ - 97, - 63, - 1 - ] + "assetId": "10d39bb7e31647a465e747cd243b8cd0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "10d39bb7e31647a465e747cd243b8cd0.svg", + "rotationCenterX": 97, + "rotationCenterY": 63 }, { "name": "Frank-b", - "md5": "e605b9d87181c52825ae21597c9c1e07.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -4236,16 +4398,15 @@ "monster", "alex eben meyer" ], - "info": [ - 105, - 63, - 1 - ] + "assetId": "e56e930cc0229d1042a673e7503209c5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e56e930cc0229d1042a673e7503209c5.svg", + "rotationCenterX": 105, + "rotationCenterY": 63 }, { "name": "Frank-c", - "md5": "a53378250f07b6dad161516a5317277e.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -4255,16 +4416,15 @@ "monster", "alex eben meyer" ], - "info": [ - 159, - 59, - 1 - ] + "assetId": "26da9617218493f4f42a1592f21afee8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "26da9617218493f4f42a1592f21afee8.svg", + "rotationCenterX": 159, + "rotationCenterY": 59 }, { "name": "Frank-d", - "md5": "44b4ba838b60f14d6e7ebddf5df4d4c4.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -4274,16 +4434,15 @@ "monster", "alex eben meyer" ], - "info": [ - 106, - 107, - 1 - ] + "assetId": "d16b76a634f7367ce7d6112401a78e57", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d16b76a634f7367ce7d6112401a78e57.svg", + "rotationCenterX": 106, + "rotationCenterY": 107 }, { "name": "Frog", - "md5": "285483a688eed2ff8010c65112f99c41.svg", - "type": "costume", "tags": [ "animals", "amphibian", @@ -4292,91 +4451,85 @@ "green", "wart" ], - "info": [ - 48, - 30, - 1 - ] + "assetId": "390845c11df0924f3b627bafeb3f814e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "390845c11df0924f3b627bafeb3f814e.svg", + "rotationCenterX": 48, + "rotationCenterY": 30 }, { "name": "Frog 2-a", - "md5": "07160d455202e95f5b4b5c842eff6788.svg", - "type": "costume", "tags": [ "animals", "frog", "wetland", "owen davey" ], - "info": [ - 101, - 60, - 1 - ] + "assetId": "f2246c13e4540472c484119bc314d954", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f2246c13e4540472c484119bc314d954.svg", + "rotationCenterX": 101, + "rotationCenterY": 60 }, { "name": "Frog 2-b", - "md5": "9663ddb4d100eb4e18702ee13eca835e.svg", - "type": "costume", "tags": [ "animals", "frog", "wetland", "owen davey" ], - "info": [ - 101, - 58, - 1 - ] + "assetId": "d9f69469090784d8dd68d94c0fd78a50", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d9f69469090784d8dd68d94c0fd78a50.svg", + "rotationCenterX": 101, + "rotationCenterY": 58 }, { "name": "Frog 2-c", - "md5": "5c2ec9de8d1695cd4b59beea45046560.svg", - "type": "costume", "tags": [ "animals", "frog", "wetland", "owen davey" ], - "info": [ - 96, - 87, - 1 - ] + "assetId": "0717f446c991aac7df2fe4d6590354e7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0717f446c991aac7df2fe4d6590354e7.svg", + "rotationCenterX": 96, + "rotationCenterY": 87 }, { "name": "Fruit Platter", - "md5": "6c3252378da3334f63eebddbed3fae91.png", - "type": "costume", "tags": [ "food" ], - "info": [ - 296, - 156, - 2 - ] + "assetId": "6c3252378da3334f63eebddbed3fae91", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "6c3252378da3334f63eebddbed3fae91.png", + "rotationCenterX": 148, + "rotationCenterY": 78 }, { "name": "Fruitsalad", - "md5": "dbf8cc34f7ca18b4a008d2890dba56b7.svg", - "type": "costume", "tags": [ "food", "fruit" ], - "info": [ - 30, - 22, - 1 - ] + "assetId": "2e6ef315101433b78e38719e8cc630c2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2e6ef315101433b78e38719e8cc630c2.svg", + "rotationCenterX": 30, + "rotationCenterY": 22 }, { "name": "Ghost-a", - "md5": "fca9fdf3ec9aafcfbd915105fecb6ce6.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -4385,16 +4538,15 @@ "monster", "alex eben meyer" ], - "info": [ - 37, - 68, - 1 - ] + "assetId": "f522b08c5757569ad289d67bce290cd0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f522b08c5757569ad289d67bce290cd0.svg", + "rotationCenterX": 37, + "rotationCenterY": 68 }, { "name": "Ghost-b", - "md5": "9d6e168d234d023476324cb72430e645.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -4403,16 +4555,15 @@ "monster", "alex eben meyer" ], - "info": [ - 41, - 68, - 1 - ] + "assetId": "d1d89391f1d9c74557e504456d58a002", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d1d89391f1d9c74557e504456d58a002.svg", + "rotationCenterX": 41, + "rotationCenterY": 68 }, { "name": "Ghost-c", - "md5": "8296c8aa0782b53c5188dabde5fce10f.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -4421,16 +4572,15 @@ "monster", "alex eben meyer" ], - "info": [ - 61, - 72, - 1 - ] + "assetId": "634744e3f98bee53e9cb477a63aa9b21", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "634744e3f98bee53e9cb477a63aa9b21.svg", + "rotationCenterX": 61, + "rotationCenterY": 72 }, { "name": "Ghost-d", - "md5": "2a3c6eb1faa6b2e4403c64945d59e122.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -4439,466 +4589,435 @@ "monster", "alex eben meyer" ], - "info": [ - 78, - 69, - 1 - ] + "assetId": "40ba3a0b5b3899a655fd8867229d4ee3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "40ba3a0b5b3899a655fd8867229d4ee3.svg", + "rotationCenterX": 78, + "rotationCenterY": 69 }, { "name": "Gift-a", - "md5": "abeae2217b3ce67b1ff761cd7a89274d.svg", - "type": "costume", "tags": [ "thing", "holiday" ], - "info": [ - 33, - 25, - 1 - ] + "assetId": "0fdd104de718c5fc4a65da429468bdbd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0fdd104de718c5fc4a65da429468bdbd.svg", + "rotationCenterX": 33, + "rotationCenterY": 25 }, { "name": "Gift-b", - "md5": "5cae973c98f2d98b51e6c6b3c9602f8c.svg", - "type": "costume", "tags": [ "thing", "holiday" ], - "info": [ - 33, - 26, - 1 - ] + "assetId": "6cbeda5d391c6d107f0b853222f344d9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6cbeda5d391c6d107f0b853222f344d9.svg", + "rotationCenterX": 33, + "rotationCenterY": 26 }, { "name": "Giga Walk1", - "md5": "f76bc420011db2cdb2de378c1536f6da.svg", - "type": "costume", "tags": [ "fantasy", "walking" ], - "info": [ - 70, - 107, - 1 - ] + "assetId": "3afad833094d8dff1c4ff79edcaa13d0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3afad833094d8dff1c4ff79edcaa13d0.svg", + "rotationCenterX": 70, + "rotationCenterY": 107 }, { "name": "Giga Walk2", - "md5": "43b5874e8a54f93bd02727f0abf6905b.svg", - "type": "costume", "tags": [ "fantasy", "walking" ], - "info": [ - 71, - 107, - 1 - ] + "assetId": "d27716e022fb5f747d7b09fe6eeeca06", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d27716e022fb5f747d7b09fe6eeeca06.svg", + "rotationCenterX": 71, + "rotationCenterY": 107 }, { "name": "Giga Walk3", - "md5": "9aab3bbb375765391978be4f6d478ab3.svg", - "type": "costume", "tags": [ "fantasy", "walking" ], - "info": [ - 71, - 107, - 1 - ] + "assetId": "db55131bf54f96e8986d9b30730e42ce", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "db55131bf54f96e8986d9b30730e42ce.svg", + "rotationCenterX": 71, + "rotationCenterY": 107 }, { "name": "Giga-a", - "md5": "93cb048a1d199f92424b9c097fa5fa38.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 72, - 96, - 1 - ] + "assetId": "92161a11e851ecda94cbbb985018fed6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "92161a11e851ecda94cbbb985018fed6.svg", + "rotationCenterX": 72, + "rotationCenterY": 96 }, { "name": "Giga-b", - "md5": "528613711a7eae3a929025be04db081c.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 72, - 96, - 1 - ] + "assetId": "bc706a7648342aaacac9050378b40c43", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bc706a7648342aaacac9050378b40c43.svg", + "rotationCenterX": 72, + "rotationCenterY": 96 }, { "name": "Giga-c", - "md5": "ee4dd21d7ca6d1b889ee25d245cbcc66.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 73, - 96, - 1 - ] + "assetId": "337b338b2b10176221e638ac537854e6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "337b338b2b10176221e638ac537854e6.svg", + "rotationCenterX": 73, + "rotationCenterY": 96 }, { "name": "Giga-d", - "md5": "7708e2d9f83a01476ee6d17aa540ddf1.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "mad" ], - "info": [ - 73, - 96, - 1 - ] + "assetId": "db15886cfdcb5e2f4459e9074e3990a1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "db15886cfdcb5e2f4459e9074e3990a1.svg", + "rotationCenterX": 73, + "rotationCenterY": 96 }, { "name": "Giraffe-a", - "md5": "2d3955997d2b3aa8dad9389c61de384f.svg", - "type": "costume", "tags": [ "animals", "savanna", "robert hunter" ], - "info": [ - 87, - 132, - 1 - ] + "assetId": "43e89629fb9df7051eaf307c695424fc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "43e89629fb9df7051eaf307c695424fc.svg", + "rotationCenterX": 87, + "rotationCenterY": 132 }, { "name": "Giraffe-b", - "md5": "b129c6016fedc7d03fb7f0a06363af28.svg", - "type": "costume", "tags": [ "animals", "savanna", "robert hunter" ], - "info": [ - 82, - 132, - 1 - ] + "assetId": "ef1fca2ae13d49d9dd2c6cfc211a687c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ef1fca2ae13d49d9dd2c6cfc211a687c.svg", + "rotationCenterX": 82, + "rotationCenterY": 132 }, { "name": "Giraffe-c", - "md5": "1af467957df0350765ba9a10e8d85572.svg", - "type": "costume", "tags": [ "animals", "savanna", "robert hunter" ], - "info": [ - 86, - 132, - 1 - ] + "assetId": "cfd93a103479993aee4d680655e39d8d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cfd93a103479993aee4d680655e39d8d.svg", + "rotationCenterX": 86, + "rotationCenterY": 132 }, { "name": "Glass Water-a", - "md5": "c364b9e1f4bcdc61705032d89eaaa0a1.svg", - "type": "costume", "tags": [ "food", "things", "underwater" ], - "info": [ - 39, - 48, - 1 - ] + "assetId": "cbf21cf1b057852f91135d27ebbf11ce", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cbf21cf1b057852f91135d27ebbf11ce.svg", + "rotationCenterX": 39, + "rotationCenterY": 48 }, { "name": "Glass Water-b", - "md5": "bc07ce6a2004ac91ce704531a1c526e5.svg", - "type": "costume", "tags": [ "food", "things", "eaten", "empty" ], - "info": [ - 39, - 48, - 1 - ] + "assetId": "ca70c69ef1f797d353581a3f76116ae3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ca70c69ef1f797d353581a3f76116ae3.svg", + "rotationCenterX": 39, + "rotationCenterY": 48 }, { "name": "Glasses-a", - "md5": "f42180039c37c3b221e1e426b92e5092.svg", - "type": "costume", "tags": [ "fashion", "glasses" ], - "info": [ - 33, - 13, - 1 - ] + "assetId": "705035328ac53d5ce1aa5a1ed1c2d172", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "705035328ac53d5ce1aa5a1ed1c2d172.svg", + "rotationCenterX": 33, + "rotationCenterY": 13 }, { "name": "Glasses-b", - "md5": "58b728ee8c1f739e2de13800dee562de.svg", - "type": "costume", "tags": [ "fashion", "glasses" ], - "info": [ - 35, - 14, - 1 - ] + "assetId": "f2a02d0e7431147b8a4a282e02a8e6a4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f2a02d0e7431147b8a4a282e02a8e6a4.svg", + "rotationCenterX": 35, + "rotationCenterY": 14 }, { "name": "Glasses-c", - "md5": "d8bf373e1fcbb46f6eb8d225ba01613e.svg", - "type": "costume", "tags": [ "fashion", "glasses" ], - "info": [ - 34, - 12, - 1 - ] + "assetId": "9e2f75d3a09f3f10d554ba8380c3ae52", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9e2f75d3a09f3f10d554ba8380c3ae52.svg", + "rotationCenterX": 34, + "rotationCenterY": 12 }, { "name": "Glasses-e", - "md5": "6b706718a8c350522c3f29fb82b40327.svg", - "type": "costume", "tags": [ "fashion", "glasses" ], - "info": [ - 39, - 53, - 1 - ] + "assetId": "acd85b36e6b8d93ba4194ee2ea334207", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "acd85b36e6b8d93ba4194ee2ea334207.svg", + "rotationCenterX": 39, + "rotationCenterY": 53 }, { "name": "Goalie-a", - "md5": "dbf6a1b0402377be2cd8c75a3b4fdf53.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 59, - 63, - 1 - ] + "assetId": "a554f2a9b49a09ec67d1fd7ecfbcddcd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a554f2a9b49a09ec67d1fd7ecfbcddcd.svg", + "rotationCenterX": 59, + "rotationCenterY": 63 }, { "name": "Goalie-b", - "md5": "987d8c2bb6c26cad265a3aa339fe432e.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 59, - 63, - 1 - ] + "assetId": "59eedd0a23c3c983d386a0c125991c7f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "59eedd0a23c3c983d386a0c125991c7f.svg", + "rotationCenterX": 59, + "rotationCenterY": 63 }, { "name": "Goalie-c", - "md5": "52609ef559a29052e72efe08d1384980.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 62, - 61, - 1 - ] + "assetId": "f2e7ba53f3a28c4359cb0d3e3cb4001a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f2e7ba53f3a28c4359cb0d3e3cb4001a.svg", + "rotationCenterX": 62, + "rotationCenterY": 61 }, { "name": "Goalie-d", - "md5": "a4de535b4c4a7c6a65e6736491e01497.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 63, - 62, - 1 - ] + "assetId": "63f2955298d59dd22dc7b7c6a9c521e2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "63f2955298d59dd22dc7b7c6a9c521e2.svg", + "rotationCenterX": 63, + "rotationCenterY": 62 }, { "name": "Goalie-e", - "md5": "ca55a23f3172e9fff061484e00493d2c.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 59, - 69, - 1 - ] + "assetId": "eb096e2b4234f5f8ee1f2c44429eaa1a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "eb096e2b4234f5f8ee1f2c44429eaa1a.svg", + "rotationCenterX": 59, + "rotationCenterY": 69 }, { "name": "Goblin-a", - "md5": "f10eaedff51f50f0809a7b4b310337fa.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "emotions" ], - "info": [ - 40, - 80, - 1 - ] + "assetId": "3f08380f25062b8055a1800f5dad14bd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3f08380f25062b8055a1800f5dad14bd.svg", + "rotationCenterX": 40, + "rotationCenterY": 80 }, { "name": "Goblin-b", - "md5": "71e7c77d89299cd99739b1216fc03a85.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "emotions" ], - "info": [ - 40, - 80, - 1 - ] + "assetId": "b8604b8039d6b633015aaf17d74d5d5b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b8604b8039d6b633015aaf17d74d5d5b.svg", + "rotationCenterX": 40, + "rotationCenterY": 80 }, { "name": "Goblin-c", - "md5": "ab0611427d6f9b54d83672cf9e554876.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "emotions" ], - "info": [ - 40, - 80, - 1 - ] + "assetId": "2add9ef4eaa25f8915406dcfd8bafc9f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2add9ef4eaa25f8915406dcfd8bafc9f.svg", + "rotationCenterX": 40, + "rotationCenterY": 80 }, { "name": "Goblin-d", - "md5": "87dd413e7a8545bea9b3da208a5d5735.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "emotions" ], - "info": [ - 40, - 80, - 1 - ] + "assetId": "afb9fe328adae617ee3375366fca02e7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "afb9fe328adae617ee3375366fca02e7.svg", + "rotationCenterX": 40, + "rotationCenterY": 80 }, { "name": "Gobo-a", - "md5": "1f5ea0d12f85aed2e471cdd21b0bd6d7.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "jenkins", "ganglia" ], - "info": [ - 47, - 55, - 1 - ] + "assetId": "f505a4e9eab5e40e2669a4462dba4c90", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f505a4e9eab5e40e2669a4462dba4c90.svg", + "rotationCenterX": 47, + "rotationCenterY": 55 }, { "name": "Gobo-b", - "md5": "73e493e4abd5d0954b677b97abcb7116.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "jenkins", "ganglia" ], - "info": [ - 47, - 55, - 1 - ] + "assetId": "5c0896569305ab177d87caa31aad2a72", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5c0896569305ab177d87caa31aad2a72.svg", + "rotationCenterX": 47, + "rotationCenterY": 55 }, { "name": "Gobo-c", - "md5": "bc68a6bdf300df7b53d73b38f74c844e.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "jenkins", "ganglia" ], - "info": [ - 47, - 55, - 1 - ] + "assetId": "9d8021c216fb92cc708e1e96f3ed2b52", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9d8021c216fb92cc708e1e96f3ed2b52.svg", + "rotationCenterX": 47, + "rotationCenterY": 55 }, { "name": "Grasshopper-a", - "md5": "fcddf46c04479b07b2944ee36d0b7635.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -4906,16 +5025,15 @@ "wetland", "owen davey" ], - "info": [ - 103, - 43, - 1 - ] + "assetId": "e7210a370837dd1e4ebc1a56a973b7f6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e7210a370837dd1e4ebc1a56a973b7f6.svg", + "rotationCenterX": 103, + "rotationCenterY": 43 }, { "name": "Grasshopper-b", - "md5": "40b48bcb95f06a2281ba1cad60c8c504.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -4923,16 +5041,15 @@ "wetland", "owen davey" ], - "info": [ - 114, - 118, - 1 - ] + "assetId": "529644c5ecdca63adafd87777e341ad7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "529644c5ecdca63adafd87777e341ad7.svg", + "rotationCenterX": 114, + "rotationCenterY": 118 }, { "name": "Grasshopper-c", - "md5": "fa9a02a4a6df86612365dc65c065d2cb.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -4940,16 +5057,15 @@ "wetland", "owen davey" ], - "info": [ - 34, - 170, - 1 - ] + "assetId": "cf2ac769df444137b4c1eec472fa4b92", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cf2ac769df444137b4c1eec472fa4b92.svg", + "rotationCenterX": 34, + "rotationCenterY": 170 }, { "name": "Grasshopper-d", - "md5": "f80ba703a7fb17a870ec0818add2f3b8.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -4957,16 +5073,15 @@ "wetland", "owen davey" ], - "info": [ - 70, - 100, - 1 - ] + "assetId": "a7c638b8aa86f2a758830f8c2b0e4cf5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a7c638b8aa86f2a758830f8c2b0e4cf5.svg", + "rotationCenterX": 70, + "rotationCenterY": 100 }, { "name": "Grasshopper-e", - "md5": "6519eeaa65eac086198d6901cf0a5b9e.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -4974,16 +5089,15 @@ "wetland", "owen davey" ], - "info": [ - 56, - 86, - 1 - ] + "assetId": "d4f3dfe69be6537e73544381408a820d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d4f3dfe69be6537e73544381408a820d.svg", + "rotationCenterX": 56, + "rotationCenterY": 86 }, { "name": "Grasshopper-f", - "md5": "8d865e6bbea03cda509d766085b883f4.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -4991,177 +5105,165 @@ "wetland", "owen davey" ], - "info": [ - 22, - 54, - 1 - ] + "assetId": "93550d8abde130ad149904c4448f8b65", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "93550d8abde130ad149904c4448f8b65.svg", + "rotationCenterX": 22, + "rotationCenterY": 54 }, { "name": "Green Flag", - "md5": "173e20ac537d2c278ed621be3db3fc87.svg", - "type": "costume", "tags": [ "thing" ], - "info": [ - 70, - 30, - 1 - ] + "assetId": "2bbfd072183a67db5eddb923fe0726b3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2bbfd072183a67db5eddb923fe0726b3.svg", + "rotationCenterX": 70, + "rotationCenterY": 30 }, { "name": "Griffin-a", - "md5": "1ceea469ec409d0a3a13bd04ea1e756c.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 127, - 109, - 1 - ] + "assetId": "a31166d45903206b52cb0f0a0cb687b5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a31166d45903206b52cb0f0a0cb687b5.svg", + "rotationCenterX": 127, + "rotationCenterY": 109 }, { "name": "Griffin-b", - "md5": "1dd10e8e53c048ad6f95c82501801f48.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 127, - 76, - 1 - ] + "assetId": "102f6200c13bd60afa9538c712776fb0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "102f6200c13bd60afa9538c712776fb0.svg", + "rotationCenterX": 127, + "rotationCenterY": 76 }, { "name": "Griffin-c", - "md5": "e4d7c3c18463f15083683ce0826adcee.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 127, - 109, - 1 - ] + "assetId": "157d3665cebcd41fa814b9217af99476", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "157d3665cebcd41fa814b9217af99476.svg", + "rotationCenterX": 127, + "rotationCenterY": 109 }, { "name": "Griffin-d", - "md5": "54504b1d8dedf816b0bd599e768f191d.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 144, - 69, - 1 - ] + "assetId": "b8c8745820a341afec08e77f4a254551", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b8c8745820a341afec08e77f4a254551.svg", + "rotationCenterX": 144, + "rotationCenterY": 69 }, { "name": "Guitar-a", - "md5": "cb8c2a5e69da7538e1dd73cb7ff4a666.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 47, - 83, - 1 - ] + "assetId": "8704489dcf1a3ca93c5db40ebe5acd38", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8704489dcf1a3ca93c5db40ebe5acd38.svg", + "rotationCenterX": 47, + "rotationCenterY": 83 }, { "name": "Guitar-b", - "md5": "fed44bd1091628c060f45060a84f2885.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 47, - 83, - 1 - ] + "assetId": "e0423f4743f39456dade16fa1223d6b0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e0423f4743f39456dade16fa1223d6b0.svg", + "rotationCenterX": 47, + "rotationCenterY": 83 }, { "name": "Guitar-electric1-a", - "md5": "b2b469b9d11fd23bdd671eab94dc58ff.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 42, - 85, - 1 - ] + "assetId": "57c6d7dc148576cb2f36e53dea49260a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "57c6d7dc148576cb2f36e53dea49260a.svg", + "rotationCenterX": 42, + "rotationCenterY": 85 }, { "name": "Guitar-electric1-b", - "md5": "3632184c19c66a088a99568570d61b13.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 42, - 85, - 1 - ] + "assetId": "677aed0b1168caf4b3ec565b9104dbe0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "677aed0b1168caf4b3ec565b9104dbe0.svg", + "rotationCenterX": 42, + "rotationCenterY": 85 }, { "name": "Guitar-electric2-a", - "md5": "1fc433b89038f9e16092c9f4d7514cca.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 38, - 94, - 1 - ] + "assetId": "bb88e6a8a08a4034cc155b1137743ca1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bb88e6a8a08a4034cc155b1137743ca1.svg", + "rotationCenterX": 38, + "rotationCenterY": 94 }, { "name": "Guitar-electric2-b", - "md5": "7b843dbc93d4b2ea31fa67cca3d5077c.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 38, - 94, - 1 - ] + "assetId": "83db2d0e342257e534ccdf0ec17bf668", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "83db2d0e342257e534ccdf0ec17bf668.svg", + "rotationCenterX": 38, + "rotationCenterY": 94 }, { "name": "Hannah-a", - "md5": "b983d99560313e38b4b3cd36cbd5f0d1.png", - "type": "costume", "tags": [ "people", "run", @@ -5169,44 +5271,41 @@ "sprint", "sports" ], - "info": [ - 276, - 252, - 2 - ] + "assetId": "b983d99560313e38b4b3cd36cbd5f0d1", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "b983d99560313e38b4b3cd36cbd5f0d1.png", + "rotationCenterX": 138, + "rotationCenterY": 126 }, { "name": "Hannah-b", - "md5": "d0c3b4b24fbf1152de3ebb68f6b875ae.png", - "type": "costume", "tags": [ "people", "sports" ], - "info": [ - 96, - 320, - 2 - ] + "assetId": "d0c3b4b24fbf1152de3ebb68f6b875ae", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "d0c3b4b24fbf1152de3ebb68f6b875ae.png", + "rotationCenterX": 48, + "rotationCenterY": 160 }, { "name": "Hannah-c", - "md5": "5fdce07935156bbcf943793fa84e826c.png", - "type": "costume", "tags": [ "people", "sports" ], - "info": [ - 340, - 260, - 2 - ] + "assetId": "5fdce07935156bbcf943793fa84e826c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "5fdce07935156bbcf943793fa84e826c.png", + "rotationCenterX": 170, + "rotationCenterY": 130 }, { "name": "Hare-a", - "md5": "8209c43050785e3c4276f84abb52c245.svg", - "type": "costume", "tags": [ "animals", "rabbit", @@ -5218,16 +5317,15 @@ "arctic", "robert hunter" ], - "info": [ - 29, - 50, - 1 - ] + "assetId": "7269593d83b6f9eae512997f541a7417", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7269593d83b6f9eae512997f541a7417.svg", + "rotationCenterX": 29, + "rotationCenterY": 50 }, { "name": "Hare-b", - "md5": "62796e48dc8e540398e0575d79f562fe.svg", - "type": "costume", "tags": [ "animals", "rabbit", @@ -5239,16 +5337,15 @@ "arctic", "robert hunter" ], - "info": [ - 57, - 35, - 1 - ] + "assetId": "c8dbb4302dd489a201938c203018c2f0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c8dbb4302dd489a201938c203018c2f0.svg", + "rotationCenterX": 57, + "rotationCenterY": 35 }, { "name": "Hare-c", - "md5": "4bc5c29283dfff4b9c876cc23540a4b5.svg", - "type": "costume", "tags": [ "animals", "rabbit", @@ -5260,203 +5357,189 @@ "arctic", "robert hunter" ], - "info": [ - 40, - 40, - 1 - ] + "assetId": "85a3b8c151e10576fa531a4293fdac00", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "85a3b8c151e10576fa531a4293fdac00.svg", + "rotationCenterX": 40, + "rotationCenterY": 40 }, { "name": "Harper-a", - "md5": "0d5979db40b0a4dcaa601fb7679ef71c.svg", - "type": "costume", "tags": [ "people", "fashion" ], - "info": [ - 54, - 143, - 1 - ] + "assetId": "3a0973a042ee16e816c568651316d5d4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3a0973a042ee16e816c568651316d5d4.svg", + "rotationCenterX": 54, + "rotationCenterY": 143 }, { "name": "Harper-b", - "md5": "c435a1fcdf5f60a29f620fa800e391e0.svg", - "type": "costume", "tags": [ "people", "fashion" ], - "info": [ - 54, - 134, - 1 - ] + "assetId": "e407fa0ed992393d12d0a108c11e2fa6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e407fa0ed992393d12d0a108c11e2fa6.svg", + "rotationCenterX": 54, + "rotationCenterY": 134 }, { "name": "Harper-c", - "md5": "9c35763ec87604ff1b4848ff18e0b040.svg", - "type": "costume", "tags": [ "people", "fashion" ], - "info": [ - 56, - 138, - 1 - ] + "assetId": "98ce6e6bb99f8ba116f127fdf2e739fd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "98ce6e6bb99f8ba116f127fdf2e739fd.svg", + "rotationCenterX": 56, + "rotationCenterY": 138 }, { "name": "Hat-a", - "md5": "52540f9dba4537f79f1ad3067d44e3f6.svg", - "type": "costume", "tags": [ "fashion", "hat" ], - "info": [ - 37, - 30, - 1 - ] + "assetId": "c632719725400c604fcadf0858ce2b2c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c632719725400c604fcadf0858ce2b2c.svg", + "rotationCenterX": 37, + "rotationCenterY": 30 }, { "name": "Hat-b", - "md5": "874462b3e079308d775629c235940d8f.svg", - "type": "costume", "tags": [ "fashion", "hat" ], - "info": [ - 39, - 22, - 1 - ] + "assetId": "0aed53a86d92ec2283068000ac97a60b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0aed53a86d92ec2283068000ac97a60b.svg", + "rotationCenterX": 39, + "rotationCenterY": 22 }, { "name": "Hat-c", - "md5": "b40accecd4bd57fed8bdb96ee15e5c05.svg", - "type": "costume", "tags": [ "fashion", "hat" ], - "info": [ - 40, - 27, - 1 - ] + "assetId": "13e382ae3f05a9a23e0b64ca23230438", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "13e382ae3f05a9a23e0b64ca23230438.svg", + "rotationCenterX": 40, + "rotationCenterY": 27 }, { "name": "Hat-d", - "md5": "a8ef874bd7542fec62785eac80019417.svg", - "type": "costume", "tags": [ "fashion", "hat" ], - "info": [ - 45, - 30, - 1 - ] + "assetId": "6349e36da9897a2f89bdbf5c77dbdacb", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6349e36da9897a2f89bdbf5c77dbdacb.svg", + "rotationCenterX": 45, + "rotationCenterY": 30 }, { "name": "Hatchling-a", - "md5": "25e4da6bcd209c60690729f5c7016b83.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 15, - 23, - 1 - ] + "assetId": "55f7d457eb0af78cb309ca47497c490f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "55f7d457eb0af78cb309ca47497c490f.svg", + "rotationCenterX": 15, + "rotationCenterY": 23 }, { "name": "Hatchling-b", - "md5": "b0f8451e7c52cf2b94b94c4a2051398b.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 16, - 38, - 1 - ] + "assetId": "0e5c295a043d5e183a98046e4f734b72", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0e5c295a043d5e183a98046e4f734b72.svg", + "rotationCenterX": 16, + "rotationCenterY": 38 }, { "name": "Hatchling-c", - "md5": "5f70ae46957bf425121ac532dc6a2f34.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 38, - 72, - 1 - ] + "assetId": "f27d557be70a9522fae4392bfd4f5249", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f27d557be70a9522fae4392bfd4f5249.svg", + "rotationCenterX": 38, + "rotationCenterY": 72 }, { "name": "Heart Code", - "md5": "1bc73fc472df673a1089d965b537f5ac.svg", - "type": "costume", "tags": [ "food", "sweethearts" ], - "info": [ - 73, - 72, - 1 - ] + "assetId": "288976865e8c5db717d859e915606d82", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "288976865e8c5db717d859e915606d82.svg", + "rotationCenterX": 73, + "rotationCenterY": 72 }, { "name": "Heart Face", - "md5": "4ab84263da32069cf97cc0fa52729a0d.svg", - "type": "costume", "tags": [ "emotions" ], - "info": [ - 59, - 52, - 1 - ] + "assetId": "989770846f8cd1628b48bbe91d0a7d0d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "989770846f8cd1628b48bbe91d0a7d0d.svg", + "rotationCenterX": 59, + "rotationCenterY": 52 }, { "name": "Heart Love", - "md5": "a9d25b961eef81521c8ed38beb1456a0.svg", - "type": "costume", "tags": [ "food", "sweethearts" ], - "info": [ - 73, - 72, - 1 - ] + "assetId": "51248e76be2aa7a0f0ed77bc94af1b3a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "51248e76be2aa7a0f0ed77bc94af1b3a.svg", + "rotationCenterX": 73, + "rotationCenterY": 72 }, { "name": "Heart Purple", - "md5": "b15362bb6b02a59e364db9081ccf19aa.svg", - "type": "costume", "tags": [ "holiday", "purple", @@ -5464,16 +5547,15 @@ "love", "emotions" ], - "info": [ - 66, - 62, - 1 - ] + "assetId": "e24731f5cf2759c2f289921bebb86ea2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e24731f5cf2759c2f289921bebb86ea2.svg", + "rotationCenterX": 66, + "rotationCenterY": 62 }, { "name": "Heart Red", - "md5": "6e79e087c866a016f99ee482e1aeba47.svg", - "type": "costume", "tags": [ "holiday", "red", @@ -5481,188 +5563,176 @@ "love", "emotions" ], - "info": [ - 65, - 56, - 1 - ] + "assetId": "c77e640f6e023e7ce1e376da0f26e1eb", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c77e640f6e023e7ce1e376da0f26e1eb.svg", + "rotationCenterX": 65, + "rotationCenterY": 56 }, { "name": "Heart Smile", - "md5": "66b29ca063bc74d2bacfc0a06bc7b6fc.svg", - "type": "costume", "tags": [ "food", "sweethearts" ], - "info": [ - 73, - 72, - 1 - ] + "assetId": "5fa8c4693cf8cba8cdbcbed72f4f58aa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5fa8c4693cf8cba8cdbcbed72f4f58aa.svg", + "rotationCenterX": 73, + "rotationCenterY": 72 }, { "name": "Heart Sweet", - "md5": "9a9a8efa369379ee8538632c43a6a3d1.svg", - "type": "costume", "tags": [ "food", "sweethearts" ], - "info": [ - 73, - 72, - 1 - ] + "assetId": "3ee430ba825f41ae9913453d4932fb8b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3ee430ba825f41ae9913453d4932fb8b.svg", + "rotationCenterX": 73, + "rotationCenterY": 72 }, { "name": "Hedgehog-a", - "md5": "32416e6b2ef8e45fb5fd10778c1b9a9f.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", "mammal", "spikey" ], - "info": [ - 71, - 56, - 1 - ] + "assetId": "3b0e1717859808cecf1a45e2a32dc201", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3b0e1717859808cecf1a45e2a32dc201.svg", + "rotationCenterX": 71, + "rotationCenterY": 56 }, { "name": "Hedgehog-b", - "md5": "4d3ccc06660e07b55bd38246e1f82f7f.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", "mammal", "spikey" ], - "info": [ - 71, - 56, - 1 - ] + "assetId": "42bac40ca828133600e0a9f7ba019adb", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "42bac40ca828133600e0a9f7ba019adb.svg", + "rotationCenterX": 71, + "rotationCenterY": 56 }, { "name": "Hedgehog-c", - "md5": "2446f79c0f553594cfbcdbe6b1e459a5.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", "mammal", "spikey" ], - "info": [ - 71, - 56, - 1 - ] + "assetId": "3251533232e7f44315512149c7f76214", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3251533232e7f44315512149c7f76214.svg", + "rotationCenterX": 71, + "rotationCenterY": 56 }, { "name": "Hedgehog-d", - "md5": "bdb7c8e86125092da0c4848d1ffd901c.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", "mammal", "spikey" ], - "info": [ - 71, - 56, - 1 - ] + "assetId": "93c2d7a0abefaf26ee50d5038ac5bf61", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "93c2d7a0abefaf26ee50d5038ac5bf61.svg", + "rotationCenterX": 71, + "rotationCenterY": 56 }, { "name": "Hedgehog-e", - "md5": "78a0e3789f6d778e20f9bf3d308a0b19.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", "mammal", "spikey" ], - "info": [ - 61, - 45, - 1 - ] + "assetId": "1fcbba4a2252e96c52d2d8aa8e593e51", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1fcbba4a2252e96c52d2d8aa8e593e51.svg", + "rotationCenterX": 61, + "rotationCenterY": 45 }, { "name": "Hen-a", - "md5": "eb0a9890a92ef616ef8740328eeabb79.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 60, - 53, - 1 - ] + "assetId": "b02a33e32313cc9a75781a6fafd07033", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b02a33e32313cc9a75781a6fafd07033.svg", + "rotationCenterX": 60, + "rotationCenterY": 53 }, { "name": "Hen-b", - "md5": "12aabf8636096f223e9297d2fd8177a4.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 63, - 50, - 1 - ] + "assetId": "d055896a473bb12f4ec67af1fdb9c652", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d055896a473bb12f4ec67af1fdb9c652.svg", + "rotationCenterX": 63, + "rotationCenterY": 50 }, { "name": "Hen-c", - "md5": "af2c57d1f12272335629635e669df487.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 56, - 53, - 1 - ] + "assetId": "c9a4570a2d0ae09b9feeeb5607e4b9c7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c9a4570a2d0ae09b9feeeb5607e4b9c7.svg", + "rotationCenterX": 56, + "rotationCenterY": 53 }, { "name": "Hen-d", - "md5": "84d0492c094ec01d73f808c92b4c3138.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 51, - 77, - 1 - ] + "assetId": "6c9e05f568862dbcea0a1652a210239b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6c9e05f568862dbcea0a1652a210239b.svg", + "rotationCenterX": 51, + "rotationCenterY": 77 }, { "name": "Hippo1-a", - "md5": "c1353c4a5eec5e6f32ed053e6f6e8f99.svg", - "type": "costume", "tags": [ "animals", "mammals", @@ -5671,16 +5741,15 @@ "insect", "pachydermata" ], - "info": [ - 69, - 65, - 1 - ] + "assetId": "911901dc568b56c15fe81819bc2af653", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "911901dc568b56c15fe81819bc2af653.svg", + "rotationCenterX": 69, + "rotationCenterY": 65 }, { "name": "Hippo1-b", - "md5": "e65ed93bbb9cccf698fc7e774ab609a6.svg", - "type": "costume", "tags": [ "animals", "mammals", @@ -5689,30 +5758,28 @@ "insect", "pachydermata" ], - "info": [ - 69, - 68, - 1 - ] + "assetId": "5764a2c650f225bc27cc0e6c5db401ea", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5764a2c650f225bc27cc0e6c5db401ea.svg", + "rotationCenterX": 69, + "rotationCenterY": 68 }, { "name": "Home Button", - "md5": "1bac530a0701a8fc88bb0802ae6787a3.svg", - "type": "costume", "tags": [ "ui", "thing" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "1ebdcb9f033fa6658259b52da376b7ac", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1ebdcb9f033fa6658259b52da376b7ac.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Horse-a", - "md5": "83a698304f00242a34ddd63b1525373b.svg", - "type": "costume", "tags": [ "animals", "hoof", @@ -5721,16 +5788,15 @@ "racing", "saddle" ], - "info": [ - 119, - 83, - 1 - ] + "assetId": "ad458251c5bf5b375870829f1762fa47", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ad458251c5bf5b375870829f1762fa47.svg", + "rotationCenterX": 119, + "rotationCenterY": 83 }, { "name": "Horse-b", - "md5": "2e7d212692b46b049a9ebc1224edd990.svg", - "type": "costume", "tags": [ "animals", "hoof", @@ -5739,448 +5805,417 @@ "racing", "saddle" ], - "info": [ - 103, - 97, - 1 - ] + "assetId": "0e0fa871bea01c2dfb70e9955dc098be", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0e0fa871bea01c2dfb70e9955dc098be.svg", + "rotationCenterX": 103, + "rotationCenterY": 97 }, { "name": "Jaime Walking-a", - "md5": "d6cc9814f7a6640e4c2b1a4276987dc5.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 212, - 344, - 2 - ] + "assetId": "d6cc9814f7a6640e4c2b1a4276987dc5", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "d6cc9814f7a6640e4c2b1a4276987dc5.png", + "rotationCenterX": 106, + "rotationCenterY": 172 }, { "name": "Jaime Walking-b", - "md5": "7fb579a98d6db257f1b16109d3c4609a.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 104, - 352, - 2 - ] + "assetId": "7fb579a98d6db257f1b16109d3c4609a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "7fb579a98d6db257f1b16109d3c4609a.png", + "rotationCenterX": 52, + "rotationCenterY": 176 }, { "name": "Jaime Walking-c", - "md5": "5883bdefba451aaeac8d77c798d41eb0.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 176, - 340, - 2 - ] + "assetId": "5883bdefba451aaeac8d77c798d41eb0", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "5883bdefba451aaeac8d77c798d41eb0.png", + "rotationCenterX": 88, + "rotationCenterY": 170 }, { "name": "Jaime Walking-d", - "md5": "4b9d2162e30dbb924840575ed35fddb0.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 92, - 348, - 2 - ] + "assetId": "4b9d2162e30dbb924840575ed35fddb0", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "4b9d2162e30dbb924840575ed35fddb0.png", + "rotationCenterX": 46, + "rotationCenterY": 174 }, { "name": "Jaime Walking-e", - "md5": "63e56d28cc3e3d9b735e1f1d51248cc0.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 168, - 344, - 2 - ] + "assetId": "63e56d28cc3e3d9b735e1f1d51248cc0", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "63e56d28cc3e3d9b735e1f1d51248cc0.png", + "rotationCenterX": 84, + "rotationCenterY": 172 }, { "name": "Jaime-a", - "md5": "3ddc912edef87ae29121f57294fa0cb5.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 152, - 308, - 2 - ] + "assetId": "3ddc912edef87ae29121f57294fa0cb5", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "3ddc912edef87ae29121f57294fa0cb5.png", + "rotationCenterX": 76, + "rotationCenterY": 154 }, { "name": "Jaime-b", - "md5": "5a683f4536abca0f83a77bc341df4c9a.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 136, - 308, - 2 - ] + "assetId": "5a683f4536abca0f83a77bc341df4c9a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "5a683f4536abca0f83a77bc341df4c9a.png", + "rotationCenterX": 68, + "rotationCenterY": 154 }, { "name": "Jamal-a", - "md5": "c7531e6c05aa488edd6ad3c369204452.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 55, - 49, - 1 - ] + "assetId": "3c8d5e688450ad1e6bf024a32c55bcda", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3c8d5e688450ad1e6bf024a32c55bcda.svg", + "rotationCenterX": 55, + "rotationCenterY": 49 }, { "name": "Jamal-b", - "md5": "8b8bd6ff0fe64e7056d1e70c63b9ec9f.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 75, - 53, - 1 - ] + "assetId": "2408318e743873c7254db1623441b9c5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2408318e743873c7254db1623441b9c5.svg", + "rotationCenterX": 75, + "rotationCenterY": 53 }, { "name": "Jamal-c", - "md5": "c659f292333f93854be243f84b337ec5.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 54, - 102, - 1 - ] + "assetId": "693748d763c8da4b119a5e4bee6a1768", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "693748d763c8da4b119a5e4bee6a1768.svg", + "rotationCenterX": 54, + "rotationCenterY": 102 }, { "name": "Jamal-d", - "md5": "9dc8cfa22793c43aee826c76d144e09b.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 54, - 95, - 1 - ] + "assetId": "92692e0c0f376797274392484ba74133", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "92692e0c0f376797274392484ba74133.svg", + "rotationCenterX": 54, + "rotationCenterY": 95 }, { "name": "Jar-a", - "md5": "73784b267083733e08bcf06aa7d6536a.svg", - "type": "costume", "tags": [ "food", "ipzy", "things", "fruit" ], - "info": [ - 20, - 25, - 1 - ] + "assetId": "33b537168f3c2eb3dafeb739c22f38a6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "33b537168f3c2eb3dafeb739c22f38a6.svg", + "rotationCenterX": 20, + "rotationCenterY": 25 }, { "name": "Jar-b", - "md5": "a37eb72115966a75bc1bf521deeccc0c.svg", - "type": "costume", "tags": [ "food", "ipzy", "things" ], - "info": [ - 20, - 25, - 1 - ] + "assetId": "e0f5ac773987470ff2467e3e01b9ab23", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e0f5ac773987470ff2467e3e01b9ab23.svg", + "rotationCenterX": 20, + "rotationCenterY": 25 }, { "name": "Jellyfish-a", - "md5": "9e6563e417350af3094c2ed02b9b0bbd.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 99, - 86, - 1 - ] + "assetId": "4e259b7c08f05145fc7800b33e4f356e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4e259b7c08f05145fc7800b33e4f356e.svg", + "rotationCenterX": 99, + "rotationCenterY": 86 }, { "name": "Jellyfish-b", - "md5": "31a42fad0891f1298c522a6d5008930a.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 99, - 86, - 1 - ] + "assetId": "5944a1e687fa31589517825b2144a17b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5944a1e687fa31589517825b2144a17b.svg", + "rotationCenterX": 99, + "rotationCenterY": 86 }, { "name": "Jellyfish-c", - "md5": "697262d9ed04467bae52cca786c36bd3.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 99, - 86, - 1 - ] + "assetId": "00c99df84f8385038461d6c42a5465ab", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "00c99df84f8385038461d6c42a5465ab.svg", + "rotationCenterX": 99, + "rotationCenterY": 86 }, { "name": "Jellyfish-d", - "md5": "6a949493aaf62954f1c74f8369d494c4.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 99, - 86, - 1 - ] + "assetId": "3158299771b3d34ed2c50a00fbab715e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3158299771b3d34ed2c50a00fbab715e.svg", + "rotationCenterX": 99, + "rotationCenterY": 86 }, { "name": "Jo Pop Down", - "md5": "a55fbb529c10f70bcb374aef8a63571b.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 136, - 148, - 2 - ] + "assetId": "a55fbb529c10f70bcb374aef8a63571b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a55fbb529c10f70bcb374aef8a63571b.png", + "rotationCenterX": 68, + "rotationCenterY": 74 }, { "name": "Jo Pop Front", - "md5": "3d3ea804243800981acabc7caba10939.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 140, - 456, - 2 - ] + "assetId": "3d3ea804243800981acabc7caba10939", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "3d3ea804243800981acabc7caba10939.png", + "rotationCenterX": 70, + "rotationCenterY": 228 }, { "name": "Jo Pop L Arm", - "md5": "a9fbc01a4124d555da12630312e46197.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 216, - 516, - 2 - ] + "assetId": "a9fbc01a4124d555da12630312e46197", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a9fbc01a4124d555da12630312e46197.png", + "rotationCenterX": 108, + "rotationCenterY": 258 }, { "name": "Jo Pop Left", - "md5": "ea812b4c2b2405aa2b73158023298f71.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 392, - 452, - 2 - ] + "assetId": "ea812b4c2b2405aa2b73158023298f71", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "ea812b4c2b2405aa2b73158023298f71.png", + "rotationCenterX": 196, + "rotationCenterY": 226 }, { "name": "Jo Pop R Arm", - "md5": "aabfedff0d11243386b6b0941e0f72e9.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 216, - 520, - 2 - ] + "assetId": "aabfedff0d11243386b6b0941e0f72e9", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "aabfedff0d11243386b6b0941e0f72e9.png", + "rotationCenterX": 108, + "rotationCenterY": 260 }, { "name": "Jo Pop Right", - "md5": "01dd2f553c7262329ebaba2516e3a2b1.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 132, - 484, - 2 - ] + "assetId": "01dd2f553c7262329ebaba2516e3a2b1", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "01dd2f553c7262329ebaba2516e3a2b1.png", + "rotationCenterX": 66, + "rotationCenterY": 242 }, { "name": "Jo Pop Stand", - "md5": "75ee2383fd83992b401c8a0730521d94.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 156, - 524, - 2 - ] + "assetId": "75ee2383fd83992b401c8a0730521d94", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "75ee2383fd83992b401c8a0730521d94.png", + "rotationCenterX": 78, + "rotationCenterY": 262 }, { "name": "Jo Stance", - "md5": "6f68790ee3eb9bdccf8749305186b0dd.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 188, - 480, - 2 - ] + "assetId": "6f68790ee3eb9bdccf8749305186b0dd", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "6f68790ee3eb9bdccf8749305186b0dd.png", + "rotationCenterX": 94, + "rotationCenterY": 240 }, { "name": "Jo Top L Cross", - "md5": "2e2a6534d33883fdd2f8471a1adbebb7.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 168, - 536, - 2 - ] + "assetId": "2e2a6534d33883fdd2f8471a1adbebb7", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "2e2a6534d33883fdd2f8471a1adbebb7.png", + "rotationCenterX": 84, + "rotationCenterY": 268 }, { "name": "Jo Top L Leg", - "md5": "a12f40b18067bb31746f9cf461de88aa.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 416, - 536, - 2 - ] + "assetId": "a12f40b18067bb31746f9cf461de88aa", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "a12f40b18067bb31746f9cf461de88aa.png", + "rotationCenterX": 208, + "rotationCenterY": 268 }, { "name": "Jo Top R Cross", - "md5": "c2d5519e8a0f2214ff757117038c28dc.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 288, - 540, - 2 - ] + "assetId": "c2d5519e8a0f2214ff757117038c28dc", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c2d5519e8a0f2214ff757117038c28dc.png", + "rotationCenterX": 144, + "rotationCenterY": 270 }, { "name": "Jo Top R Leg", - "md5": "efaa8eb6c8cf7dc35d4d37d546ebd333.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 436, - 524, - 2 - ] + "assetId": "efaa8eb6c8cf7dc35d4d37d546ebd333", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "efaa8eb6c8cf7dc35d4d37d546ebd333.png", + "rotationCenterX": 218, + "rotationCenterY": 262 }, { "name": "Jo Top Stand", - "md5": "0ed4a09c41871d150c51119c1bceded2.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 136, - 520, - 2 - ] + "assetId": "0ed4a09c41871d150c51119c1bceded2", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "0ed4a09c41871d150c51119c1bceded2.png", + "rotationCenterX": 68, + "rotationCenterY": 260 }, { "name": "Jordyn-a", - "md5": "2f59adebc2c0feb9ebfabd7ee9642f2b.svg", - "type": "costume", "tags": [ "sports", "soccer", @@ -6188,16 +6223,15 @@ "people", "alex eben meyer" ], - "info": [ - 51, - 62, - 1 - ] + "assetId": "db4d97cbf24e2b8af665bfbf06f67fa0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "db4d97cbf24e2b8af665bfbf06f67fa0.svg", + "rotationCenterX": 51, + "rotationCenterY": 62 }, { "name": "Jordyn-b", - "md5": "075f382883e60dba8094b3dc30918f60.svg", - "type": "costume", "tags": [ "sports", "soccer", @@ -6205,16 +6239,15 @@ "people", "alex eben meyer" ], - "info": [ - 51, - 63, - 1 - ] + "assetId": "a7cc1e5f02b58ecc8095cfc18eef0289", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a7cc1e5f02b58ecc8095cfc18eef0289.svg", + "rotationCenterX": 51, + "rotationCenterY": 63 }, { "name": "Jordyn-c", - "md5": "fbe81c40d4a880c8799c458359758629.svg", - "type": "costume", "tags": [ "sports", "soccer", @@ -6222,16 +6255,15 @@ "people", "alex eben meyer" ], - "info": [ - 68, - 62, - 1 - ] + "assetId": "768c4601174f0dfcb96b3080ccc3a192", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "768c4601174f0dfcb96b3080ccc3a192.svg", + "rotationCenterX": 68, + "rotationCenterY": 62 }, { "name": "Jordyn-d", - "md5": "68a784d4d0340475a6e6feff3b28b470.svg", - "type": "costume", "tags": [ "sports", "soccer", @@ -6239,205 +6271,248 @@ "people", "alex eben meyer" ], - "info": [ - 40, - 62, - 1 - ] + "assetId": "00c8c464c19460df693f8d5ae69afdab", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "00c8c464c19460df693f8d5ae69afdab.svg", + "rotationCenterX": 40, + "rotationCenterY": 62 }, { "name": "Kai-a", - "md5": "6e007fde15e49c66ee7996561f80b452.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 136, - 320, - 2 - ] + "assetId": "6e007fde15e49c66ee7996561f80b452", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "6e007fde15e49c66ee7996561f80b452.png", + "rotationCenterX": 68, + "rotationCenterY": 160 }, { "name": "Kai-b", - "md5": "c1e1149f6d7e308e3e4eba14ccc8a751.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 164, - 316, - 2 - ] + "assetId": "c1e1149f6d7e308e3e4eba14ccc8a751", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c1e1149f6d7e308e3e4eba14ccc8a751.png", + "rotationCenterX": 82, + "rotationCenterY": 158 }, { "name": "Key", - "md5": "af35300cef35803e11f4ed744dc5e818.svg", - "type": "costume", "tags": [ "fantasy", "thing" ], - "info": [ - 42, - 27, - 1 - ] + "assetId": "680d3e4dce002f922b32447fcf29743d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "680d3e4dce002f922b32447fcf29743d.svg", + "rotationCenterX": 42, + "rotationCenterY": 27 }, { "name": "Keyboard-a", - "md5": "c67d180e964926b6393ac14781541b39.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 72, - 68, - 1 - ] + "assetId": "0ad880b5e829578832c8927b3f6ef7f8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0ad880b5e829578832c8927b3f6ef7f8.svg", + "rotationCenterX": 72, + "rotationCenterY": 68 }, { "name": "Keyboard-b", - "md5": "dbaf62b33de45093c3c7d13b5d49d637.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 72, - 68, - 1 - ] + "assetId": "6efd23c91dab070526feacdf72e2d3da", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6efd23c91dab070526feacdf72e2d3da.svg", + "rotationCenterX": 72, + "rotationCenterY": 68 + }, + { + "name": "Kia-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "e56e480c994572323d88355b8733e1a3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e56e480c994572323d88355b8733e1a3.svg", + "rotationCenterX": 38.99436950683594, + "rotationCenterY": 133.91017150878906 + }, + { + "name": "Kia-b", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "b3d0a248adbc26b0d0826e042a81670a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b3d0a248adbc26b0d0826e042a81670a.svg", + "rotationCenterX": 33.86018625895264, + "rotationCenterY": 133.81014001838557 + }, + { + "name": "Kia-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "db6cd6b145bb6d8dc299475af7423d6e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "db6cd6b145bb6d8dc299475af7423d6e.svg", + "rotationCenterX": 55.533868959382346, + "rotationCenterY": 133.7360717987814 }, { "name": "Kiran-a", - "md5": "9de23c4a7a7fbb67136b539241346854.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 67, - 95, - 1 - ] + "assetId": "7c0bedab5404830a5147cc4a2d46e997", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7c0bedab5404830a5147cc4a2d46e997.svg", + "rotationCenterX": 67, + "rotationCenterY": 95 }, { "name": "Kiran-b", - "md5": "f1e74f3c02333e9e2068e8baf4e77aa0.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 67, - 95, - 1 - ] + "assetId": "b0566e0eed7b5216b92d61468d21ecee", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b0566e0eed7b5216b92d61468d21ecee.svg", + "rotationCenterX": 67, + "rotationCenterY": 95 }, { "name": "Kiran-c", - "md5": "e2482cf509c312935f08be0e2e2c9d84.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 67, - 95, - 1 - ] + "assetId": "78bd6de23d4929aef678ddf0f3f5c276", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "78bd6de23d4929aef678ddf0f3f5c276.svg", + "rotationCenterX": 67, + "rotationCenterY": 95 }, { "name": "Kiran-d", - "md5": "569e736b519199efddfbae2572f7e92b.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 67, - 95, - 1 - ] + "assetId": "2928e9fbd5ca08e326192b3a41bea691", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2928e9fbd5ca08e326192b3a41bea691.svg", + "rotationCenterX": 67, + "rotationCenterY": 95 }, { "name": "Kiran-e", - "md5": "2261bed0f2cc819def17969158297b4f.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 77, - 95, - 1 - ] + "assetId": "7912b6f378bd781f62683e003c574dbe", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7912b6f378bd781f62683e003c574dbe.svg", + "rotationCenterX": 77, + "rotationCenterY": 95 }, { "name": "Kiran-f", - "md5": "d7f44adb3dc7906b9dfb3599a028e0d6.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 62, - 94, - 1 - ] + "assetId": "7f0bc123819fc2666321b6cd38069bdb", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7f0bc123819fc2666321b6cd38069bdb.svg", + "rotationCenterX": 62, + "rotationCenterY": 94 }, { "name": "Knight", - "md5": "f2c5e8bc24d001b81566879dbf2f1a13.svg", - "type": "costume", "tags": [ "people", "castle", "armor" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "188325c56b79ff3cd58497c970ba87a6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "188325c56b79ff3cd58497c970ba87a6.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Ladybug2", - "md5": "f16a1ccc69a4a8190a927f1595aa7bfa.svg", - "type": "costume", "tags": [ "animals", "insect", "bug", "antennae" ], - "info": [ - 41, - 43, - 1 - ] + "assetId": "169c0efa8c094fdedddf8c19c36f0229", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "169c0efa8c094fdedddf8c19c36f0229.svg", + "rotationCenterX": 41, + "rotationCenterY": 43 }, { "name": "Ladybug2-a", - "md5": "c018a3eed966d5f92c69f2188dfd2aae.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -6445,16 +6520,15 @@ "antennae", "aphids" ], - "info": [ - 49, - 28, - 1 - ] + "assetId": "457200f8dec8fea00d22473e9bd9175e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "457200f8dec8fea00d22473e9bd9175e.svg", + "rotationCenterX": 49, + "rotationCenterY": 28 }, { "name": "Ladybug2-b", - "md5": "a2bb15ace808e070a2b815502952b292.svg", - "type": "costume", "tags": [ "animals", "insect", @@ -6462,212 +6536,197 @@ "antennae", "aphids" ], - "info": [ - 49, - 28, - 1 - ] + "assetId": "3f48228829b77fc47d6d89b5729b2957", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3f48228829b77fc47d6d89b5729b2957.svg", + "rotationCenterX": 49, + "rotationCenterY": 28 }, { "name": "Laptop", - "md5": "76f456b30b98eeefd7c942b27b524e31.svg", - "type": "costume", "tags": [ "things", "computers" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "cd2d1f72275e676df5f82be74ae91dfa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cd2d1f72275e676df5f82be74ae91dfa.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Lb Pop Down", - "md5": "563f86443cb102b9241cebb62eb2d81a.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 112, - 180, - 2 - ] + "assetId": "563f86443cb102b9241cebb62eb2d81a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "563f86443cb102b9241cebb62eb2d81a.png", + "rotationCenterX": 56, + "rotationCenterY": 90 }, { "name": "Lb Pop Front", - "md5": "cdd52259075b75628001672d375e4985.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 132, - 544, - 2 - ] + "assetId": "cdd52259075b75628001672d375e4985", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "cdd52259075b75628001672d375e4985.png", + "rotationCenterX": 66, + "rotationCenterY": 272 }, { "name": "Lb Pop L Arm", - "md5": "b508808c087adb55ce156f5cfbdac61b.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 200, - 524, - 2 - ] + "assetId": "b508808c087adb55ce156f5cfbdac61b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "b508808c087adb55ce156f5cfbdac61b.png", + "rotationCenterX": 100, + "rotationCenterY": 262 }, { "name": "Lb Pop Left", - "md5": "525285312925e1e6b4e237a119b61305.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 396, - 532, - 2 - ] + "assetId": "525285312925e1e6b4e237a119b61305", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "525285312925e1e6b4e237a119b61305.png", + "rotationCenterX": 198, + "rotationCenterY": 266 }, { "name": "Lb Pop R Arm", - "md5": "0725440743391e7c622bb5df6a94e1d4.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 156, - 516, - 2 - ] + "assetId": "0725440743391e7c622bb5df6a94e1d4", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "0725440743391e7c622bb5df6a94e1d4.png", + "rotationCenterX": 78, + "rotationCenterY": 258 }, { "name": "Lb Pop Right", - "md5": "0a2461b3b9a4b8603e75565d78b1d4d7.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 152, - 528, - 2 - ] + "assetId": "0a2461b3b9a4b8603e75565d78b1d4d7", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "0a2461b3b9a4b8603e75565d78b1d4d7.png", + "rotationCenterX": 76, + "rotationCenterY": 264 }, { "name": "Lb Pop Stand", - "md5": "5f176ef763be18f7c342dc2e2de7bf16.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 132, - 536, - 2 - ] + "assetId": "5f176ef763be18f7c342dc2e2de7bf16", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "5f176ef763be18f7c342dc2e2de7bf16.png", + "rotationCenterX": 66, + "rotationCenterY": 268 }, { "name": "Lb Stance", - "md5": "71dde8c43985815bffb5a5ed5632af58.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 108, - 488, - 2 - ] + "assetId": "71dde8c43985815bffb5a5ed5632af58", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "71dde8c43985815bffb5a5ed5632af58.png", + "rotationCenterX": 54, + "rotationCenterY": 244 }, { "name": "Lb Top L Cross", - "md5": "645d6e2674452009df7a9a844a604791.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 296, - 516, - 2 - ] + "assetId": "645d6e2674452009df7a9a844a604791", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "645d6e2674452009df7a9a844a604791.png", + "rotationCenterX": 148, + "rotationCenterY": 258 }, { "name": "Lb Top L Leg", - "md5": "63d099e94aa8a973dcfa4c5d8b4a3e7a.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 468, - 572, - 2 - ] + "assetId": "63d099e94aa8a973dcfa4c5d8b4a3e7a", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "63d099e94aa8a973dcfa4c5d8b4a3e7a.png", + "rotationCenterX": 234, + "rotationCenterY": 286 }, { "name": "Lb Top R Cross", - "md5": "4423159d81378ada5ffd7f053d7ef471.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 348, - 512, - 2 - ] + "assetId": "4423159d81378ada5ffd7f053d7ef471", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "4423159d81378ada5ffd7f053d7ef471.png", + "rotationCenterX": 174, + "rotationCenterY": 256 }, { "name": "Lb Top R Leg", - "md5": "79ca528d13ffb557a236f0a35a0eb486.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 488, - 500, - 2 - ] + "assetId": "79ca528d13ffb557a236f0a35a0eb486", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "79ca528d13ffb557a236f0a35a0eb486.png", + "rotationCenterX": 244, + "rotationCenterY": 250 }, { "name": "Lb Top Stand", - "md5": "e68d899e178309ff3eae3e1de8a8ec28.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 140, - 496, - 2 - ] + "assetId": "e68d899e178309ff3eae3e1de8a8ec28", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "e68d899e178309ff3eae3e1de8a8ec28.png", + "rotationCenterX": 70, + "rotationCenterY": 248 }, { "name": "Lightning", - "md5": "c2d636ab2b491e591536afc3d49cbecd.svg", - "type": "costume", "tags": [ "weather", "whether", @@ -6675,31 +6734,29 @@ "storm", "thunder" ], - "info": [ - 21, - 83, - 1 - ] + "assetId": "0ddd3a05a330925bcd2d048908ed40b8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0ddd3a05a330925bcd2d048908ed40b8.svg", + "rotationCenterX": 21, + "rotationCenterY": 83 }, { "name": "Line", - "md5": "1b2cfb4d4746522aeb84e16a62820299.svg", - "type": "costume", "tags": [ "lava", "shape", "red" ], - "info": [ - 239, - 7, - 1 - ] + "assetId": "e85305b47cfd92d971704dcb7ad6e17b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e85305b47cfd92d971704dcb7ad6e17b.svg", + "rotationCenterX": 239, + "rotationCenterY": 7 }, { "name": "Lion-a", - "md5": "75e6b2178518fa354f1ebf7ab7061ceb.svg", - "type": "costume", "tags": [ "cat", "animals", @@ -6707,16 +6764,15 @@ "savanna", "robert hunter" ], - "info": [ - 95, - 43, - 1 - ] + "assetId": "e88e83c8b3ca80c54540b5f0c5a0cc03", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e88e83c8b3ca80c54540b5f0c5a0cc03.svg", + "rotationCenterX": 95, + "rotationCenterY": 43 }, { "name": "Lion-b", - "md5": "7304176fe4dc85758e6b77324a185ea2.svg", - "type": "costume", "tags": [ "cat", "animals", @@ -6724,16 +6780,15 @@ "savanna", "robert hunter" ], - "info": [ - 94, - 43, - 1 - ] + "assetId": "f0d9ab3d82bbade6e279dc1c81e2e6db", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f0d9ab3d82bbade6e279dc1c81e2e6db.svg", + "rotationCenterX": 94, + "rotationCenterY": 43 }, { "name": "Lion-c", - "md5": "8411de793909216761cd19fd95418945.svg", - "type": "costume", "tags": [ "cat", "animals", @@ -6741,721 +6796,787 @@ "savanna", "robert hunter" ], - "info": [ - 95, - 43, - 1 - ] + "assetId": "91c64c5361d906fd36d5813ae27b85a8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "91c64c5361d906fd36d5813ae27b85a8.svg", + "rotationCenterX": 95, + "rotationCenterY": 43 }, { "name": "Llama", - "md5": "f5841f36b41c4df26f9c724d913c279b.svg", - "type": "costume", "tags": [ "animals", "mammal", "robert hunter" ], - "info": [ - 72, - 95, - 1 - ] + "assetId": "c97824f20a45adfa3ff362f82247a025", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c97824f20a45adfa3ff362f82247a025.svg", + "rotationCenterX": 72, + "rotationCenterY": 95 }, { "name": "Llama-b", - "md5": "ef3f8491668de2b751d8d7a8921c9879.svg", - "type": "costume", "tags": [ "animals", "mammal", "robert hunter" ], - "info": [ - 92, - 90, - 1 - ] + "assetId": "1f3aaeb598e121ad817143800d8c4a32", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1f3aaeb598e121ad817143800d8c4a32.svg", + "rotationCenterX": 92, + "rotationCenterY": 90 }, { "name": "Llama-c", - "md5": "b0af19d2c7a7c039c060f21874816164.svg", - "type": "costume", "tags": [ "animals", "mammal", "robert hunter" ], - "info": [ - 73, - 39, - 1 - ] + "assetId": "ac80d75745315f052f7f7b4e62e4a850", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ac80d75745315f052f7f7b4e62e4a850.svg", + "rotationCenterX": 73, + "rotationCenterY": 39 + }, + { + "name": "Luca-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "90fa2ad340edc6e6ba963710feef940e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "90fa2ad340edc6e6ba963710feef940e.svg", + "rotationCenterX": 44.518938859952925, + "rotationCenterY": 130.28487970293187 + }, + { + "name": "Luca-b", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "18dfad514602a4907502c7c84861b24e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "18dfad514602a4907502c7c84861b24e.svg", + "rotationCenterX": 41.801770753585856, + "rotationCenterY": 130.2642790555675 + }, + { + "name": "Luca-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "963cb82687acaf5de53a22b287192723", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "963cb82687acaf5de53a22b287192723.svg", + "rotationCenterX": 50.565256229860694, + "rotationCenterY": 130.02168173555543 }, { "name": "Magicwand", - "md5": "3db9bfe57d561557795633c5cda44e8c.svg", - "type": "costume", "tags": [ "fantasy", "things", "zap" ], - "info": [ - 41, - 18, - 1 - ] + "assetId": "89aa5332042d7bbf8368293a4efeafa4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "89aa5332042d7bbf8368293a4efeafa4.svg", + "rotationCenterX": 41, + "rotationCenterY": 18 }, { "name": "Marian-a", - "md5": "e9577a1eb098905dd386135bb38c0398.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 217, - 452, - 2 - ] + "assetId": "e9577a1eb098905dd386135bb38c0398", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "e9577a1eb098905dd386135bb38c0398.png", + "rotationCenterX": 108.5, + "rotationCenterY": 226 }, { "name": "Marian-b", - "md5": "3d2ecee35eab8c37d1c3eadfe50ce447.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 217, - 452, - 2 - ] + "assetId": "3d2ecee35eab8c37d1c3eadfe50ce447", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "3d2ecee35eab8c37d1c3eadfe50ce447.png", + "rotationCenterX": 108.5, + "rotationCenterY": 226 }, { "name": "Marian-c", - "md5": "221e9999b20ecc21b37c68fcdf09ab02.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 141, - 452, - 2 - ] + "assetId": "221e9999b20ecc21b37c68fcdf09ab02", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "221e9999b20ecc21b37c68fcdf09ab02.png", + "rotationCenterX": 70.5, + "rotationCenterY": 226 }, { "name": "Marian-d", - "md5": "64206b46c411e40926569cf3f5e587be.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 278, - 438, - 2 - ] + "assetId": "64206b46c411e40926569cf3f5e587be", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "64206b46c411e40926569cf3f5e587be.png", + "rotationCenterX": 139, + "rotationCenterY": 219 }, { "name": "Marian-e", - "md5": "16893c6136292ae36e13dc72cc55719b.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 139, - 423, - 2 - ] + "assetId": "16893c6136292ae36e13dc72cc55719b", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "16893c6136292ae36e13dc72cc55719b.png", + "rotationCenterX": 69.5, + "rotationCenterY": 211.5 }, { "name": "Max-a", - "md5": "5cc168bddf4561e6e7f1d30845d6efbf.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 70, - 61, - 1 - ] + "assetId": "5180649cfd62831c52f8994ce644d6ac", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5180649cfd62831c52f8994ce644d6ac.svg", + "rotationCenterX": 70, + "rotationCenterY": 61 }, { "name": "Max-b", - "md5": "8e2ad5735e26c5544b6b1a057f4efa80.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 71, - 64, - 1 - ] + "assetId": "9669ce16eb6c6df6f26686598a59711d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9669ce16eb6c6df6f26686598a59711d.svg", + "rotationCenterX": 71, + "rotationCenterY": 64 }, { "name": "Max-c", - "md5": "261a40ebecfe135308befd79c6c07fd5.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 46, - 59, - 1 - ] + "assetId": "7b3d1324382032f87384ef2c8c618156", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7b3d1324382032f87384ef2c8c618156.svg", + "rotationCenterX": 46, + "rotationCenterY": 59 }, { "name": "Max-d", - "md5": "4b6eecd411daddef6422fa3a5850cd52.svg", - "type": "costume", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 37, - 59, - 1 - ] + "assetId": "6b91183a4ad162e4950d95828a85144d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6b91183a4ad162e4950d95828a85144d.svg", + "rotationCenterX": 37, + "rotationCenterY": 59 }, { "name": "Mermaid-a", - "md5": "36db41c47259881c26d9b98a806d3308.svg", - "type": "costume", "tags": [ "fantasy", "people", "underwater", "ipzy" ], - "info": [ - 92, - 130, - 1 - ] + "assetId": "88a3b6b2f0b3ffa25cab97bc619f8386", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "88a3b6b2f0b3ffa25cab97bc619f8386.svg", + "rotationCenterX": 92, + "rotationCenterY": 130 }, { "name": "Mermaid-b", - "md5": "564bf3f466df3b3e8aba71eeae8255ab.svg", - "type": "costume", "tags": [ "fantasy", "people", "underwater", "ipzy" ], - "info": [ - 92, - 130, - 1 - ] + "assetId": "f903049308e2171178d889f5c4a7d466", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f903049308e2171178d889f5c4a7d466.svg", + "rotationCenterX": 92, + "rotationCenterY": 130 }, { "name": "Mermaid-c", - "md5": "2295784bb8e6354bfa7676089235cb9f.svg", - "type": "costume", "tags": [ "fantasy", "people", "underwater", "ipzy" ], - "info": [ - 150, - 115, - 1 - ] + "assetId": "2a6274017350fab67ebec9157420ae96", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2a6274017350fab67ebec9157420ae96.svg", + "rotationCenterX": 150, + "rotationCenterY": 115 }, { "name": "Mermaid-d", - "md5": "9f973b89b68f7d8147f157cbac8af341.svg", - "type": "costume", "tags": [ "fantasy", "people", "underwater", "ipzy" ], - "info": [ - 150, - 115, - 1 - ] + "assetId": "65419296861b1c7ee59075af0f949d67", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "65419296861b1c7ee59075af0f949d67.svg", + "rotationCenterX": 150, + "rotationCenterY": 115 }, { "name": "Microphone-a", - "md5": "9126b6362313e20578fb88d38902cd4c.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 40, - 88, - 1 - ] + "assetId": "d4d80e94e2cc759b8ca1d7b58f2a9052", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d4d80e94e2cc759b8ca1d7b58f2a9052.svg", + "rotationCenterX": 40, + "rotationCenterY": 88 }, { "name": "Microphone-b", - "md5": "29988ebbde49beaceb06d9eb66138b80.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 40, - 88, - 1 - ] + "assetId": "c96578ffb9e314fee097862d69fde0af", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c96578ffb9e314fee097862d69fde0af.svg", + "rotationCenterX": 40, + "rotationCenterY": 88 }, { "name": "Milk-a", - "md5": "1b8ec45254b7c40d86e7a33818b77e35.svg", - "type": "costume", "tags": [ "food", "drink", "alex eben meyer" ], - "info": [ - 32, - 63, - 1 - ] + "assetId": "aa5f1501805aa68d3ad74623f59e6135", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "aa5f1501805aa68d3ad74623f59e6135.svg", + "rotationCenterX": 32, + "rotationCenterY": 63 }, { "name": "Milk-b", - "md5": "2ba802dcac09a81f9d82cc9d3b95d71b.svg", - "type": "costume", "tags": [ "food", "drink", "alex eben meyer" ], - "info": [ - 42, - 64, - 1 - ] + "assetId": "0f683f65c737bbcbb916df0895d8436e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0f683f65c737bbcbb916df0895d8436e.svg", + "rotationCenterX": 42, + "rotationCenterY": 64 }, { "name": "Milk-c", - "md5": "287b322e939ad54691aef4876c48f422.svg", - "type": "costume", "tags": [ "food", "drink", "alex eben meyer" ], - "info": [ - 47, - 56, - 1 - ] + "assetId": "1fa49d62f8028a375470e7bac451e666", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1fa49d62f8028a375470e7bac451e666.svg", + "rotationCenterX": 47, + "rotationCenterY": 56 }, { "name": "Milk-d", - "md5": "df4f5d863fa680331aa6c8f867b9fcbb.svg", - "type": "costume", "tags": [ "food", "drink", "alex eben meyer" ], - "info": [ - 45, - 64, - 1 - ] + "assetId": "4d3eabd3ef848b61c3120d796c274733", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4d3eabd3ef848b61c3120d796c274733.svg", + "rotationCenterX": 45, + "rotationCenterY": 64 }, { "name": "Milk-e", - "md5": "e642678d42d5e74fe49e6ceb5538724e.svg", - "type": "costume", "tags": [ "food", "drink", "alex eben meyer" ], - "info": [ - 35, - 45, - 1 - ] + "assetId": "6ec300ae45758eff12e9d47cf4f0d2a0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6ec300ae45758eff12e9d47cf4f0d2a0.svg", + "rotationCenterX": 35, + "rotationCenterY": 45 }, { "name": "Monet-a", - "md5": "11c46aaa5e30ad46f5c1883d6feb47b8.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 64, - 87, - 1 - ] + "assetId": "4c6b016c55c4348b6dce29ba99e7ede4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4c6b016c55c4348b6dce29ba99e7ede4.svg", + "rotationCenterX": 64, + "rotationCenterY": 87 }, { "name": "Monet-b", - "md5": "9c8f83e39dc8ac49d57c0622ffe2063f.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 64, - 87, - 1 - ] + "assetId": "137bbc522701a96908667d1b1730d041", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "137bbc522701a96908667d1b1730d041.svg", + "rotationCenterX": 64, + "rotationCenterY": 87 }, { "name": "Monet-c", - "md5": "4435678d26e8fbc266d647693f65f5d7.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 64, - 87, - 1 - ] + "assetId": "138e6591f3317222521963ef3ce9a057", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "138e6591f3317222521963ef3ce9a057.svg", + "rotationCenterX": 64, + "rotationCenterY": 87 }, { "name": "Monet-d", - "md5": "42113ca3eca593c3a8f232a9202d6f14.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 82, - 87, - 1 - ] + "assetId": "740276a8aa9ddd12dd4b30f369975d66", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "740276a8aa9ddd12dd4b30f369975d66.svg", + "rotationCenterX": 82, + "rotationCenterY": 87 }, { "name": "Monet-e", - "md5": "e530d0dac5290c5366af719cfb4e5953.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 65, - 89, - 1 - ] + "assetId": "5b67cb843dcc9dabdc580b9e35e95659", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5b67cb843dcc9dabdc580b9e35e95659.svg", + "rotationCenterX": 65, + "rotationCenterY": 89 }, { "name": "Monkey-a", - "md5": "6e4de762dbd52cd2b6356694a9668211.svg", - "type": "costume", "tags": [ "animals", "mammals", "primate", "prehensile tail" ], - "info": [ - 68, - 99, - 1 - ] + "assetId": "254926ee81bfa82f2db7009a80635061", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "254926ee81bfa82f2db7009a80635061.svg", + "rotationCenterX": 68, + "rotationCenterY": 99 }, { "name": "Monkey-b", - "md5": "7662a3a0f4c6fa21fdf2de33bd80fe5f.svg", - "type": "costume", "tags": [ "animals", "mammals", "primate", "prehensile tail" ], - "info": [ - 68, - 99, - 1 - ] + "assetId": "de0405b0576ade1282bdfcd198922baa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "de0405b0576ade1282bdfcd198922baa.svg", + "rotationCenterX": 68, + "rotationCenterY": 99 }, { "name": "Monkey-c", - "md5": "db8eb50b948047181922310bb94511fb.svg", - "type": "costume", "tags": [ "animals", "mammals", "primate", "prehensile tail" ], - "info": [ - 68, - 99, - 1 - ] + "assetId": "ec6d62f0ff64bb5440ffdc662b6e46fa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ec6d62f0ff64bb5440ffdc662b6e46fa.svg", + "rotationCenterX": 68, + "rotationCenterY": 99 }, { "name": "Motorcycle-a", - "md5": "5065a917834923efc3e0c112d5791e80.svg", - "type": "costume", "tags": [ "city", "bike", "vehicle", "motorcycle" ], - "info": [ - 52, - 44, - 1 - ] + "assetId": "b73447c2577b8f77b5e2eb1da6d6445a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b73447c2577b8f77b5e2eb1da6d6445a.svg", + "rotationCenterX": 51.21999999999994, + "rotationCenterY": 43.599999999999994 }, { "name": "Motorcycle-b", - "md5": "fe0923cb08c0b7c373de1daf8b74de74.svg", - "type": "costume", "tags": [ "city", "vehicle", "bike", "motorcycle" ], - "info": [ - 52, - 44, - 1 - ] + "assetId": "6e960b3c6a60ebe192e36b235c50ae03", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6e960b3c6a60ebe192e36b235c50ae03.svg", + "rotationCenterX": 51.21999999999994, + "rotationCenterY": 43.599999999999994 }, { "name": "Motorcycle-c", - "md5": "6af27b2b5e1eeae9e60702630e6909a8.svg", - "type": "costume", "tags": [ "city", "vehicle", "bike", "motorcycle" ], - "info": [ - 52, - 44, - 1 - ] + "assetId": "a70bdd403ace1f1ece2f2af0fbc3c720", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a70bdd403ace1f1ece2f2af0fbc3c720.svg", + "rotationCenterX": 51.21999999999994, + "rotationCenterY": 43.599999999999994 }, { "name": "Motorcycle-d", - "md5": "c5d78ac1de3a7f786a4ca6dc0fe087d4.svg", - "type": "costume", "tags": [ "city", "vehicle", "bike", "motorcycle" ], - "info": [ - 52, - 44, - 1 - ] + "assetId": "c6f8179ff3e8f8ab08b01d50343eefc4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c6f8179ff3e8f8ab08b01d50343eefc4.svg", + "rotationCenterX": 51.21999999999994, + "rotationCenterY": 43.599999999999994 }, { "name": "Mouse1-a", - "md5": "e1f0c26afecbe9d4b9923d8e6bf489a8.svg", - "type": "costume", "tags": [ "animals", "mammals", "rodents" ], - "info": [ - 50, - 27, - 1 - ] + "assetId": "c5f76b65e30075c12d49ea8a8f7d6bad", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c5f76b65e30075c12d49ea8a8f7d6bad.svg", + "rotationCenterX": 50, + "rotationCenterY": 27 }, { "name": "Mouse1-b", - "md5": "f5e477a3f94fc98ba3cd927228405646.svg", - "type": "costume", "tags": [ "animals", "mammals", "rodents" ], - "info": [ - 65, - 21, - 1 - ] + "assetId": "8a7da35c473972f88896ca73b7df2188", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8a7da35c473972f88896ca73b7df2188.svg", + "rotationCenterX": 65, + "rotationCenterY": 21 }, { "name": "Muffin-a", - "md5": "18da0857a1b7f1c960146d2b85edd10f.svg", - "type": "costume", "tags": [ "food" ], - "info": [ - 85, - 48, - 1 - ] + "assetId": "afa34381db44e699d61f774911aab448", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "afa34381db44e699d61f774911aab448.svg", + "rotationCenterX": 85, + "rotationCenterY": 48 }, { "name": "Muffin-b", - "md5": "a89f3b99bf4cccfaeb1b39e25633c53c.svg", - "type": "costume", "tags": [ "food", "eaten" ], - "info": [ - 85, - 48, - 1 - ] + "assetId": "bd0581902cd6cc13888520776bf1620c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bd0581902cd6cc13888520776bf1620c.svg", + "rotationCenterX": 85, + "rotationCenterY": 48 }, { "name": "Nano-a", - "md5": "02c5433118f508038484bbc5b111e187.svg", - "type": "costume", "tags": [ "fantasy", "drawing" ], - "info": [ - 61, - 60, - 1 - ] + "assetId": "a62e560863c0e49b12e5d57e13d084f1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a62e560863c0e49b12e5d57e13d084f1.svg", + "rotationCenterX": 61, + "rotationCenterY": 60 }, { "name": "Nano-b", - "md5": "10d6d9130618cd092ae02158cde2e113.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 61, - 60, - 1 - ] + "assetId": "d12aead3e3c2917e7eba8b2b90a7afd2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d12aead3e3c2917e7eba8b2b90a7afd2.svg", + "rotationCenterX": 61, + "rotationCenterY": 60 }, { "name": "Nano-c", - "md5": "85e762d45bc626ca2edb3472c7cfaa32.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 61, - 60, - 1 - ] + "assetId": "8f2f4a70e87262ef478ce60567b6208a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8f2f4a70e87262ef478ce60567b6208a.svg", + "rotationCenterX": 61, + "rotationCenterY": 60 }, { "name": "Nano-d", - "md5": "b10925346da8080443f27e7dfaeff6f7.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "angry" ], - "info": [ - 61, - 60, - 1 - ] + "assetId": "a4e2034751fa650fd5fd69432c110104", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a4e2034751fa650fd5fd69432c110104.svg", + "rotationCenterX": 61, + "rotationCenterY": 60 }, { "name": "Neigh Pony", - "md5": "176c4fb4df80df899ca28a48bd1f0edf.svg", - "type": "costume", "tags": [ "animals", "fantasy" ], - "info": [ - 74, - 78, - 1 - ] + "assetId": "592816f56409d582603c485cbefcbbb8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "592816f56409d582603c485cbefcbbb8.svg", + "rotationCenterX": 74, + "rotationCenterY": 78 + }, + { + "name": "Noor-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "4cf233c6540e434aded60608ba316ce3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4cf233c6540e434aded60608ba316ce3.svg", + "rotationCenterX": 38.4758779691426, + "rotationCenterY": 130.22760078036825 + }, + { + "name": "Noor-b", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "975585ca9461f0730a285fc96df73425", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "975585ca9461f0730a285fc96df73425.svg", + "rotationCenterX": 41.73210898803782, + "rotationCenterY": 130.22760078036825 + }, + { + "name": "Noor-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "c1792bbd5970034b4595ff7e742d6e47", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c1792bbd5970034b4595ff7e742d6e47.svg", + "rotationCenterX": 50.673619073816894, + "rotationCenterY": 130.25802625960853 }, { "name": "Octopus-a", - "md5": "038df646d2f935d2a5dd601b343fc1d9.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 88, - 86, - 1 - ] + "assetId": "e22d9b633feffc1d026980a1f21e07d7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e22d9b633feffc1d026980a1f21e07d7.svg", + "rotationCenterX": 88, + "rotationCenterY": 86 }, { "name": "Octopus-b", - "md5": "31bdcbdf05688c01aace3fd94c5e82df.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 88, - 86, - 1 - ] + "assetId": "9b5a2cd287229bf36ffcc176ed72cc0c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9b5a2cd287229bf36ffcc176ed72cc0c.svg", + "rotationCenterX": 88, + "rotationCenterY": 86 }, { "name": "Octopus-c", - "md5": "51e80c09323e36489ad452250acd827c.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -7463,16 +7584,15 @@ "teacup", "daria skrybchencko" ], - "info": [ - 88, - 86, - 1 - ] + "assetId": "7d33a531087188b29deae879f23f76bc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7d33a531087188b29deae879f23f76bc.svg", + "rotationCenterX": 88, + "rotationCenterY": 86 }, { "name": "Octopus-d", - "md5": "b4242e6cde0392bb9a5fb43a8f232962.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -7480,16 +7600,15 @@ "pirate", "daria skrybchencko" ], - "info": [ - 88, - 86, - 1 - ] + "assetId": "f582f162c4438d82c9e2a0a87a3e02ce", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f582f162c4438d82c9e2a0a87a3e02ce.svg", + "rotationCenterX": 88, + "rotationCenterY": 86 }, { "name": "Octopus-e", - "md5": "edfda0a36d9cd8482e3a8dc317107d56.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -7497,258 +7616,241 @@ "music", "daria skrybchencko" ], - "info": [ - 88, - 86, - 1 - ] + "assetId": "5d6e17d6260134d0402ba487a419d7c3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5d6e17d6260134d0402ba487a419d7c3.svg", + "rotationCenterX": 88, + "rotationCenterY": 86 }, { "name": "Orange", - "md5": "27d5dfbadceea215e983d2641ce3e51f.svg", - "type": "costume", "tags": [ "food", "fruit" ], - "info": [ - 19, - 18, - 1 - ] + "assetId": "d0a55aae1decb57152b454c9a5226757", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d0a55aae1decb57152b454c9a5226757.svg", + "rotationCenterX": 19, + "rotationCenterY": 18 }, { "name": "Orange2-a", - "md5": "8a7d8515df41f83c1326ec3233a3a42a.svg", - "type": "costume", "tags": [ "food", "fruit", "eaten" ], - "info": [ - 49, - 24, - 1 - ] + "assetId": "27286ca08451bc512e1d611965dad061", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "27286ca08451bc512e1d611965dad061.svg", + "rotationCenterX": 49, + "rotationCenterY": 24 }, { "name": "Orange2-b", - "md5": "70c7f1822ffdb37157c304273dae9102.svg", - "type": "costume", "tags": [ "food", "fruit", "eaten" ], - "info": [ - 49, - 27, - 1 - ] + "assetId": "b823f73a31e61fd362574e2c24dfc0c2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b823f73a31e61fd362574e2c24dfc0c2.svg", + "rotationCenterX": 49, + "rotationCenterY": 27 }, { "name": "Outfielder-a", - "md5": "d2e2e4a9249c4cbe479e431a4c985286.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 42, - 78, - 1 - ] + "assetId": "10578b06f97b9fdc34f622e9e682c144", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "10578b06f97b9fdc34f622e9e682c144.svg", + "rotationCenterX": 42, + "rotationCenterY": 78 }, { "name": "Outfielder-b", - "md5": "5a960b109ae5dbe3c3ea5555894e8c13.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 42, - 74, - 1 - ] + "assetId": "d0a8837867d39444a824b734d4cd5554", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d0a8837867d39444a824b734d4cd5554.svg", + "rotationCenterX": 42, + "rotationCenterY": 74 }, { "name": "Outfielder-c", - "md5": "480ab4ce1ab5586e829e1cf804824c8b.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 67, - 97, - 1 - ] + "assetId": "9f31c772f88a5f32fe857d57b3bcb04c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9f31c772f88a5f32fe857d57b3bcb04c.svg", + "rotationCenterX": 67, + "rotationCenterY": 97 }, { "name": "Outfielder-d", - "md5": "e5803b5601e0aafa8d0b227f1b1ae742.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 130, - 114, - 1 - ] + "assetId": "175ddc7ed99cc5b72909098046d8f558", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "175ddc7ed99cc5b72909098046d8f558.svg", + "rotationCenterX": 130, + "rotationCenterY": 114 }, { "name": "Owl-a", - "md5": "5348f1ea36a645322e88796545ca8ca1.svg", - "type": "costume", "tags": [ "animals", "bird", "robert hunter" ], - "info": [ - 24, - 40, - 1 - ] + "assetId": "a518f70b65ec489e709795209b43207a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a518f70b65ec489e709795209b43207a.svg", + "rotationCenterX": 24, + "rotationCenterY": 40 }, { "name": "Owl-b", - "md5": "3d8ba4198a03e484ed63bde584fd5bc1.svg", - "type": "costume", "tags": [ "animals", "bird", "robert hunter" ], - "info": [ - 44, - 46, - 1 - ] + "assetId": "236bb6b33e7db00834bcea89b03b8a5e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "236bb6b33e7db00834bcea89b03b8a5e.svg", + "rotationCenterX": 44, + "rotationCenterY": 46 }, { "name": "Owl-c", - "md5": "4e81445e70169f074ad50473a78f3381.svg", - "type": "costume", "tags": [ "animals", "bird", "robert hunter" ], - "info": [ - 109, - 41, - 1 - ] + "assetId": "806139207066cb5eaef727d54c1bb4ec", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "806139207066cb5eaef727d54c1bb4ec.svg", + "rotationCenterX": 109, + "rotationCenterY": 41 }, { "name": "Paddle", - "md5": "8038149bdfe24733ea2144d37d297815.svg", - "type": "costume", "tags": [ "thing" ], - "info": [ - 44, - 7, - 1 - ] + "assetId": "15864fac7d38bb94c1ec3a199de96c26", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "15864fac7d38bb94c1ec3a199de96c26.svg", + "rotationCenterX": 44, + "rotationCenterY": 7 }, { "name": "Panther-a", - "md5": "04ca2c122cff11b9bc23834d6f79361e.svg", - "type": "costume", "tags": [ "animals", "tiger", "leopard", "robert hunter" ], - "info": [ - 125, - 81, - 1 - ] + "assetId": "0e7c244f54b27058f8b17d9e0d3cee12", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0e7c244f54b27058f8b17d9e0d3cee12.svg", + "rotationCenterX": 125, + "rotationCenterY": 81 }, { "name": "Panther-b", - "md5": "f8c33765d1105f3bb4cd145fad0f717e.svg", - "type": "costume", "tags": [ "animals", "tiger", "leopard", "robert hunter" ], - "info": [ - 125, - 81, - 1 - ] + "assetId": "4a762fd04901407544d8858adac2b3fa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4a762fd04901407544d8858adac2b3fa.svg", + "rotationCenterX": 125, + "rotationCenterY": 81 }, { "name": "Panther-c", - "md5": "096bf9cad84def12eef2b5d84736b393.svg", - "type": "costume", "tags": [ "animals", "tiger", "leopard", "robert hunter" ], - "info": [ - 125, - 81, - 1 - ] + "assetId": "a7aee991f51636574625c1300f035bdd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a7aee991f51636574625c1300f035bdd.svg", + "rotationCenterX": 125, + "rotationCenterY": 81 }, { "name": "Pants-a", - "md5": "f7a0584eca14eaa0e29662e5c24fb62d.svg", - "type": "costume", "tags": [ "fashion", "pants" ], - "info": [ - 34, - 66, - 1 - ] + "assetId": "ef8b1576f183222a4c2d373a7bc194cc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ef8b1576f183222a4c2d373a7bc194cc.svg", + "rotationCenterX": 34, + "rotationCenterY": 66 }, { "name": "Pants-b", - "md5": "22ea0cf68b885817a5b6a01194c6f5d3.svg", - "type": "costume", "tags": [ "fashion", "pants" ], - "info": [ - 35, - 66, - 1 - ] + "assetId": "ac9c7259873e472c2c1a99339c694f16", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ac9c7259873e472c2c1a99339c694f16.svg", + "rotationCenterX": 35, + "rotationCenterY": 66 }, { "name": "Parrot-a", - "md5": "098570b8e1aa85b32f9b4eb07bea3af2.svg", - "type": "costume", "tags": [ "animals", "bird", @@ -7757,16 +7859,15 @@ "color", "flying" ], - "info": [ - 86, - 106, - 1 - ] + "assetId": "082f371c206f07d20e53595a9c69cc22", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "082f371c206f07d20e53595a9c69cc22.svg", + "rotationCenterX": 86, + "rotationCenterY": 106 }, { "name": "Parrot-b", - "md5": "721255a0733c9d8d2ba518ff09b3b7cb.svg", - "type": "costume", "tags": [ "animals", "bird", @@ -7775,86 +7876,80 @@ "color", "flying" ], - "info": [ - 49, - 31, - 1 - ] + "assetId": "036fad20b674197358f8c0b2dc64e17e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "036fad20b674197358f8c0b2dc64e17e.svg", + "rotationCenterX": 49, + "rotationCenterY": 31 }, { "name": "Party Hat-a", - "md5": "f3ee428806f9fa6d396e30a8d6d0e741.svg", - "type": "costume", "tags": [ "fashion", "winter" ], - "info": [ - 24, - 55, - 1 - ] + "assetId": "1d14be44e4aa99a471115cd874204690", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1d14be44e4aa99a471115cd874204690.svg", + "rotationCenterX": 24, + "rotationCenterY": 55 }, { "name": "Party Hat-b", - "md5": "71b51d9680be4aa946eb6642bc044791.svg", - "type": "costume", "tags": [ "fashion", "winter" ], - "info": [ - 40, - 61, - 1 - ] + "assetId": "8b43413906cf1ba1343580d3ca062048", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8b43413906cf1ba1343580d3ca062048.svg", + "rotationCenterX": 40, + "rotationCenterY": 61 }, { "name": "Party Hat-e", - "md5": "e69516f2a9bb6d632fdaba4fadd8f8f1.svg", - "type": "costume", "tags": [ "fashion", "winter" ], - "info": [ - 52, - 44, - 1 - ] + "assetId": "abefb98344ece228afeb462f46d6b750", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "abefb98344ece228afeb462f46d6b750.svg", + "rotationCenterX": 52, + "rotationCenterY": 44 }, { "name": "Pencil-a", - "md5": "4495fcb0443cebc5d43e66243a88f1ac.svg", - "type": "costume", "tags": [ "thing", "yellow" ], - "info": [ - 49, - 54, - 1 - ] + "assetId": "b3d6eae85f285dd618bf9dcf609b9454", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b3d6eae85f285dd618bf9dcf609b9454.svg", + "rotationCenterX": 49, + "rotationCenterY": 54 }, { "name": "Pencil-b", - "md5": "21088922dbe127f6d2e58e2e83fb632e.svg", - "type": "costume", "tags": [ "thing", "yellow" ], - "info": [ - 48, - 68, - 1 - ] + "assetId": "f017876452a24d118fc0b1753caefad9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f017876452a24d118fc0b1753caefad9.svg", + "rotationCenterX": 48, + "rotationCenterY": 68 }, { "name": "Penguin-a", - "md5": "0e78708b8988802d2209a34b50292bd3.svg", - "type": "costume", "tags": [ "penguin", "animals", @@ -7867,16 +7962,15 @@ "arctic", "robert hunter" ], - "info": [ - 36, - 46, - 1 - ] + "assetId": "dad5b0d82cb6e053d1ded2ef537a9453", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dad5b0d82cb6e053d1ded2ef537a9453.svg", + "rotationCenterX": 36, + "rotationCenterY": 46 }, { "name": "Penguin-b", - "md5": "43af2a0b7f922ec5dc94217b2f3e08e4.svg", - "type": "costume", "tags": [ "animals", "penguin", @@ -7889,16 +7983,15 @@ "arctic", "robert hunter" ], - "info": [ - 26, - 46, - 1 - ] + "assetId": "c434b674f2da18ba13cdfe51dbc05ecc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c434b674f2da18ba13cdfe51dbc05ecc.svg", + "rotationCenterX": 26, + "rotationCenterY": 46 }, { "name": "Penguin-c", - "md5": "4f35c3940957e3ffc2e83a2565942171.svg", - "type": "costume", "tags": [ "animals", "penguin", @@ -7911,272 +8004,254 @@ "arctic", "robert hunter" ], - "info": [ - 35, - 46, - 1 - ] + "assetId": "6d11aedea7f316215aaa0d08617f4c31", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6d11aedea7f316215aaa0d08617f4c31.svg", + "rotationCenterX": 35, + "rotationCenterY": 46 }, { "name": "Penguin2-a", - "md5": "c17d9e4bdb59c574e0c34aa70af516da.svg", - "type": "costume", "tags": [ "animals", "bird", "winter", "antarctica" ], - "info": [ - 54, - 61, - 1 - ] + "assetId": "428772307d90f4b347d6cc3c0d8e76ef", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "428772307d90f4b347d6cc3c0d8e76ef.svg", + "rotationCenterX": 54, + "rotationCenterY": 61 }, { "name": "Penguin2-b", - "md5": "b224a582395e0847c2ef4eefcfbc4546.svg", - "type": "costume", "tags": [ "animals", "bird", "winter", "antarctica" ], - "info": [ - 54, - 61, - 1 - ] + "assetId": "d485f5620d2dde69a6aa1cda7c897d12", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d485f5620d2dde69a6aa1cda7c897d12.svg", + "rotationCenterX": 54, + "rotationCenterY": 61 }, { "name": "Penguin2-c", - "md5": "35fec7aa5f60cca945fe0615413f1f08.svg", - "type": "costume", "tags": [ "animals", "bird", "winter", "antarctica" ], - "info": [ - 48, - 62, - 1 - ] + "assetId": "280d2aa13f0c6774cc8828dc177aaf60", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "280d2aa13f0c6774cc8828dc177aaf60.svg", + "rotationCenterX": 48, + "rotationCenterY": 62 }, { "name": "Penguin2-d", - "md5": "18fa51a64ebd5518f0c5c465525346e5.svg", - "type": "costume", "tags": [ "animals", "bird", "winter", "antarctica" ], - "info": [ - 48, - 61, - 1 - ] + "assetId": "780467f3d173dcb37fd65834841babc6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "780467f3d173dcb37fd65834841babc6.svg", + "rotationCenterX": 48, + "rotationCenterY": 61 }, { "name": "Pico Walk1", - "md5": "8eab5fe20dd249bf22964298b1d377eb.svg", - "type": "costume", "tags": [ "fantasy", "walking" ], - "info": [ - 54, - 71, - 1 - ] + "assetId": "c8f58f31cabf4acabb3f828730061276", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c8f58f31cabf4acabb3f828730061276.svg", + "rotationCenterX": 54, + "rotationCenterY": 71 }, { "name": "Pico Walk2", - "md5": "39ecd3c38d3f2cd81e3a17ee6c25699f.svg", - "type": "costume", "tags": [ "fantasy", "walking" ], - "info": [ - 54, - 71, - 1 - ] + "assetId": "52a60eccb624530fd3a24fc41fbad6e5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "52a60eccb624530fd3a24fc41fbad6e5.svg", + "rotationCenterX": 54, + "rotationCenterY": 71 }, { "name": "Pico Walk3", - "md5": "43f7d92dcf9eadf77c07a6fc1eb4104f.svg", - "type": "costume", "tags": [ "fantasy", "walking" ], - "info": [ - 54, - 70, - 1 - ] + "assetId": "702bd644d01ea8eda2ea122daeea7d74", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "702bd644d01ea8eda2ea122daeea7d74.svg", + "rotationCenterX": 54, + "rotationCenterY": 70 }, { "name": "Pico Walk4", - "md5": "2582d012d57bca59bc0315c5c5954958.svg", - "type": "costume", "tags": [ "fantasy", "walking" ], - "info": [ - 54, - 70, - 1 - ] + "assetId": "22fb16ae7cc18187a7adaf2852f07884", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "22fb16ae7cc18187a7adaf2852f07884.svg", + "rotationCenterX": 54, + "rotationCenterY": 70 }, { "name": "Pico-a", - "md5": "0579fe60bb3717c49dfd7743caa84ada.svg", - "type": "costume", "tags": [ "fantasy", "drawing" ], - "info": [ - 55, - 66, - 1 - ] + "assetId": "e7ce31db37f7abd2901499db2e9ad83a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e7ce31db37f7abd2901499db2e9ad83a.svg", + "rotationCenterX": 55, + "rotationCenterY": 66 }, { "name": "Pico-b", - "md5": "26c688d7544757225ff51cd2fb1519b5.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 55, - 66, - 1 - ] + "assetId": "a7597b1f0c13455d335a3d4fe77da528", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a7597b1f0c13455d335a3d4fe77da528.svg", + "rotationCenterX": 55, + "rotationCenterY": 66 }, { "name": "Pico-c", - "md5": "adf61e2090f8060e1e8b2b0604d03751.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 55, - 66, - 1 - ] + "assetId": "bcc0e8a5dda3a813608902b887c87bb4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bcc0e8a5dda3a813608902b887c87bb4.svg", + "rotationCenterX": 55, + "rotationCenterY": 66 }, { "name": "Pico-d", - "md5": "594704bf12e3c4d9e83bb91661ad709a.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "angry" ], - "info": [ - 55, - 66, - 1 - ] + "assetId": "d6dfa2efe58939af4c85755feb3c0375", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d6dfa2efe58939af4c85755feb3c0375.svg", + "rotationCenterX": 55, + "rotationCenterY": 66 }, { "name": "Pitcher-a", - "md5": "24008f02de4b0d999d4526d34dec8b76.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 42, - 74, - 1 - ] + "assetId": "bceae719ba1ec230afec56f14a1e4d52", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bceae719ba1ec230afec56f14a1e4d52.svg", + "rotationCenterX": 42, + "rotationCenterY": 74 }, { "name": "Pitcher-b", - "md5": "4644ab73c577ed878e3ccaa3d89ccc2b.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 75, - 97, - 1 - ] + "assetId": "049132404cb2cb157830aaf18aee6a24", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "049132404cb2cb157830aaf18aee6a24.svg", + "rotationCenterX": 75, + "rotationCenterY": 97 }, { "name": "Pitcher-c", - "md5": "f46aa0b114a9977c52eeefa252953e2b.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 69, - 98, - 1 - ] + "assetId": "fc955dec7f1e97f1ddd9f8245a80907e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fc955dec7f1e97f1ddd9f8245a80907e.svg", + "rotationCenterX": 69, + "rotationCenterY": 98 }, { "name": "Pitcher-d", - "md5": "d75a06e24f717e8647db27e94618e693.svg", - "type": "costume", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 84, - 57, - 1 - ] + "assetId": "ae8aa57ce6e5729d30d8b785bec97774", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ae8aa57ce6e5729d30d8b785bec97774.svg", + "rotationCenterX": 84, + "rotationCenterY": 57 }, { "name": "Planet2", - "md5": "978784738c1d9dd4b1d397fd18bdf406.svg", - "type": "costume", "tags": [ "space" ], - "info": [ - 72, - 72, - 1 - ] + "assetId": "50cde8a4a737da0eba1ab73eb263f836", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "50cde8a4a737da0eba1ab73eb263f836.svg", + "rotationCenterX": 72, + "rotationCenterY": 72 }, { "name": "Polar Bear-a", - "md5": "b1d892d9f8a897bc6a446e2ff766ba74.svg", - "type": "costume", "tags": [ "bear", "animals", @@ -8188,16 +8263,15 @@ "arctic", "robert hunter" ], - "info": [ - 104, - 42, - 1 - ] + "assetId": "d050a3394b61ade080f7963c40192e7d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d050a3394b61ade080f7963c40192e7d.svg", + "rotationCenterX": 104, + "rotationCenterY": 42 }, { "name": "Polar Bear-b", - "md5": "54728e795213e67ac7cecca1c32fe293.svg", - "type": "costume", "tags": [ "bear", "animals", @@ -8209,16 +8283,15 @@ "arctic", "robert hunter" ], - "info": [ - 87, - 47, - 1 - ] + "assetId": "11d00a06abd2c882672464f4867e90b6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "11d00a06abd2c882672464f4867e90b6.svg", + "rotationCenterX": 87, + "rotationCenterY": 47 }, { "name": "Polar Bear-c", - "md5": "7d5812e0aa1cde33771f9270ff521cfe.svg", - "type": "costume", "tags": [ "bear", "animals", @@ -8230,76 +8303,71 @@ "arctic", "robert hunter" ], - "info": [ - 104, - 43, - 1 - ] + "assetId": "5d7cd81aad80100368b8b77bf09ad576", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5d7cd81aad80100368b8b77bf09ad576.svg", + "rotationCenterX": 104, + "rotationCenterY": 43 }, { "name": "Potion-a", - "md5": "a317b50b255a208455a7733091adad23.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 15, - 21, - 1 - ] + "assetId": "d922ffdfe38fd30fd8787810c6bce318", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d922ffdfe38fd30fd8787810c6bce318.svg", + "rotationCenterX": 15, + "rotationCenterY": 21 }, { "name": "Potion-b", - "md5": "5f96576605c3a022df48278b630da745.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 15, - 28, - 1 - ] + "assetId": "0eceab4561534dde827bf68233f47441", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0eceab4561534dde827bf68233f47441.svg", + "rotationCenterX": 15, + "rotationCenterY": 28 }, { "name": "Potion-c", - "md5": "92d0184c28fac9acb0fb720ec599d61d.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 15, - 42, - 1 - ] + "assetId": "f8500e9530bf1136c6386f2a329519dd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f8500e9530bf1136c6386f2a329519dd.svg", + "rotationCenterX": 15, + "rotationCenterY": 42 }, { "name": "Prince", - "md5": "a760bed1cfc28a30b2dc7fd045c90792.svg", - "type": "costume", "tags": [ "people", "☥", "fantasy" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "ada9c5ce11245c467c780bceb665c42d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ada9c5ce11245c467c780bceb665c42d.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Princess-a", - "md5": "fcbf44a543dfda884d8acbd6af66faad.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -8307,16 +8375,15 @@ "castle", "emotions" ], - "info": [ - 75, - 150, - 1 - ] + "assetId": "e59f55c86ea557bdbd88302012ce8db5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e59f55c86ea557bdbd88302012ce8db5.svg", + "rotationCenterX": 75, + "rotationCenterY": 150 }, { "name": "Princess-b", - "md5": "562e5eba4a598118411be3062cfbb26f.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -8324,16 +8391,15 @@ "castle", "emotions" ], - "info": [ - 75, - 150, - 1 - ] + "assetId": "ba37f578cc6cabce6fe4d2864c9eb96f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ba37f578cc6cabce6fe4d2864c9eb96f.svg", + "rotationCenterX": 75, + "rotationCenterY": 150 }, { "name": "Princess-c", - "md5": "f3e5f466d406745cf1b6ce44b0567b9a.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -8341,16 +8407,15 @@ "castle", "emotions" ], - "info": [ - 75, - 150, - 1 - ] + "assetId": "39157d5d3280ab0b273260170d5436c2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "39157d5d3280ab0b273260170d5436c2.svg", + "rotationCenterX": 75, + "rotationCenterY": 150 }, { "name": "Princess-d", - "md5": "663134f64588f0c55e77767ba9039cfe.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -8358,16 +8423,15 @@ "castle", "emotions" ], - "info": [ - 75, - 150, - 1 - ] + "assetId": "23330150c0a09180083b597cbfeca99a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "23330150c0a09180083b597cbfeca99a.svg", + "rotationCenterX": 75, + "rotationCenterY": 150 }, { "name": "Princess-e", - "md5": "ad0ecbf907d132ddbb547666551ac087.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -8375,140 +8439,131 @@ "castle", "emotions" ], - "info": [ - 75, - 150, - 1 - ] + "assetId": "0721f5238a2bcde49d05f72ca9d21d9b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0721f5238a2bcde49d05f72ca9d21d9b.svg", + "rotationCenterX": 75, + "rotationCenterY": 150 }, { "name": "Pufferfish-a", - "md5": "81d7db99142a39c9082be2c2183f2175.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 69, - 61, - 1 - ] + "assetId": "b8aa1bd46eacc054c695b89167c3ad28", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b8aa1bd46eacc054c695b89167c3ad28.svg", + "rotationCenterX": 69, + "rotationCenterY": 61 }, { "name": "Pufferfish-b", - "md5": "6ea79950db63f5ac24d6c5091df3836b.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 69, - 61, - 1 - ] + "assetId": "1b4f39763c9848cc840522b95cc6d8ae", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1b4f39763c9848cc840522b95cc6d8ae.svg", + "rotationCenterX": 69, + "rotationCenterY": 61 }, { "name": "Pufferfish-c", - "md5": "4acf5bc398c19d58acf69fce047ee8f6.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 69, - 61, - 1 - ] + "assetId": "2266c6bb2c3a8fb80783518a08852b4a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2266c6bb2c3a8fb80783518a08852b4a.svg", + "rotationCenterX": 69, + "rotationCenterY": 61 }, { "name": "Pufferfish-d", - "md5": "c214fa8a9ceed06db03664007b8ad5c6.svg", - "type": "costume", "tags": [ "animals", "ocean", "underwater", "daria skrybchencko" ], - "info": [ - 69, - 61, - 1 - ] + "assetId": "e73e71718306f6c7085305dba142c315", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e73e71718306f6c7085305dba142c315.svg", + "rotationCenterX": 69, + "rotationCenterY": 61 }, { "name": "Puppy Back", - "md5": "05630bfa94501a3e5d61ce443a0cea70.png", - "type": "costume", "tags": [ "animals", "dog", "puppy" ], - "info": [ - 468, - 188, - 2 - ] + "assetId": "05630bfa94501a3e5d61ce443a0cea70", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "05630bfa94501a3e5d61ce443a0cea70.png", + "rotationCenterX": 234, + "rotationCenterY": 94 }, { "name": "Puppy Right", - "md5": "2768d9e44a0aab055856d301bbc2b04e.png", - "type": "costume", "tags": [ "animals", "dog", "puppy" ], - "info": [ - 214, - 206, - 2 - ] + "assetId": "2768d9e44a0aab055856d301bbc2b04e", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "2768d9e44a0aab055856d301bbc2b04e.png", + "rotationCenterX": 107, + "rotationCenterY": 103 }, { "name": "Puppy Side", - "md5": "c4aeb5c39b39ef57a3f18ace54cf7db1.png", - "type": "costume", "tags": [ "animals", "dog", "puppy" ], - "info": [ - 208, - 228, - 2 - ] + "assetId": "c4aeb5c39b39ef57a3f18ace54cf7db1", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c4aeb5c39b39ef57a3f18ace54cf7db1.png", + "rotationCenterX": 104, + "rotationCenterY": 114 }, { "name": "Puppy Sit", - "md5": "c7817052ed9e78057f877d0d56b5c6a6.png", - "type": "costume", "tags": [ "animals", "dog", "puppy" ], - "info": [ - 174, - 224, - 2 - ] + "assetId": "c7817052ed9e78057f877d0d56b5c6a6", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c7817052ed9e78057f877d0d56b5c6a6.png", + "rotationCenterX": 87, + "rotationCenterY": 112 }, { "name": "Rabbit-a", - "md5": "2f42891c3f3d63c0e591aeabc5946533.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", @@ -8517,16 +8572,15 @@ "bunnies", "fluffy" ], - "info": [ - 84, - 84, - 1 - ] + "assetId": "970f886bfa454e1daa6d6c30ef49a972", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "970f886bfa454e1daa6d6c30ef49a972.svg", + "rotationCenterX": 84, + "rotationCenterY": 84 }, { "name": "Rabbit-b", - "md5": "80e05ff501040cdc9f52fa6782e06fd2.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", @@ -8535,16 +8589,15 @@ "bunnies", "fluffy" ], - "info": [ - 84, - 84, - 1 - ] + "assetId": "1ca3f829a2c9f7fa4d1df295fe5f787c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1ca3f829a2c9f7fa4d1df295fe5f787c.svg", + "rotationCenterX": 84, + "rotationCenterY": 84 }, { "name": "Rabbit-c", - "md5": "88ed8b7925baa025b6c7fc628a64b9b1.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", @@ -8553,16 +8606,15 @@ "bunnies", "fluffy" ], - "info": [ - 84, - 84, - 1 - ] + "assetId": "49169d752f20d27fb71022b16044d759", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "49169d752f20d27fb71022b16044d759.svg", + "rotationCenterX": 84, + "rotationCenterY": 84 }, { "name": "Rabbit-d", - "md5": "5f3b8df4d6ab8a72e887f89f554db0be.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", @@ -8571,16 +8623,15 @@ "bunnies", "fluffy" ], - "info": [ - 84, - 84, - 1 - ] + "assetId": "90677c6f16380ef077d6115f6a6371ff", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "90677c6f16380ef077d6115f6a6371ff.svg", + "rotationCenterX": 84, + "rotationCenterY": 84 }, { "name": "Rabbit-e", - "md5": "3003f1135f4aa3b6c361734243621260.svg", - "type": "costume", "tags": [ "animals", "daria skrybchencko", @@ -8589,627 +8640,642 @@ "bunnies", "fluffy" ], - "info": [ - 84, - 84, - 1 - ] + "assetId": "137976ec71439e2f986caeaa70e4c932", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "137976ec71439e2f986caeaa70e4c932.svg", + "rotationCenterX": 84, + "rotationCenterY": 84 }, { "name": "Radio-a", - "md5": "d2266f31369a97fdf7ec37090bf0a968.svg", - "type": "costume", "tags": [ "radio", "music", "beatbox" ], - "info": [ - 52, - 38, - 1 - ] + "assetId": "828f0762d028605f6fe52f9287555b74", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "828f0762d028605f6fe52f9287555b74.svg", + "rotationCenterX": 52, + "rotationCenterY": 38 }, { "name": "Radio-b", - "md5": "cd4cff5586d0167fd992772360bddf68.svg", - "type": "costume", "tags": [ "radio", "music", "beatbox" ], - "info": [ - 51, - 84, - 1 - ] + "assetId": "e96676f038fc523b40392dc1676552dc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e96676f038fc523b40392dc1676552dc.svg", + "rotationCenterX": 51, + "rotationCenterY": 84 }, { "name": "Rainbow", - "md5": "680a806bd87a28c8b25b5f9b6347f022.svg", - "type": "costume", "tags": [ "things", "flying", "drawing", "color" ], - "info": [ - 72, - 36, - 1 - ] + "assetId": "033979eba12e4572b2520bd93a87583e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "033979eba12e4572b2520bd93a87583e.svg", + "rotationCenterX": 72, + "rotationCenterY": 36 }, { "name": "Referee-a", - "md5": "7caaa6c83b0f947268866b48fbf34ed9.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 44, - 63, - 1 - ] + "assetId": "46dde2baba61a7e48463ae8e58441470", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "46dde2baba61a7e48463ae8e58441470.svg", + "rotationCenterX": 44, + "rotationCenterY": 63 }, { "name": "Referee-b", - "md5": "b26bc52a8400fa3d51201e9ab4a4dbb2.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 44, - 63, - 1 - ] + "assetId": "7eeca5313c2e7d455482badff3079f64", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7eeca5313c2e7d455482badff3079f64.svg", + "rotationCenterX": 44, + "rotationCenterY": 63 }, { "name": "Referee-c", - "md5": "f96a3af7f21c0b195b8f7a84146b6704.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 55, - 62, - 1 - ] + "assetId": "5948c4160089fcc0975a867221ff2256", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5948c4160089fcc0975a867221ff2256.svg", + "rotationCenterX": 55, + "rotationCenterY": 62 }, { "name": "Referee-d", - "md5": "d6795f2992d899611ee5889811801e42.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 50, - 63, - 1 - ] + "assetId": "1cd641a48499db84636d983916b62a83", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1cd641a48499db84636d983916b62a83.svg", + "rotationCenterX": 50, + "rotationCenterY": 63 }, { "name": "Reindeer", - "md5": "0fff0b181cc4d9250b5b985cc283b049.svg", - "type": "costume", "tags": [ "animals", "mammals", "holiday" ], - "info": [ - 39, - 70, - 1 - ] + "assetId": "60993a025167e7886736109dca5d55e2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "60993a025167e7886736109dca5d55e2.svg", + "rotationCenterX": 39, + "rotationCenterY": 70 }, { "name": "Retro Robot A", - "md5": "a17c1ce38c261395ae268f3b8a9037db.svg", - "type": "costume", "tags": [ "robot" ], - "info": [ - 55, - 86, - 1 - ] + "assetId": "35070c1078c4eec153ea2769516c922c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "35070c1078c4eec153ea2769516c922c.svg", + "rotationCenterX": 55.04000000000008, + "rotationCenterY": 85.55 }, { "name": "Retro Robot B", - "md5": "bfb5afe62358ef542f118299bb53d4b7.svg", - "type": "costume", "tags": [ "robot" ], - "info": [ - 52, - 88, - 1 - ] + "assetId": "d139f89665962dcaab4cb2b246359ba1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d139f89665962dcaab4cb2b246359ba1.svg", + "rotationCenterX": 50.49583299552708, + "rotationCenterY": 87.39 }, { "name": "Retro Robot C", - "md5": "f925e3bde178001133a11fa97847a9ae.svg", - "type": "costume", "tags": [ "robot" ], - "info": [ - 72, - 91, - 1 - ] + "assetId": "53398a713b144ecda6ec32fb4a8d28e1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "53398a713b144ecda6ec32fb4a8d28e1.svg", + "rotationCenterX": 70.61999999999998, + "rotationCenterY": 90.3795 }, { "name": "Ripley-a", - "md5": "417ec9f25ad70281564e85e67c97aa08.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 57, - 89, - 1 - ] + "assetId": "e751d0a781694897f75046eb2810e9a5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e751d0a781694897f75046eb2810e9a5.svg", + "rotationCenterX": 57, + "rotationCenterY": 89 }, { "name": "Ripley-b", - "md5": "e40918acf5c4d1d0d42b437b6b6e965d.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 57, - 89, - 1 - ] + "assetId": "3ab169f52ea3783270d28ef035a5a7c5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3ab169f52ea3783270d28ef035a5a7c5.svg", + "rotationCenterX": 57, + "rotationCenterY": 89 }, { "name": "Ripley-c", - "md5": "5fb713effcdae17208e6e89527bf720c.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 57, - 89, - 1 - ] + "assetId": "043373c51689f3df8bf50eb12c4e3d39", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "043373c51689f3df8bf50eb12c4e3d39.svg", + "rotationCenterX": 57, + "rotationCenterY": 89 }, { "name": "Ripley-d", - "md5": "6c6597c221c9a5b46c160f537b9795a2.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 85, - 89, - 1 - ] + "assetId": "8e173178d886d1cb272877e8923d651b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8e173178d886d1cb272877e8923d651b.svg", + "rotationCenterX": 85, + "rotationCenterY": 89 }, { "name": "Ripley-e", - "md5": "92909161afd79673c93a77d15fe8d456.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 56, - 89, - 1 - ] + "assetId": "f798adaf44e8891c5e2f1b2a82a613b2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f798adaf44e8891c5e2f1b2a82a613b2.svg", + "rotationCenterX": 56, + "rotationCenterY": 89 }, { "name": "Ripley-f", - "md5": "16e31a6b510ba4e8c1215e6e3a41d9f9.svg", - "type": "costume", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 58, - 90, - 1 - ] + "assetId": "90feaffe3d0c4d31287d57bd1bc64afa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "90feaffe3d0c4d31287d57bd1bc64afa.svg", + "rotationCenterX": 58, + "rotationCenterY": 90 }, { "name": "Robot-a", - "md5": "cb3985cd066ccbab11954709b3d54c17.svg", - "type": "costume", "tags": [ "space", "robot", "wren mcdonald" ], - "info": [ - 74, - 109, - 1 - ] + "assetId": "89679608327ad572b93225d06fe9edda", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "89679608327ad572b93225d06fe9edda.svg", + "rotationCenterX": 58.44040786180267, + "rotationCenterY": 95.79979917361628 }, { "name": "Robot-b", - "md5": "fc9276d0909539fd31c30db7b2e08bf9.svg", - "type": "costume", "tags": [ "space", "robot", "wren mcdonald" ], - "info": [ - 56, - 97, - 1 - ] + "assetId": "36d1098b880dbe47e58d93e7b2842381", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "36d1098b880dbe47e58d93e7b2842381.svg", + "rotationCenterX": 55.442543885282845, + "rotationCenterY": 96.58879942566811 }, { "name": "Robot-c", - "md5": "c5e02f00d233199fea1c51b71c402ce4.svg", - "type": "costume", "tags": [ "space", "robot", "wren mcdonald" ], - "info": [ - 63, - 97, - 1 - ] + "assetId": "4f5441207afc9bc075b0b404dbba8b59", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4f5441207afc9bc075b0b404dbba8b59.svg", + "rotationCenterX": 62.61885234361475, + "rotationCenterY": 96.97427621034126 }, { "name": "Robot-d", - "md5": "ca2cf7d6c0446fbce36621006a4b0fac.svg", - "type": "costume", "tags": [ "space", "robot", "wren mcdonald" ], - "info": [ - 59, - 95, - 1 - ] + "assetId": "10060b3b58c77345cfe92288a46e5c20", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "10060b3b58c77345cfe92288a46e5c20.svg", + "rotationCenterX": 59, + "rotationCenterY": 95 }, { "name": "Rocketship-a", - "md5": "85190bb07708855c0896224340e159ed.svg", - "type": "costume", "tags": [ "space", "spaceship", "wren mcdonald" ], - "info": [ - 63, - 92, - 1 - ] + "assetId": "525c06ceb3a351244bcd810c9ba951c7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "525c06ceb3a351244bcd810c9ba951c7.svg", + "rotationCenterX": 63, + "rotationCenterY": 92 }, { "name": "Rocketship-b", - "md5": "2c0f804073ec656a86bbc3ebdf18bf5d.svg", - "type": "costume", "tags": [ "space", "spaceship", "wren mcdonald" ], - "info": [ - 54, - 92, - 1 - ] + "assetId": "10f83786e5ee34f40ee43b49bba89ee2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "10f83786e5ee34f40ee43b49bba89ee2.svg", + "rotationCenterX": 54, + "rotationCenterY": 92 }, { "name": "Rocketship-c", - "md5": "13a0accfa405979e4deee12e6eb9c41e.svg", - "type": "costume", "tags": [ "space", "spaceship", "wren mcdonald" ], - "info": [ - 59, - 91, - 1 - ] + "assetId": "a6ff2f1344a18cc0a4bcc945e00afaf4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a6ff2f1344a18cc0a4bcc945e00afaf4.svg", + "rotationCenterX": 58.746896096779665, + "rotationCenterY": 90.91206944356854 }, { "name": "Rocketship-d", - "md5": "f4d0c6da1c167abbd8e86ff720ae24f9.svg", - "type": "costume", "tags": [ "space", "spaceship", "wren mcdonald" ], - "info": [ - 65, - 91, - 1 - ] + "assetId": "5682c68af2cc8aea791f0373e9ed03d8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5682c68af2cc8aea791f0373e9ed03d8.svg", + "rotationCenterX": 65, + "rotationCenterY": 91 }, { "name": "Rocketship-e", - "md5": "6e58c447e994a38b51eeb105dff5711c.svg", - "type": "costume", "tags": [ "space", "spaceship", "wren mcdonald" ], - "info": [ - 71, - 111, - 1 - ] + "assetId": "49ee475c516a444d8a512724063b8b98", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "49ee475c516a444d8a512724063b8b98.svg", + "rotationCenterX": 57.220799012796846, + "rotationCenterY": 85.12261084456834 }, { "name": "Rocks", - "md5": "82c79fdb6a7d9c49ab7f70ee79a3d7f8.svg", - "type": "costume", "tags": [ "things", "potassium" ], - "info": [ - 59, - 15, - 1 - ] + "assetId": "55426ccbb5c49b1526e53586943f3ec3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "55426ccbb5c49b1526e53586943f3ec3.svg", + "rotationCenterX": 59, + "rotationCenterY": 15 }, { "name": "Rooster-a", - "md5": "db49a3dc8db15ea2b92d7934488f996b.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 59, - 70, - 1 - ] + "assetId": "0ae345deb1c81ec7f4f4644c26ac85fa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0ae345deb1c81ec7f4f4644c26ac85fa.svg", + "rotationCenterX": 59, + "rotationCenterY": 70 }, { "name": "Rooster-b", - "md5": "c5aa68995a2ac203d6fe2e4dd9d86911.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 58, - 70, - 1 - ] + "assetId": "bd5f701c99aa6512bac7b87c51e7cd46", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bd5f701c99aa6512bac7b87c51e7cd46.svg", + "rotationCenterX": 58, + "rotationCenterY": 70 }, { "name": "Rooster-c", - "md5": "b7a5c9f9d387cc7d36d6ed935d2a46b1.svg", - "type": "costume", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 54, - 72, - 1 - ] + "assetId": "6490360bd5d6efd2b646fb24c19df6b1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6490360bd5d6efd2b646fb24c19df6b1.svg", + "rotationCenterX": 54, + "rotationCenterY": 72 }, { "name": "Ruby-a", - "md5": "c30210e8f719c3a4d2c7cc6917a39300.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 108, - 344, - 2 - ] + "assetId": "c30210e8f719c3a4d2c7cc6917a39300", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "c30210e8f719c3a4d2c7cc6917a39300.png", + "rotationCenterX": 54, + "rotationCenterY": 172 }, { "name": "Ruby-b", - "md5": "fc15fdbcc535473f6140cab28197f3be.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 152, - 284, - 2 - ] + "assetId": "fc15fdbcc535473f6140cab28197f3be", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "fc15fdbcc535473f6140cab28197f3be.png", + "rotationCenterX": 76, + "rotationCenterY": 142 }, { "name": "Sailboat", - "md5": "ca241a938a2c44a0de6b91230012ff39.png", - "type": "costume", "tags": [ "boat", "transportation" ], - "info": [ - 448, - 364, - 2 - ] + "assetId": "ca241a938a2c44a0de6b91230012ff39", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "ca241a938a2c44a0de6b91230012ff39.png", + "rotationCenterX": 224, + "rotationCenterY": 182 }, { "name": "Sam", - "md5": "8208e99159b36c957fb9fbc187e51bc7.png", - "type": "costume", "tags": [ "people" ], - "info": [ - 234, - 318, - 2 - ] + "assetId": "8208e99159b36c957fb9fbc187e51bc7", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "8208e99159b36c957fb9fbc187e51bc7.png", + "rotationCenterX": 117, + "rotationCenterY": 159 + }, + { + "name": "Sasha-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "e26bf53469cafd730ca150e745ceeafc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e26bf53469cafd730ca150e745ceeafc.svg", + "rotationCenterX": 48.12538146972656, + "rotationCenterY": 132.3017578125 + }, + { + "name": "Sasha-b", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "a0b8890ce458aebed5e7002e1897508e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a0b8890ce458aebed5e7002e1897508e.svg", + "rotationCenterX": 40.4882598059082, + "rotationCenterY": 132.05174255371094 + }, + { + "name": "Sasha-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "89bb25e1465eb9481d267e4f9df592af", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "89bb25e1465eb9481d267e4f9df592af.svg", + "rotationCenterX": 56.06647351528716, + "rotationCenterY": 131.95398475097656 }, { "name": "Saxophone-a", - "md5": "e9e4297f5d7e630a384b1dea835ec72d.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 47, - 80, - 1 - ] + "assetId": "4414c51bdd03f60f40a1210e1d55cf57", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4414c51bdd03f60f40a1210e1d55cf57.svg", + "rotationCenterX": 47, + "rotationCenterY": 80 }, { "name": "Saxophone-b", - "md5": "04e5650480bfcf9190aa35bbd8d67b8e.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 47, - 80, - 1 - ] + "assetId": "459a64bebb7a788395c70e5369ab4746", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "459a64bebb7a788395c70e5369ab4746.svg", + "rotationCenterX": 47, + "rotationCenterY": 80 }, { "name": "Scarf-a", - "md5": "5d671a4eb5c42e365d3c0ba1b885d9d8.svg", - "type": "costume", "tags": [ "fashion", "clothing", "blue", "scarf" ], - "info": [ - 54, - 23, - 1 - ] + "assetId": "213db212d5d0c602f85cb248719ce785", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "213db212d5d0c602f85cb248719ce785.svg", + "rotationCenterX": 54, + "rotationCenterY": 23 }, { "name": "Scarf-b", - "md5": "0c03668b4e26eba969ad803a4e810c78.svg", - "type": "costume", "tags": [ "fashion", "clothing", "scarf", "red" ], - "info": [ - 54, - 23, - 1 - ] + "assetId": "05b06ab8d2c6e2110896d70bb60a9fd7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "05b06ab8d2c6e2110896d70bb60a9fd7.svg", + "rotationCenterX": 54, + "rotationCenterY": 23 }, { "name": "Scarf-c", - "md5": "ce66662165e2756070f1b12e0a7cb5db.svg", - "type": "costume", "tags": [ "fashionclothing", "scarf", "purple" ], - "info": [ - 30, - 44, - 1 - ] + "assetId": "4a85e4e6232f12abf9802bec4aa419b3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4a85e4e6232f12abf9802bec4aa419b3.svg", + "rotationCenterX": 30, + "rotationCenterY": 44 }, { "name": "Shark-a", - "md5": "4ca6776e9c021e8b21c3346793c9361d.svg", - "type": "costume", "tags": [ "animals", "underwater", "ipzy", "fish" ], - "info": [ - 150, - 60, - 1 - ] + "assetId": "6c8008ae677ec51af8da5023fa2cd521", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6c8008ae677ec51af8da5023fa2cd521.svg", + "rotationCenterX": 150, + "rotationCenterY": 60 }, { "name": "Shark-b", - "md5": "0bb623f0bbec53ee9667cee0b7ad6d47.svg", - "type": "costume", "tags": [ "animals", "underwater", "ipzy", "fish" ], - "info": [ - 150, - 60, - 1 - ] + "assetId": "b769db8fcbbf2609f0552db62ec1f94a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b769db8fcbbf2609f0552db62ec1f94a.svg", + "rotationCenterX": 150, + "rotationCenterY": 60 }, { "name": "Shark2-a", - "md5": "7c0a907eae79462f69f8e2af8e7df828.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -9219,16 +9285,15 @@ "carnivore", "chomp" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "8a8d551e951087050cfa88fc64f9b4db", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8a8d551e951087050cfa88fc64f9b4db.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Shark2-b", - "md5": "cff9ae87a93294693a0650b38a7a33d2.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -9238,16 +9303,15 @@ "carnivore", "chomp" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "6182a0628eadf2d16624864bea964432", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6182a0628eadf2d16624864bea964432.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Shark2-c", - "md5": "afeae3f998598424f7c50918507f6ce6.svg", - "type": "costume", "tags": [ "animals", "ocean", @@ -9257,148 +9321,138 @@ "carnivore", "chomp" ], - "info": [ - 77, - 37, - 1 - ] + "assetId": "7f4440b268358417aa79ccef06877c57", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7f4440b268358417aa79ccef06877c57.svg", + "rotationCenterX": 77, + "rotationCenterY": 37 }, { "name": "Shirt-a", - "md5": "659465944053fe6fb6aa1ed0e11be9aa.svg", - "type": "costume", "tags": [ "fashion", "shirt" ], - "info": [ - 46, - 40, - 1 - ] + "assetId": "43e916bbe0ba7cecd08407d25ac3d104", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "43e916bbe0ba7cecd08407d25ac3d104.svg", + "rotationCenterX": 46, + "rotationCenterY": 40 }, { "name": "Shoes-a", - "md5": "4639a1af5bc91f1a6f14e822cd46972f.svg", - "type": "costume", "tags": [ "fashion", "shoes" ], - "info": [ - 40, - 13, - 1 - ] + "assetId": "f89f1656251248f1591aa67ae946c047", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f89f1656251248f1591aa67ae946c047.svg", + "rotationCenterX": 40, + "rotationCenterY": 13 }, { "name": "Shoes-b", - "md5": "6ba2a692c17f47170d611578a5620ae5.svg", - "type": "costume", "tags": [ "fashion", "shoes" ], - "info": [ - 40, - 31, - 1 - ] + "assetId": "71b5a444d482455e9956cfd52d20526a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "71b5a444d482455e9956cfd52d20526a.svg", + "rotationCenterX": 40, + "rotationCenterY": 31 }, { "name": "Shoes-c", - "md5": "14c6843195bd13824d253cb3fdb9e6de.svg", - "type": "costume", "tags": [ "fashion", "shoes" ], - "info": [ - 45, - 33, - 1 - ] + "assetId": "724d9a8984279949ce452fc9b2e437a6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "724d9a8984279949ce452fc9b2e437a6.svg", + "rotationCenterX": 45, + "rotationCenterY": 33 }, { "name": "Shoes-d", - "md5": "1130f7ca93716bac6afa31af86329e92.svg", - "type": "costume", "tags": [ "fashion", "shoes" ], - "info": [ - 44, - 32, - 1 - ] + "assetId": "1e813a1618f38212a6febaa7e6b8d712", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1e813a1618f38212a6febaa7e6b8d712.svg", + "rotationCenterX": 44, + "rotationCenterY": 32 }, { "name": "Shorts-a", - "md5": "d9b580c913c0d1d1a996dd733af91e68.svg", - "type": "costume", "tags": [ "fashion", "pants", "shorts", "clothing" ], - "info": [ - 35, - 37, - 1 - ] + "assetId": "ea78ad682811f9c42731ec648ec7af3c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ea78ad682811f9c42731ec648ec7af3c.svg", + "rotationCenterX": 35, + "rotationCenterY": 37 }, { "name": "Shorts-b", - "md5": "1e07ab2763e5e0f5557f97c0e2c89020.svg", - "type": "costume", "tags": [ "fashion", "pants", "shorts", "clothing" ], - "info": [ - 43, - 36, - 1 - ] + "assetId": "d5fc56b7247f079e5821d74d3e91e7a6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d5fc56b7247f079e5821d74d3e91e7a6.svg", + "rotationCenterX": 43, + "rotationCenterY": 36 }, { "name": "Shorts-c", - "md5": "dc9e0a1c2489ec0bf59a937b6c8ae85b.svg", - "type": "costume", "tags": [ "fashion", "pants", "shorts", "clothing" ], - "info": [ - 35, - 29, - 1 - ] + "assetId": "4d5f7a13ed20dc4f8fd194a7eb3f625f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4d5f7a13ed20dc4f8fd194a7eb3f625f.svg", + "rotationCenterX": 35, + "rotationCenterY": 29 }, { "name": "Singer1", - "md5": "e47ef1af3b925e5ac9e3b3f809d440b3.svg", - "type": "costume", "tags": [ "people", "music" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "d6ff94dc7e24200c28015ee5d6373140", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d6ff94dc7e24200c28015ee5d6373140.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Skeleton-a", - "md5": "e06f6eaf4fd27ff22f4c8207aa13c967.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -9407,16 +9461,15 @@ "monster", "alex eben meyer" ], - "info": [ - 59, - 100, - 1 - ] + "assetId": "c4d755c672a0826caa7b6fb767cc3f9b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c4d755c672a0826caa7b6fb767cc3f9b.svg", + "rotationCenterX": 59, + "rotationCenterY": 100 }, { "name": "Skeleton-b", - "md5": "06769ddf5fad85e101c7beda554d60b9.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -9425,16 +9478,15 @@ "monster", "alex eben meyer" ], - "info": [ - 69, - 90, - 1 - ] + "assetId": "f4a00b2bd214b1d8412a2e89b2030354", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f4a00b2bd214b1d8412a2e89b2030354.svg", + "rotationCenterX": 69, + "rotationCenterY": 90 }, { "name": "Skeleton-d", - "md5": "155efd0dfdc59a0e2a546a4a7d068ece.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -9443,16 +9495,15 @@ "monster", "alex eben meyer" ], - "info": [ - 51, - 100, - 1 - ] + "assetId": "67108e6b1d0f41aba2f94f81114ebf59", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "67108e6b1d0f41aba2f94f81114ebf59.svg", + "rotationCenterX": 51, + "rotationCenterY": 100 }, { "name": "Skeleton-e", - "md5": "c41a11468602522cdc6dec7043215f65.svg", - "type": "costume", "tags": [ "fantasy", "spooky", @@ -9461,105 +9512,98 @@ "monster", "alex eben meyer" ], - "info": [ - 55, - 89, - 1 - ] + "assetId": "3cfff37072a4138b977ba406c290b419", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3cfff37072a4138b977ba406c290b419.svg", + "rotationCenterX": 55, + "rotationCenterY": 89 }, { "name": "Snake-a", - "md5": "4d06e12d90479461303d828f0970f2d4.svg", - "type": "costume", "tags": [ "animals", "reptile", "robert hunter" ], - "info": [ - 142, - 68, - 1 - ] + "assetId": "f0e6ebdbdc8571b42f8a48cc2aed3042", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f0e6ebdbdc8571b42f8a48cc2aed3042.svg", + "rotationCenterX": 142, + "rotationCenterY": 68 }, { "name": "Snake-b", - "md5": "a8546a5f9ccaa2bdb678a362c50a17ec.svg", - "type": "costume", "tags": [ "animals", "reptile", "robert hunter" ], - "info": [ - 142, - 68, - 1 - ] + "assetId": "42519e0ee19d75def88a514d3c49ce37", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "42519e0ee19d75def88a514d3c49ce37.svg", + "rotationCenterX": 142, + "rotationCenterY": 68 }, { "name": "Snake-c", - "md5": "d993a7d70179777c14ac91a07e711d90.svg", - "type": "costume", "tags": [ "animals", "reptile", "robert hunter" ], - "info": [ - 142, - 68, - 1 - ] + "assetId": "a0acb49efdf60b20cea0833eeedd44a1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a0acb49efdf60b20cea0833eeedd44a1.svg", + "rotationCenterX": 142, + "rotationCenterY": 68 }, { "name": "Snowflake", - "md5": "67de2af723246de37d7379b76800ee0b.svg", - "type": "costume", "tags": [ "winter" ], - "info": [ - 104, - 103, - 1 - ] + "assetId": "083735cc9cd0e6d8c3dbab5ab9ee5407", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "083735cc9cd0e6d8c3dbab5ab9ee5407.svg", + "rotationCenterX": 104, + "rotationCenterY": 103 }, { "name": "Snowman", - "md5": "56c71c31c17b9bc66a2aab0342cf94b2.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "winter" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "0f109df620f935b94cb154101e6586d4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0f109df620f935b94cb154101e6586d4.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Soccer Ball", - "md5": "73eaf05fed60e9d65867508736f84569.svg", - "type": "costume", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 23, - 22, - 1 - ] + "assetId": "5d973d7a3a8be3f3bd6e1cd0f73c32b5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5d973d7a3a8be3f3bd6e1cd0f73c32b5.svg", + "rotationCenterX": 23, + "rotationCenterY": 22 }, { "name": "Speaker", - "md5": "44dc3a2ec161999545914d1f77332d76.svg", - "type": "costume", "tags": [ "music", "things", @@ -9567,44 +9611,41 @@ "treble", "concert" ], - "info": [ - 53, - 79, - 1 - ] + "assetId": "697f6becae5321f77990636564ef0c97", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "697f6becae5321f77990636564ef0c97.svg", + "rotationCenterX": 53, + "rotationCenterY": 79 }, { "name": "Squirrel", - "md5": "b86efb7f23387300cf9037a61f328ab9.png", - "type": "costume", "tags": [ "animals", "scoob" ], - "info": [ - 316, - 292, - 2 - ] + "assetId": "b86efb7f23387300cf9037a61f328ab9", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "b86efb7f23387300cf9037a61f328ab9.png", + "rotationCenterX": 158, + "rotationCenterY": 146 }, { "name": "Star", - "md5": "e929c1274c379b6b6fed12e6dec63368.svg", - "type": "costume", "tags": [ "shapes", "space" ], - "info": [ - 22, - 23, - 1 - ] + "assetId": "551629f2a64c1f3703e57aaa133effa6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "551629f2a64c1f3703e57aaa133effa6.svg", + "rotationCenterX": 22, + "rotationCenterY": 23 }, { "name": "Starfish-a", - "md5": "3d1101bbc24ae292a36356af325f660c.svg", - "type": "costume", "tags": [ "animals", "echinodermata", @@ -9612,16 +9653,15 @@ "sea", "ocean" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "69dca6e42d45d3fef89f81de40b11bef", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "69dca6e42d45d3fef89f81de40b11bef.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Starfish-b ", - "md5": "ad8007f4e63693984d4adc466ffa3ad2.svg", - "type": "costume", "tags": [ "animals", "echinodermata", @@ -9629,105 +9669,98 @@ "sea", "ocean" ], - "info": [ - 53, - 60, - 1 - ] + "assetId": "be2ca55a5688670302e7c3f79d5040d1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "be2ca55a5688670302e7c3f79d5040d1.svg", + "rotationCenterX": 53, + "rotationCenterY": 60 }, { "name": "Stop", - "md5": "5b9e3e8edffb0bd4914113609eec5e04.svg", - "type": "costume", "tags": [ "shapes", "things" ], - "info": [ - 25, - 25, - 1 - ] + "assetId": "1e2c3987e4cdb1f317b1773662719b13", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1e2c3987e4cdb1f317b1773662719b13.svg", + "rotationCenterX": 25, + "rotationCenterY": 25 }, { "name": "Strawberry-a", - "md5": "b4cff4b414b5f7fbf25c7c45abfb6c62.svg", - "type": "costume", "tags": [ "food", "fruit", "alex eben meyer" ], - "info": [ - 31, - 47, - 1 - ] + "assetId": "2fa57942dc7ded7eddc4d41554768d67", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2fa57942dc7ded7eddc4d41554768d67.svg", + "rotationCenterX": 31, + "rotationCenterY": 47 }, { "name": "Strawberry-b", - "md5": "ebb8720dc679772e3dcb1b49e0503aa4.svg", - "type": "costume", "tags": [ "food", "fruit", "alex eben meyer" ], - "info": [ - 43, - 47, - 1 - ] + "assetId": "662279c12965d2913a060a55aebec496", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "662279c12965d2913a060a55aebec496.svg", + "rotationCenterX": 43, + "rotationCenterY": 47 }, { "name": "Strawberry-c", - "md5": "278dc229a71e2fbff475908ca5c2483e.svg", - "type": "costume", "tags": [ "food", "fruit", "alex eben meyer" ], - "info": [ - 43, - 47, - 1 - ] + "assetId": "10ed1486ff4bab3eebb3b8ae55d81ccd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "10ed1486ff4bab3eebb3b8ae55d81ccd.svg", + "rotationCenterX": 43, + "rotationCenterY": 47 }, { "name": "Strawberry-d", - "md5": "68a023e80cb9eff2350374361c034f08.svg", - "type": "costume", "tags": [ "food", "fruit", "alex eben meyer" ], - "info": [ - 41, - 47, - 1 - ] + "assetId": "aa4eae20c750900e4f63e6ede4083d81", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "aa4eae20c750900e4f63e6ede4083d81.svg", + "rotationCenterX": 41, + "rotationCenterY": 47 }, { "name": "Strawberry-e", - "md5": "9fef0cd91ba59163d74f4464b02824b8.svg", - "type": "costume", "tags": [ "food", "fruit", "alex eben meyer" ], - "info": [ - 32, - 36, - 1 - ] + "assetId": "f5008785e74590689afca4b578d108a4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f5008785e74590689afca4b578d108a4.svg", + "rotationCenterX": 32, + "rotationCenterY": 36 }, { "name": "Sun", - "md5": "14b0508da0dc30e83b2bede13c1be1e9.svg", - "type": "costume", "tags": [ "space", "star", @@ -9736,88 +9769,82 @@ "fusion", "nuclear" ], - "info": [ - 54, - 54, - 1 - ] + "assetId": "406808d86aff20a15d592b308e166a32", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "406808d86aff20a15d592b308e166a32.svg", + "rotationCenterX": 54, + "rotationCenterY": 54 }, { "name": "Sunglasses-a", - "md5": "424393e8705aeadcfecb8559ce4dcea2.svg", - "type": "costume", "tags": [ "fashion", "cool" ], - "info": [ - 37, - 14, - 1 - ] + "assetId": "c95a05c3bed665027d267d93454c428a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c95a05c3bed665027d267d93454c428a.svg", + "rotationCenterX": 37, + "rotationCenterY": 14 }, { "name": "Sunglasses-b", - "md5": "3185d2295bbf2c5ebd0688c9e4f13076.svg", - "type": "costume", "tags": [ "fashion", "cool" ], - "info": [ - 29, - 10, - 1 - ] + "assetId": "dc568ae1f8b9b6544f0634ef975a7098", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dc568ae1f8b9b6544f0634ef975a7098.svg", + "rotationCenterX": 29, + "rotationCenterY": 10 }, { "name": "Tabla-a", - "md5": "68ce53b53fcc68744584c28d20144c4f.svg", - "type": "costume", "tags": [ "drums", " music", " ericr" ], - "info": [ - 79, - 67, - 1 - ] + "assetId": "af071d9d714c5c622e2bb07133698ce3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "af071d9d714c5c622e2bb07133698ce3.svg", + "rotationCenterX": 79, + "rotationCenterY": 67 }, { "name": "Tabla-b", - "md5": "01b6ffb8691d32be10fabc77ddfb55b0.svg", - "type": "costume", "tags": [ "drums", " music", " ericr" ], - "info": [ - 86, - 73, - 1 - ] + "assetId": "992d6359be830d977559dad91b04f698", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "992d6359be830d977559dad91b04f698.svg", + "rotationCenterX": 86, + "rotationCenterY": 73 }, { "name": "Taco", - "md5": "bc78fb90ed373d56c11d5fafa4203ccd.svg", - "type": "costume", "tags": [ "food", "designerd" ], - "info": [ - 78, - 48, - 1 - ] + "assetId": "383ea1ef802bc2706670536cfa8271b7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "383ea1ef802bc2706670536cfa8271b7.svg", + "rotationCenterX": 78, + "rotationCenterY": 48 }, { "name": "Taco-wizard", - "md5": "5e9e65db20d403b590578ed44b1a3792.svg", - "type": "costume", "tags": [ "food", "fantasy", @@ -9825,535 +9852,726 @@ "alakazam", "designerd" ], - "info": [ - 125, - 82, - 1 - ] + "assetId": "c97113d17afeaac9f461ea0ec257ef26", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c97113d17afeaac9f461ea0ec257ef26.svg", + "rotationCenterX": 125, + "rotationCenterY": 82 }, { "name": "Takeout-a", - "md5": "05c010b2425c4433353ff85d43ed7a1d.svg", - "type": "costume", "tags": [ "food", "alex eben meyer" ], - "info": [ - 33, - 41, - 1 - ] + "assetId": "40f63eb18230c4defa9051830beffb0f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "40f63eb18230c4defa9051830beffb0f.svg", + "rotationCenterX": 33, + "rotationCenterY": 41 }, { "name": "Takeout-b", - "md5": "26c3be261cbb0327eaa1afe0467c80d0.svg", - "type": "costume", "tags": [ "food", "alex eben meyer" ], - "info": [ - 33, - 42, - 1 - ] + "assetId": "e03cd6e668e0eeddb2da98a095e2f30f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e03cd6e668e0eeddb2da98a095e2f30f.svg", + "rotationCenterX": 33, + "rotationCenterY": 42 }, { "name": "Takeout-c", - "md5": "801fa349b34531a15d467fef2b940f87.svg", - "type": "costume", "tags": [ "food", "alex eben meyer" ], - "info": [ - 33, - 53, - 1 - ] + "assetId": "24cc271fd6cf55f25b71e78faf749a98", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "24cc271fd6cf55f25b71e78faf749a98.svg", + "rotationCenterX": 33, + "rotationCenterY": 53 }, { "name": "Takeout-d", - "md5": "24e21e2846b59cdf2c390ebe985b3c74.svg", - "type": "costume", "tags": [ "food", "alex eben meyer" ], - "info": [ - 40, - 42, - 1 - ] + "assetId": "2b32d6a4a724c38bfaeb494d30827f19", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2b32d6a4a724c38bfaeb494d30827f19.svg", + "rotationCenterX": 40, + "rotationCenterY": 42 }, { "name": "Takeout-e", - "md5": "95584a98e22df5ca7370f5c01ebe6d06.svg", - "type": "costume", "tags": [ "food", "alex eben meyer" ], - "info": [ - 41, - 35, - 1 - ] + "assetId": "9202a59888545c56c864bacb700c4297", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9202a59888545c56c864bacb700c4297.svg", + "rotationCenterX": 41, + "rotationCenterY": 35 + }, + { + "name": "Tatiana-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "5cf65a9f942ca92c93915527ff9db1e6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5cf65a9f942ca92c93915527ff9db1e6.svg", + "rotationCenterX": 60.66618579359704, + "rotationCenterY": 53.97647634953694 + }, + { + "name": "Tatiana-b", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "91fb7d056beaf553ccec03d61d72c545", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "91fb7d056beaf553ccec03d61d72c545.svg", + "rotationCenterX": 49.74537298932822, + "rotationCenterY": 61.254895800177906 + }, + { + "name": "Tatiana-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "e207fd3f99e1db8c5d66f49446f27e37", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e207fd3f99e1db8c5d66f49446f27e37.svg", + "rotationCenterX": 60.666205767105936, + "rotationCenterY": 53.86536113811712 + }, + { + "name": "Tatiana-d", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "e2ea6bbc6066574d4836e808a1c5f849", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e2ea6bbc6066574d4836e808a1c5f849.svg", + "rotationCenterX": 49.85653018505951, + "rotationCenterY": 55.72124957487232 + }, + { + "name": "Taylor-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "ae2eaae0882543dc276c8e7d56ff2e7b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ae2eaae0882543dc276c8e7d56ff2e7b.svg", + "rotationCenterX": 59.066061145351995, + "rotationCenterY": 52.19126 + }, + { + "name": "Taylor-b", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "e0082f49fc5d0d83d7fad6124ba82bb1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e0082f49fc5d0d83d7fad6124ba82bb1.svg", + "rotationCenterX": 48.612321639466984, + "rotationCenterY": 53.0163 + }, + { + "name": "Taylor-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "ae2eaae0882543dc276c8e7d56ff2e7b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ae2eaae0882543dc276c8e7d56ff2e7b.svg", + "rotationCenterX": 59.066061145351995, + "rotationCenterY": 52.19126 + }, + { + "name": "Taylor-d", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "a504d785629f2d1ca6b87e80b334d5e8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a504d785629f2d1ca6b87e80b334d5e8.svg", + "rotationCenterX": 48.945654918401004, + "rotationCenterY": 50.35257000000004 }, { "name": "Ten80 Pop Down", - "md5": "fea7045c09073700b88fae8d4d257cd1.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 148, - 376, - 2 - ] + "assetId": "fea7045c09073700b88fae8d4d257cd1", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "fea7045c09073700b88fae8d4d257cd1.png", + "rotationCenterX": 74, + "rotationCenterY": 188 }, { "name": "Ten80 Pop Front", - "md5": "86602007ae2952236d47d7fd587a56b6.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 144, - 532, - 2 - ] + "assetId": "86602007ae2952236d47d7fd587a56b6", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "86602007ae2952236d47d7fd587a56b6.png", + "rotationCenterX": 72, + "rotationCenterY": 266 }, { "name": "Ten80 Pop L Arm", - "md5": "ce2141ce97921ddc333bc65ff5bec27d.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 200, - 560, - 2 - ] + "assetId": "ce2141ce97921ddc333bc65ff5bec27d", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "ce2141ce97921ddc333bc65ff5bec27d.png", + "rotationCenterX": 100, + "rotationCenterY": 280 }, { "name": "Ten80 Pop Left", - "md5": "3c9a7eac1d696ae74ee40c6efa8fa4dd.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 368, - 532, - 2 - ] + "assetId": "3c9a7eac1d696ae74ee40c6efa8fa4dd", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "3c9a7eac1d696ae74ee40c6efa8fa4dd.png", + "rotationCenterX": 184, + "rotationCenterY": 266 }, { "name": "Ten80 Pop R Arm", - "md5": "279bd5499329f98a68cf92c68014e198.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 148, - 556, - 2 - ] + "assetId": "279bd5499329f98a68cf92c68014e198", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "279bd5499329f98a68cf92c68014e198.png", + "rotationCenterX": 74, + "rotationCenterY": 278 }, { "name": "Ten80 Pop Right", - "md5": "548bdf23904e409c1fcc0992f44d0b4c.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 156, - 552, - 2 - ] + "assetId": "548bdf23904e409c1fcc0992f44d0b4c", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "548bdf23904e409c1fcc0992f44d0b4c.png", + "rotationCenterX": 78, + "rotationCenterY": 276 }, { "name": "Ten80 Pop Stand", - "md5": "377b8521c436f4f39ed2100fa1cb7c2f.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 184, - 560, - 2 - ] + "assetId": "377b8521c436f4f39ed2100fa1cb7c2f", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "377b8521c436f4f39ed2100fa1cb7c2f.png", + "rotationCenterX": 92, + "rotationCenterY": 280 }, { "name": "Ten80 Stance", - "md5": "f60f99278455c843b7833fb7615428dd.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 140, - 556, - 2 - ] + "assetId": "f60f99278455c843b7833fb7615428dd", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "f60f99278455c843b7833fb7615428dd.png", + "rotationCenterX": 70, + "rotationCenterY": 278 }, { "name": "Ten80 Top Freeze", - "md5": "8313a2229d555bbdb8ce92dffed067ad.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 108, - 516, - 2 - ] + "assetId": "8313a2229d555bbdb8ce92dffed067ad", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "8313a2229d555bbdb8ce92dffed067ad.png", + "rotationCenterX": 54, + "rotationCenterY": 258 }, { "name": "Ten80 Top L Step", - "md5": "e51942bb4651e616549cfce1ad36ff83.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 288, - 532, - 2 - ] + "assetId": "e51942bb4651e616549cfce1ad36ff83", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "e51942bb4651e616549cfce1ad36ff83.png", + "rotationCenterX": 144, + "rotationCenterY": 266 }, { "name": "Ten80 Top R Cross", - "md5": "e06ac61e96e3a5abf4ca0863816f5d28.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 412, - 504, - 2 - ] + "assetId": "e06ac61e96e3a5abf4ca0863816f5d28", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "e06ac61e96e3a5abf4ca0863816f5d28.png", + "rotationCenterX": 206, + "rotationCenterY": 252 }, { "name": "Ten80 Top R Step", - "md5": "580fba92f23d5592200eb5a9079dc38f.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 400, - 540, - 2 - ] + "assetId": "580fba92f23d5592200eb5a9079dc38f", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "580fba92f23d5592200eb5a9079dc38f.png", + "rotationCenterX": 200, + "rotationCenterY": 270 }, { "name": "Ten80 Top Stand", - "md5": "b2f75ac1cd84615efaea6a7d7a4ee205.png", - "type": "costume", "tags": [ "people", "dance" ], - "info": [ - 148, - 548, - 2 - ] + "assetId": "b2f75ac1cd84615efaea6a7d7a4ee205", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "b2f75ac1cd84615efaea6a7d7a4ee205.png", + "rotationCenterX": 74, + "rotationCenterY": 274 }, { "name": "Tennisball", - "md5": "34fa36004be0340ec845ba6bbeb5e5d5.png", - "type": "costume", "tags": [ "ball", "sports" ], - "info": [ - 60, - 60, - 2 - ] + "assetId": "34fa36004be0340ec845ba6bbeb5e5d5", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "34fa36004be0340ec845ba6bbeb5e5d5.png", + "rotationCenterX": 30, + "rotationCenterY": 30 }, { "name": "Tera-a", - "md5": "b54a4a9087435863ab6f6c908f1cac99.svg", - "type": "costume", "tags": [ "fantasy", "drawing" ], - "info": [ - 49, - 63, - 1 - ] + "assetId": "18f9a11ecdbd3ad8719beb176c484d41", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "18f9a11ecdbd3ad8719beb176c484d41.svg", + "rotationCenterX": 49, + "rotationCenterY": 63 }, { "name": "Tera-b", - "md5": "1e6b3a29351cda80d1a70a3cc0e499f2.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 49, - 64, - 1 - ] + "assetId": "365d4de6c99d71f1370f7c5e636728af", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "365d4de6c99d71f1370f7c5e636728af.svg", + "rotationCenterX": 49, + "rotationCenterY": 64 }, { "name": "Tera-c", - "md5": "7edf116cbb7111292361431521ae699e.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "happy" ], - "info": [ - 49, - 63, - 1 - ] + "assetId": "2daca5f43efc2d29fb089879448142e9", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2daca5f43efc2d29fb089879448142e9.svg", + "rotationCenterX": 49, + "rotationCenterY": 63 }, { "name": "Tera-d", - "md5": "7c3c9c8b5f4ac77de2036175712a777a.svg", - "type": "costume", "tags": [ "fantasy", "drawing", "angry" ], - "info": [ - 49, - 63, - 1 - ] + "assetId": "5456a723f3b35eaa946b974a59888793", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5456a723f3b35eaa946b974a59888793.svg", + "rotationCenterX": 49, + "rotationCenterY": 63 }, { "name": "Toucan-a", - "md5": "6c8798e606abd728b112aecedb5dc249.svg", - "type": "costume", "tags": [ "animals", "bird", "robert hunter" ], - "info": [ - 80, - 63, - 1 - ] + "assetId": "9eef2e49b3bbf371603ae783cd82db3c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9eef2e49b3bbf371603ae783cd82db3c.svg", + "rotationCenterX": 80, + "rotationCenterY": 63 }, { "name": "Toucan-b", - "md5": "a3e12be9efa0e7aa83778f6054c9c541.svg", - "type": "costume", "tags": [ "animals", "bird", "robert hunter" ], - "info": [ - 80, - 63, - 1 - ] + "assetId": "72952d831d0b67c9d056b44a4bc3d0ae", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "72952d831d0b67c9d056b44a4bc3d0ae.svg", + "rotationCenterX": 80, + "rotationCenterY": 63 }, { "name": "Toucan-c", - "md5": "56522b58a9959fd6152060346129f7cb.svg", - "type": "costume", "tags": [ "animals", "bird", "robert hunter" ], - "info": [ - 80, - 63, - 1 - ] + "assetId": "b6345d7386021ee85bb17f8aa4950eed", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b6345d7386021ee85bb17f8aa4950eed.svg", + "rotationCenterX": 80, + "rotationCenterY": 63 }, { "name": "Trampoline", - "md5": "20b16bcb61396df304cad5e8886ceb46.png", - "type": "costume", "tags": [ "sports" ], - "info": [ - 100, - 41, - 1 - ] + "assetId": "8fa3c6fcff2f25f5fe7842d68dcfe5cf", + "bitmapResolution": 2, + "dataFormat": "png", + "md5ext": "8fa3c6fcff2f25f5fe7842d68dcfe5cf.png", + "rotationCenterX": 200, + "rotationCenterY": 82 }, { "name": "Tree1", - "md5": "8c40e2662c55d17bc384f47165ac43c1.svg", - "type": "costume", "tags": [ "plants", "wood", "forest" ], - "info": [ - 77, - 126, - 1 - ] + "assetId": "d04b15886635101db8220a4361c0c88d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d04b15886635101db8220a4361c0c88d.svg", + "rotationCenterX": 77, + "rotationCenterY": 126 }, { "name": "Trees-a", - "md5": "866ed2c2971bb04157e14e935ac8521c.svg", - "type": "costume", "tags": [ "plants", "wood", "forest" ], - "info": [ - 49, - 94, - 1 - ] + "assetId": "551b3fae8eab06b49013f54009a7767a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "551b3fae8eab06b49013f54009a7767a.svg", + "rotationCenterX": 49, + "rotationCenterY": 94 }, { "name": "Trees-b", - "md5": "f1393dde1bb0fc512577995b27616d86.svg", - "type": "costume", "tags": [ "plants", "wood", "forest" ], - "info": [ - 36, - 87, - 1 - ] + "assetId": "04758bd432a8b1cab527bddf14432147", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "04758bd432a8b1cab527bddf14432147.svg", + "rotationCenterX": 36, + "rotationCenterY": 87 + }, + { + "name": "Trisha-a", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "55d31103bc86447c6a727b4f0664a5ea", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "55d31103bc86447c6a727b4f0664a5ea.svg", + "rotationCenterX": 81.34455278988648, + "rotationCenterY": 57.02459255690913 + }, + { + "name": "Trisha-b", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "c31dc8487a841f644889784ff437e2c5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c31dc8487a841f644889784ff437e2c5.svg", + "rotationCenterX": 63.260135124357646, + "rotationCenterY": 60.86251166255646 + }, + { + "name": "Trisha-c", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "55d31103bc86447c6a727b4f0664a5ea", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "55d31103bc86447c6a727b4f0664a5ea.svg", + "rotationCenterX": 81.34455278988648, + "rotationCenterY": 57.02459255690913 + }, + { + "name": "Trisha-d", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "assetId": "2d06023ec09ec312ab49055530511134", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2d06023ec09ec312ab49055530511134.svg", + "rotationCenterX": 63.275047131412066, + "rotationCenterY": 55.525379847189015 }, { "name": "Truck-a", - "md5": "51404247db5cdbc082336dfa4c03d675.svg", - "type": "costume", "tags": [ "truck", "city", "car", "vehicle" ], - "info": [ - 174, - 49, - 1 - ] + "assetId": "aaa05abc5aa182a0d7bfdc6db0f3207a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "aaa05abc5aa182a0d7bfdc6db0f3207a.svg", + "rotationCenterX": 173.6413034351145, + "rotationCenterY": 48.359999999999985 }, { "name": "Truck-b", - "md5": "1887b8233d1b0728f715a3985f0e01b6.svg", - "type": "costume", "tags": [ "truck", "city", "car", "vehicle" ], - "info": [ - 174, - 58, - 1 - ] + "assetId": "63b00424bdabc3459e5bc554c6c21e06", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "63b00424bdabc3459e5bc554c6c21e06.svg", + "rotationCenterX": 173.6413034351145, + "rotationCenterY": 58.14 }, { "name": "Truck-c", - "md5": "e45bc3f87d9f603e588abe14b63b8e90.svg", - "type": "costume", "tags": [ "truck", "city", "car", "vehicle" ], - "info": [ - 174, - 58, - 1 - ] + "assetId": "ce077e6db3573062017f94c2e4a8caea", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ce077e6db3573062017f94c2e4a8caea.svg", + "rotationCenterX": 173.67363114754104, + "rotationCenterY": 57.74000000000001 }, { "name": "Trumpet-a", - "md5": "36a48cc311fd28b4517e15d44b11587c.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 57, - 38, - 1 - ] + "assetId": "47a1ec267505be96b678df30b92ec534", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "47a1ec267505be96b678df30b92ec534.svg", + "rotationCenterX": 57, + "rotationCenterY": 38 }, { "name": "Trumpet-b", - "md5": "c04cdfd5f05ff2817b6ab78027ef5d22.svg", - "type": "costume", "tags": [ "music", "andrew rae" ], - "info": [ - 55, - 37, - 1 - ] + "assetId": "9a5c211622d6d2fed600c1809fccd21d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9a5c211622d6d2fed600c1809fccd21d.svg", + "rotationCenterX": 55, + "rotationCenterY": 37 }, { "name": "Unicorn", - "md5": "c491fd1867375aa0160b013788d188e5.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy" ], - "info": [ - 91, - 95, - 1 - ] + "assetId": "1439d51d9878276362b123c9045af6b5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1439d51d9878276362b123c9045af6b5.svg", + "rotationCenterX": 91, + "rotationCenterY": 95 }, { "name": "Unicorn 2", - "md5": "a04def38351e7fd805226345cac4fbfe.svg", - "type": "costume", "tags": [ "fantasy", "animals", @@ -10361,140 +10579,131 @@ "horn", "rainbow" ], - "info": [ - 75, - 75, - 1 - ] + "assetId": "dcbeac8e856c9ddd6c457376be6573c8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dcbeac8e856c9ddd6c457376be6573c8.svg", + "rotationCenterX": 75, + "rotationCenterY": 75 }, { "name": "Unicorn Running-a", - "md5": "d938a2bfbac8f3caf713d189fd993af5.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "walking" ], - "info": [ - 118, - 90, - 1 - ] + "assetId": "4709966d11b37e8a11d24c800e8b2859", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4709966d11b37e8a11d24c800e8b2859.svg", + "rotationCenterX": 118, + "rotationCenterY": 90 }, { "name": "Unicorn Running-b", - "md5": "663618fcc0484879de6ad485b288c444.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "walking" ], - "info": [ - 120, - 89, - 1 - ] + "assetId": "fa5fe4596494a43db8c7957d2254aee3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fa5fe4596494a43db8c7957d2254aee3.svg", + "rotationCenterX": 120, + "rotationCenterY": 89 }, { "name": "Unicorn Running-c", - "md5": "ceb2f88fe182bc61af4e3864f8b46bba.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "walking" ], - "info": [ - 121, - 90, - 1 - ] + "assetId": "f00efa25fc97f2cce2499771d6a5f809", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f00efa25fc97f2cce2499771d6a5f809.svg", + "rotationCenterX": 121, + "rotationCenterY": 90 }, { "name": "Unicorn Running-d", - "md5": "dddad08a2d03f406307ec7155f43c51c.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "walking" ], - "info": [ - 120, - 87, - 1 - ] + "assetId": "e111350b8bedefffee0d5e7e2490d446", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e111350b8bedefffee0d5e7e2490d446.svg", + "rotationCenterX": 120, + "rotationCenterY": 87 }, { "name": "Unicorn Running-e", - "md5": "cf3a00e72f3fc20d9ad15379fdb7b424.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "walking" ], - "info": [ - 119, - 90, - 1 - ] + "assetId": "8feaeec435125227c675dd95f69ff835", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8feaeec435125227c675dd95f69ff835.svg", + "rotationCenterX": 119, + "rotationCenterY": 90 }, { "name": "Unicorn Running-f", - "md5": "264a70e872af2d3f6b2abad85daf82ae.svg", - "type": "costume", "tags": [ "fantasy", "animals", "ipzy", "walking" ], - "info": [ - 117, - 86, - 1 - ] + "assetId": "1fb3d038e985c01899881bc5bb373c16", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1fb3d038e985c01899881bc5bb373c16.svg", + "rotationCenterX": 117, + "rotationCenterY": 86 }, { "name": "Wand", - "md5": "1aa56e9ef7043eaf36ecfe8e330271b7.svg", - "type": "costume", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 12, - 42, - 1 - ] + "assetId": "c021f0c7e3086a11336421dd864b7812", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c021f0c7e3086a11336421dd864b7812.svg", + "rotationCenterX": 12, + "rotationCenterY": 42 }, { "name": "Wanda", - "md5": "450bc8fbd5ab6bc2e83576aad58cd07c.svg", - "type": "costume", "tags": [ "people" ], - "info": [ - 49, - 68, - 1 - ] + "assetId": "0b008dabac95126132ab4e0c56d25400", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0b008dabac95126132ab4e0c56d25400.svg", + "rotationCenterX": 49, + "rotationCenterY": 68 }, { "name": "Watermelon-a", - "md5": "8736ecc2524895733534c888cd91fa1f.svg", - "type": "costume", "tags": [ "food", "fruit", @@ -10503,16 +10712,15 @@ "seedless", "plants" ], - "info": [ - 40, - 27, - 1 - ] + "assetId": "21d1340478e32a942914a7afd12b9f1a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "21d1340478e32a942914a7afd12b9f1a.svg", + "rotationCenterX": 40.13434982299805, + "rotationCenterY": 27.860475540161133 }, { "name": "Watermelon-b", - "md5": "1ed1c8b78eae2ee7422074d7f883031d.svg", - "type": "costume", "tags": [ "food", "fruit", @@ -10520,16 +10728,15 @@ "seeds", "plants" ], - "info": [ - 22, - 27, - 1 - ] + "assetId": "1ed1c8b78eae2ee7422074d7f883031d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1ed1c8b78eae2ee7422074d7f883031d.svg", + "rotationCenterX": 23.5, + "rotationCenterY": 28.5 }, { "name": "Watermelon-c", - "md5": "677738282686d2dcce35d731c3ddc043.svg", - "type": "costume", "tags": [ "food", "fruit", @@ -10537,31 +10744,29 @@ "seeds", "plants" ], - "info": [ - 21, - 15, - 1 - ] + "assetId": "677738282686d2dcce35d731c3ddc043", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "677738282686d2dcce35d731c3ddc043.svg", + "rotationCenterX": 21.5, + "rotationCenterY": 16 }, { "name": "Winter Hat", - "md5": "62678324450bac2154703e2978e8ab61.svg", - "type": "costume", "tags": [ "fashion", "winter", "hat" ], - "info": [ - 35, - 39, - 1 - ] + "assetId": "2672323e34d6dc82fda8fc3b057fa5aa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2672323e34d6dc82fda8fc3b057fa5aa.svg", + "rotationCenterX": 35, + "rotationCenterY": 39 }, { "name": "Witch", - "md5": "c991196a708294535a1dbdce7189c23c.svg", - "type": "costume", "tags": [ "fantasy", "broom", @@ -10570,16 +10775,15 @@ "hat", "magic" ], - "info": [ - 74, - 59, - 1 - ] + "assetId": "cb88688822815fb14d59a45fcc239da8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cb88688822815fb14d59a45fcc239da8.svg", + "rotationCenterX": 74, + "rotationCenterY": 59 }, { "name": "Witch-a", - "md5": "cbc54e15cd62f0c16369587377636099.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10588,16 +10792,15 @@ "emotions", "magic" ], - "info": [ - 65, - 140, - 1 - ] + "assetId": "44cbaf358d2d8e66815e447c25a4b72e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "44cbaf358d2d8e66815e447c25a4b72e.svg", + "rotationCenterX": 65, + "rotationCenterY": 140 }, { "name": "Witch-b", - "md5": "64d2c4c51e6cb6008cd5e93f77e6f591.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10606,16 +10809,15 @@ "emotions", "magic" ], - "info": [ - 65, - 140, - 1 - ] + "assetId": "b10fb75f426397e10c878fda19d92009", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b10fb75f426397e10c878fda19d92009.svg", + "rotationCenterX": 65, + "rotationCenterY": 140 }, { "name": "Witch-c", - "md5": "00b768c3da5b4ee3efddf05d1eb88de2.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10624,16 +10826,15 @@ "emotions", "magic" ], - "info": [ - 65, - 140, - 1 - ] + "assetId": "668c9dc76ba6a07bebabf5aed4623566", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "668c9dc76ba6a07bebabf5aed4623566.svg", + "rotationCenterX": 65, + "rotationCenterY": 140 }, { "name": "Witch-d", - "md5": "4fe4c0ee34a9028f2c6988b7294a61c1.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10642,16 +10843,15 @@ "emotions", "magic" ], - "info": [ - 65, - 140, - 1 - ] + "assetId": "a7e48fc790511fbd46b30b1cdcdc98fc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a7e48fc790511fbd46b30b1cdcdc98fc.svg", + "rotationCenterX": 65, + "rotationCenterY": 140 }, { "name": "Wizard Girl", - "md5": "dd40d3a2565990bcc24d2b36cd446394.svg", - "type": "costume", "tags": [ "people", "female", @@ -10660,31 +10860,29 @@ "magic", "fantasy" ], - "info": [ - 80, - 91, - 1 - ] + "assetId": "4be145d338d921b2d9d6dfd10cda4a6c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4be145d338d921b2d9d6dfd10cda4a6c.svg", + "rotationCenterX": 80, + "rotationCenterY": 91 }, { "name": "Wizard Hat", - "md5": "2da561a7e5cbfcda613f4750020d4aa5.svg", - "type": "costume", "tags": [ "fashion", "fantasy", "winter" ], - "info": [ - 34, - 60, - 1 - ] + "assetId": "398e447e36465c2521fdb3a6917b0c65", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "398e447e36465c2521fdb3a6917b0c65.svg", + "rotationCenterX": 34, + "rotationCenterY": 60 }, { "name": "Wizard-a", - "md5": "9632aab80fce1c5bdb58150b29cb0067.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10693,16 +10891,15 @@ "emotions", "magic" ], - "info": [ - 87, - 150, - 1 - ] + "assetId": "91d495085eb4d02a375c42f6318071e7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "91d495085eb4d02a375c42f6318071e7.svg", + "rotationCenterX": 87, + "rotationCenterY": 150 }, { "name": "Wizard-b", - "md5": "36c9b8b93ddb2c392b7145862fc4e8d8.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10711,16 +10908,15 @@ "emotions", "magic" ], - "info": [ - 79, - 144, - 1 - ] + "assetId": "55ba51188af86ca16ef30267e874c1ed", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "55ba51188af86ca16ef30267e874c1ed.svg", + "rotationCenterX": 79, + "rotationCenterY": 144 }, { "name": "Wizard-c", - "md5": "16d4d221a2182278cfa6b0621f455cf6.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10729,16 +10925,15 @@ "emotions", "magic" ], - "info": [ - 87, - 150, - 1 - ] + "assetId": "df943c9894ee4b9df8c5893ce30c2a5f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "df943c9894ee4b9df8c5893ce30c2a5f.svg", + "rotationCenterX": 87, + "rotationCenterY": 150 }, { "name": "Wizard-toad-a", - "md5": "fd5c4cce36e866489febc227e23b21aa.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10749,16 +10944,15 @@ "amphibians", "magic" ], - "info": [ - 87, - 80, - 1 - ] + "assetId": "ca3bb4d397ecf6cda3edc48340af908b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ca3bb4d397ecf6cda3edc48340af908b.svg", + "rotationCenterX": 87, + "rotationCenterY": 80 }, { "name": "Wizard-toad-b", - "md5": "4c260807d4ac4c0ad39760f1efeef1de.svg", - "type": "costume", "tags": [ "fantasy", "people", @@ -10768,2002 +10962,1861 @@ "amphibians", "magic" ], - "info": [ - 87, - 80, - 1 - ] + "assetId": "4041d5a2d1869e81268b9b92b49013a3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4041d5a2d1869e81268b9b92b49013a3.svg", + "rotationCenterX": 87, + "rotationCenterY": 80 }, { "name": "Zebra-a", - "md5": "f58632e6b34fa8f9b35219e52ed2c864.svg", - "type": "costume", "tags": [ "animals", "savanna", "zebra", "robert hunter" ], - "info": [ - 97, - 56, - 1 - ] + "assetId": "0e3bc5073305b7079b5e9a8c7b7d7f9b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0e3bc5073305b7079b5e9a8c7b7d7f9b.svg", + "rotationCenterX": 97, + "rotationCenterY": 56 }, { "name": "Zebra-b", - "md5": "ea23797598a55938a2d46f2b0a389fd6.svg", - "type": "costume", "tags": [ "animals", "savanna", "zebra", "robert hunter" ], - "info": [ - 96, - 56, - 1 - ] + "assetId": "f3e322a25b9f79801066056de6f33fb1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f3e322a25b9f79801066056de6f33fb1.svg", + "rotationCenterX": 96, + "rotationCenterY": 56 }, { "name": "Block-a", - "md5": "602a16930a8050e1298e1a0ae844363e.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 28, - 38, - 1 - ] + "assetId": "ef3b01f6fc1ffa1270fbbf057f7ded42", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ef3b01f6fc1ffa1270fbbf057f7ded42.svg", + "rotationCenterX": 28, + "rotationCenterY": 38 }, { "name": "Block-b", - "md5": "f8c683cf71660e8ac1f8855599857a25.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 29, - 42, - 1 - ] + "assetId": "1dc05fbaa37a6b41ffff459d0a776989", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1dc05fbaa37a6b41ffff459d0a776989.svg", + "rotationCenterX": 29, + "rotationCenterY": 42 }, { "name": "Block-c", - "md5": "f8f4cc686ffc5a4113a99f70b09abd32.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 35, - 43, - 1 - ] + "assetId": "43090c4b423c977041542ce12017fda0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "43090c4b423c977041542ce12017fda0.svg", + "rotationCenterX": 35, + "rotationCenterY": 43 }, { "name": "Block-d", - "md5": "aee2d71ef0293b33479bff9423d16b67.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 31, - 41, - 1 - ] + "assetId": "1fb3db31500d6f7da662e825157920fa", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1fb3db31500d6f7da662e825157920fa.svg", + "rotationCenterX": 31, + "rotationCenterY": 41 }, { "name": "Block-e", - "md5": "16c6257316ff94cc7539ccdfc24e5fb8.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 39, - 1 - ] + "assetId": "240aacc04444cef3b2ef8cfaf0dae479", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "240aacc04444cef3b2ef8cfaf0dae479.svg", + "rotationCenterX": 25, + "rotationCenterY": 39 }, { "name": "Block-f", - "md5": "34c090c1f573c569332ead68cb99b595.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 23, - 40, - 1 - ] + "assetId": "d88d750ce848d7dbeeca3f02249350e2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d88d750ce848d7dbeeca3f02249350e2.svg", + "rotationCenterX": 23, + "rotationCenterY": 40 }, { "name": "Block-g", - "md5": "8bb2382627004eb08ff10ea8171cc724.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 28, - 39, - 1 - ] + "assetId": "989c76ae7f8c2e42ebeacdda961061ca", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "989c76ae7f8c2e42ebeacdda961061ca.svg", + "rotationCenterX": 28, + "rotationCenterY": 39 }, { "name": "Block-h", - "md5": "f1578807d4a124fc02b639a8febeaab3.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 27, - 38, - 1 - ] + "assetId": "93426b2f313d1bdedff368d94fc989d6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "93426b2f313d1bdedff368d94fc989d6.svg", + "rotationCenterX": 27, + "rotationCenterY": 38 }, { "name": "Block-i", - "md5": "341bc70442886d6fdf959f2a97a63554.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 19, - 39, - 1 - ] + "assetId": "f911b18605f59c75adf4d83e07811fd8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f911b18605f59c75adf4d83e07811fd8.svg", + "rotationCenterX": 19, + "rotationCenterY": 39 }, { "name": "Block-j", - "md5": "4b420cce964beedf2c1dc43faa59fdec.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 41, - 1 - ] + "assetId": "8580c990ac918577550165447f870542", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8580c990ac918577550165447f870542.svg", + "rotationCenterX": 25, + "rotationCenterY": 41 }, { "name": "Block-k", - "md5": "19601cc33449813aa93a47c63167e5c1.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 40, - 1 - ] + "assetId": "d93a9fd4bfb5bc1e9790945fa756b748", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d93a9fd4bfb5bc1e9790945fa756b748.svg", + "rotationCenterX": 24, + "rotationCenterY": 40 }, { "name": "Block-l", - "md5": "87358e3c9b9f5be4376253ce08d0192d.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 26, - 40, - 1 - ] + "assetId": "579c90cbaf847e9adf4faf37f340b32d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "579c90cbaf847e9adf4faf37f340b32d.svg", + "rotationCenterX": 26, + "rotationCenterY": 40 }, { "name": "Block-m", - "md5": "7ba0642be1f0080c0d273ea96e29b1e8.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 35, - 37, - 1 - ] + "assetId": "6c5cf1fd0673f441b04e15e799685831", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6c5cf1fd0673f441b04e15e799685831.svg", + "rotationCenterX": 35, + "rotationCenterY": 37 }, { "name": "Block-n", - "md5": "6c1fbc57821744bd9356ce9a21ed70f7.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 28, - 37, - 1 - ] + "assetId": "9eba5dd44d65e1d421c40686fecde906", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9eba5dd44d65e1d421c40686fecde906.svg", + "rotationCenterX": 28, + "rotationCenterY": 37 }, { "name": "Block-o", - "md5": "e88638200a73e167d0e266a343019cec.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 32, - 40, - 1 - ] + "assetId": "8bbbde09c13a06015e554ab36fa178c0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8bbbde09c13a06015e554ab36fa178c0.svg", + "rotationCenterX": 32, + "rotationCenterY": 40 }, { "name": "Block-p", - "md5": "ad2fc3a1c6538678915633a11ab6ec73.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 18, - 33, - 1 - ] + "assetId": "0f920b99ac49421cf28e55c8d863bdc5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0f920b99ac49421cf28e55c8d863bdc5.svg", + "rotationCenterX": 18, + "rotationCenterY": 33 }, { "name": "Block-q", - "md5": "64da9da8684c74deb567dbdb661d3a52.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 26, - 33, - 1 - ] + "assetId": "67f8e80eabaec4883eb9c67c9527004a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "67f8e80eabaec4883eb9c67c9527004a.svg", + "rotationCenterX": 26, + "rotationCenterY": 33 }, { "name": "Block-r", - "md5": "73e8d46f7475476d8cb4cfcfc75ee50d.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 33, - 1 - ] + "assetId": "9d0432c5575451e251990d89845f8d00", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9d0432c5575451e251990d89845f8d00.svg", + "rotationCenterX": 22, + "rotationCenterY": 33 }, { "name": "Block-s", - "md5": "9feb5593fed51e88dbb3128cfc290d29.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 13, - 30, - 1 - ] + "assetId": "83c7486b08e78d099b4e776aaa2783fe", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "83c7486b08e78d099b4e776aaa2783fe.svg", + "rotationCenterX": 13, + "rotationCenterY": 30 }, { "name": "Block-t", - "md5": "d29c1caf5cf195740c38f279e82a77a4.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 33, - 1 - ] + "assetId": "6c1b26611ec0483f601a648f59305aff", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6c1b26611ec0483f601a648f59305aff.svg", + "rotationCenterX": 25, + "rotationCenterY": 33 }, { "name": "Block-u", - "md5": "faef46b7bf589c36300142f6f03c5d32.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 28, - 41, - 1 - ] + "assetId": "d02f77994789f528f0aaa7f211690151", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d02f77994789f528f0aaa7f211690151.svg", + "rotationCenterX": 28, + "rotationCenterY": 41 }, { "name": "Block-v", - "md5": "65e2f4821ab084827e22920acb61c92b.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 35, - 41, - 1 - ] + "assetId": "0654cfcb6234406837336e90be7e419c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0654cfcb6234406837336e90be7e419c.svg", + "rotationCenterX": 35, + "rotationCenterY": 41 }, { "name": "Block-w", - "md5": "5ab197b4f70b2f98a3658c7ccdc3351d.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 47, - 39, - 1 - ] + "assetId": "2b3145ae89c32793c4fcea9a6bcc6075", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2b3145ae89c32793c4fcea9a6bcc6075.svg", + "rotationCenterX": 47, + "rotationCenterY": 39 }, { "name": "Block-x", - "md5": "cb9dff35f05e823d954e47e4a717a48c.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 32, - 1 - ] + "assetId": "a73f354dc045bbbc5a491d9367192a80", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a73f354dc045bbbc5a491d9367192a80.svg", + "rotationCenterX": 25, + "rotationCenterY": 32 }, { "name": "Block-y", - "md5": "4c13c440bcb35c8c3aa6226374fced3f.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 26, - 33, - 1 - ] + "assetId": "e13e79f106d32a3176dbcf5c1b35827d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e13e79f106d32a3176dbcf5c1b35827d.svg", + "rotationCenterX": 26, + "rotationCenterY": 33 }, { "name": "Block-z", - "md5": "0ccff1898f1bf1b25333d581db09fae2.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 38, - 1 - ] + "assetId": "c57d371b291d43675f46601518098572", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c57d371b291d43675f46601518098572.svg", + "rotationCenterX": 24, + "rotationCenterY": 38 }, { "name": "Glow-0", - "md5": "38b2b342659adc6fa289090975e0e71d.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 29, - 39, - 1 - ] + "assetId": "64b59074f24d0e2405a509a45c0dadba", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "64b59074f24d0e2405a509a45c0dadba.svg", + "rotationCenterX": 29, + "rotationCenterY": 39 }, { "name": "Glow-1", - "md5": "2c88706210672655401fe09edd8ff6a7.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 24, - 39, - 1 - ] + "assetId": "9f75c26aa6c56168a3e5a4f598de2c94", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9f75c26aa6c56168a3e5a4f598de2c94.svg", + "rotationCenterX": 24, + "rotationCenterY": 39 }, { "name": "Glow-2", - "md5": "b9faa5708a799a1607f0325a7af2561c.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 28, - 41, - 1 - ] + "assetId": "e8d8bf59db37b5012dd643a16a636042", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e8d8bf59db37b5012dd643a16a636042.svg", + "rotationCenterX": 28, + "rotationCenterY": 41 }, { "name": "Glow-3", - "md5": "cf42a50552ce26032ead712ac4f36c23.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 33, - 42, - 1 - ] + "assetId": "57f7afe3b9888cca56803b73a62e4227", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "57f7afe3b9888cca56803b73a62e4227.svg", + "rotationCenterX": 33, + "rotationCenterY": 42 }, { "name": "Glow-4", - "md5": "3ffa6aee373e28fc36b9395ac4d0467e.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 31, - 38, - 1 - ] + "assetId": "b8209e1980475b30ff11e60d7633446d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b8209e1980475b30ff11e60d7633446d.svg", + "rotationCenterX": 31, + "rotationCenterY": 38 }, { "name": "Glow-5", - "md5": "85d87d32e7e9e6be122c905b0d2e7e33.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 30, - 38, - 1 - ] + "assetId": "aacb5b3cec637f192f080138b4ccd8d2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "aacb5b3cec637f192f080138b4ccd8d2.svg", + "rotationCenterX": 30, + "rotationCenterY": 38 }, { "name": "Glow-6", - "md5": "62cc2a6def27f19d11ed56e86e95aac5.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 30, - 37, - 1 - ] + "assetId": "84d9f26050c709e6b98706c22d2efb3d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "84d9f26050c709e6b98706c22d2efb3d.svg", + "rotationCenterX": 30, + "rotationCenterY": 37 }, { "name": "Glow-7", - "md5": "8887983eb4df2e62a2ed4770a1d98d60.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 31, - 42, - 1 - ] + "assetId": "6194b9a251a905d0001a969990961724", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6194b9a251a905d0001a969990961724.svg", + "rotationCenterX": 31, + "rotationCenterY": 42 }, { "name": "Glow-8", - "md5": "4c42c4cb0c1e090d0f9570416d3c80c8.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 31, - 37, - 1 - ] + "assetId": "55e95fb9c60fbebb7d20bba99c7e9609", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "55e95fb9c60fbebb7d20bba99c7e9609.svg", + "rotationCenterX": 31, + "rotationCenterY": 37 }, { "name": "Glow-9", - "md5": "7bcb7e2e48f5cb770c83d4267922fec0.svg", - "type": "costume", "tags": [ "numbers", "digits" ], - "info": [ - 28, - 36, - 1 - ] + "assetId": "0f53ee6a988bda07cba561d38bfbc36f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0f53ee6a988bda07cba561d38bfbc36f.svg", + "rotationCenterX": 28, + "rotationCenterY": 36 }, { "name": "Glow-A", - "md5": "d5aa299350c24c747200a64b63b1aa52.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 36, - 37, - 1 - ] + "assetId": "fd470938cce54248aaf240b16e845456", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fd470938cce54248aaf240b16e845456.svg", + "rotationCenterX": 36, + "rotationCenterY": 37 }, { "name": "Glow-B", - "md5": "a2e95f268a6cab03f3e94b3b0b792d83.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 32, - 35, - 1 - ] + "assetId": "a699fa024889b681d8b8b6c5c86acb6d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a699fa024889b681d8b8b6c5c86acb6d.svg", + "rotationCenterX": 32, + "rotationCenterY": 35 }, { "name": "Glow-C", - "md5": "9779a4a40934f04a4bf84920b258d7c9.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 27, - 35, - 1 - ] + "assetId": "51b8a7dd7a8cddc5bc30e35824cc557a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "51b8a7dd7a8cddc5bc30e35824cc557a.svg", + "rotationCenterX": 27, + "rotationCenterY": 35 }, { "name": "Glow-D", - "md5": "3555b8bbbbcdc00354bf6fa81ac7042f.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 33, - 35, - 1 - ] + "assetId": "a3a66e37de8d7ebe0505594e036ef6d1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a3a66e37de8d7ebe0505594e036ef6d1.svg", + "rotationCenterX": 33, + "rotationCenterY": 35 }, { "name": "Glow-E", - "md5": "44dbc655d5ac9f13618473848e23484e.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 34, - 38, - 1 - ] + "assetId": "80382a5db3fa556276068165c547b432", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "80382a5db3fa556276068165c547b432.svg", + "rotationCenterX": 34, + "rotationCenterY": 38 }, { "name": "Glow-F", - "md5": "dec417e749e43d7de3985155f5f5a7a0.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 35, - 41, - 1 - ] + "assetId": "67239f7d47f7b92bc38e2d8b275d54ab", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "67239f7d47f7b92bc38e2d8b275d54ab.svg", + "rotationCenterX": 35, + "rotationCenterY": 41 }, { "name": "Glow-G", - "md5": "cf4aa465cd8fb7049cc571d7546a7eb1.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 32, - 39, - 1 - ] + "assetId": "56839bc48957869d980c6f9b6f5a2a91", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "56839bc48957869d980c6f9b6f5a2a91.svg", + "rotationCenterX": 32, + "rotationCenterY": 39 }, { "name": "Glow-H", - "md5": "8d9bd5f00ea1ac6f92d0f97ee491b0f3.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 35, - 46, - 1 - ] + "assetId": "d6016c6494153cd5735ee4b6a1b05277", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d6016c6494153cd5735ee4b6a1b05277.svg", + "rotationCenterX": 35, + "rotationCenterY": 46 }, { "name": "Glow-I", - "md5": "0e86de55840103dcd50199ab2b765de7.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 21, - 38, - 1 - ] + "assetId": "9077988af075c80cc403b1d6e5891528", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9077988af075c80cc403b1d6e5891528.svg", + "rotationCenterX": 21, + "rotationCenterY": 38 }, { "name": "Glow-J", - "md5": "b3832145eacc39f91bd3a9a6673fa05c.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 29, - 39, - 1 - ] + "assetId": "6c359eff57abf5bb6db55894d08757c3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6c359eff57abf5bb6db55894d08757c3.svg", + "rotationCenterX": 29, + "rotationCenterY": 39 }, { "name": "Glow-K", - "md5": "f4e37a7552ba05e995613211a7146de5.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 38, - 36, - 1 - ] + "assetId": "e932898d1e6fe3950a266fccaba0c3e6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e932898d1e6fe3950a266fccaba0c3e6.svg", + "rotationCenterX": 38, + "rotationCenterY": 36 }, { "name": "Glow-L", - "md5": "a75e45773ea6afaf8ae44f79f936fc82.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 33, - 35, - 1 - ] + "assetId": "dcee9202cf20e0395971f1ee73c45d37", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dcee9202cf20e0395971f1ee73c45d37.svg", + "rotationCenterX": 33, + "rotationCenterY": 35 }, { "name": "Glow-M", - "md5": "219b06faa5b816347165450d148213b4.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 42, - 39, - 1 - ] + "assetId": "26f81aa5990bf2371acaa8d76fe1e87f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "26f81aa5990bf2371acaa8d76fe1e87f.svg", + "rotationCenterX": 42, + "rotationCenterY": 39 }, { "name": "Glow-N", - "md5": "4b724479fb3b2184fd8be6f83fb20e54.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 37, - 39, - 1 - ] + "assetId": "d55a04ada14958eccc4aef446a4dad57", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d55a04ada14958eccc4aef446a4dad57.svg", + "rotationCenterX": 37, + "rotationCenterY": 39 }, { "name": "Glow-O", - "md5": "38b2b342659adc6fa289090975e0e71d.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 29, - 39, - 1 - ] + "assetId": "64b59074f24d0e2405a509a45c0dadba", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "64b59074f24d0e2405a509a45c0dadba.svg", + "rotationCenterX": 29, + "rotationCenterY": 39 }, { "name": "Glow-P", - "md5": "1cfa849cc967069730b7e9d0809c9dc1.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 32, - 39, - 1 - ] + "assetId": "c6edc2603ad4db3aa0b29f80e3e38cff", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c6edc2603ad4db3aa0b29f80e3e38cff.svg", + "rotationCenterX": 32, + "rotationCenterY": 39 }, { "name": "Glow-Q", - "md5": "9d35979e9404ac234301269fcd7de288.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 33, - 43, - 1 - ] + "assetId": "e4ae18bf8b92ae375ce818d754588c76", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "e4ae18bf8b92ae375ce818d754588c76.svg", + "rotationCenterX": 33, + "rotationCenterY": 43 }, { "name": "Glow-R", - "md5": "fc067ee076ecaba8430ccd54d9414c1b.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 35, - 38, - 1 - ] + "assetId": "bb11b49e19c68452331e78d51081ab42", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "bb11b49e19c68452331e78d51081ab42.svg", + "rotationCenterX": 35, + "rotationCenterY": 38 }, { "name": "Glow-S", - "md5": "19a93db8a294ccaec4d6eef4020a446f.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 27, - 40, - 1 - ] + "assetId": "6fd994b41bcf776fbf1f1521a879f1af", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6fd994b41bcf776fbf1f1521a879f1af.svg", + "rotationCenterX": 27, + "rotationCenterY": 40 }, { "name": "Glow-T", - "md5": "d7bcda522a1e9504dafcf2fa0fcde39b.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 35, - 38, - 1 - ] + "assetId": "d687543649a676a14f408b5890d45f05", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d687543649a676a14f408b5890d45f05.svg", + "rotationCenterX": 35, + "rotationCenterY": 38 }, { "name": "Glow-U", - "md5": "790482a3c3691a1e96ef34eee7303872.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 37, - 37, - 1 - ] + "assetId": "cb8ef2244400a57ba08e918cb4fe8bba", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cb8ef2244400a57ba08e918cb4fe8bba.svg", + "rotationCenterX": 37, + "rotationCenterY": 37 }, { "name": "Glow-V", - "md5": "6a00388d8dc6be645b843cef9c22681c.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 35, - 42, - 1 - ] + "assetId": "c6edc1ac2c5979f389598537cfb28096", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c6edc1ac2c5979f389598537cfb28096.svg", + "rotationCenterX": 35, + "rotationCenterY": 42 }, { "name": "Glow-W", - "md5": "1a9ea7305a85b271c1de79beafe16cb4.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 45, - 41, - 1 - ] + "assetId": "2e0c2bb46c4ca3cf97779f749b1556f6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2e0c2bb46c4ca3cf97779f749b1556f6.svg", + "rotationCenterX": 45, + "rotationCenterY": 41 }, { "name": "Glow-X", - "md5": "ec4e65b9ae475a676973128f4205df5f.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 40, - 39, - 1 - ] + "assetId": "0b98a63dcc55251072a95a6c6bf7f6f2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0b98a63dcc55251072a95a6c6bf7f6f2.svg", + "rotationCenterX": 40, + "rotationCenterY": 39 }, { "name": "Glow-Y", - "md5": "683cd093bb3b254733a15df6f843464c.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 38, - 41, - 1 - ] + "assetId": "532494c9b5e6709f9982c00a48ce6870", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "532494c9b5e6709f9982c00a48ce6870.svg", + "rotationCenterX": 38, + "rotationCenterY": 41 }, { "name": "Glow-Z", - "md5": "db89a4c9b123123542e0b7556ed3ff9f.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 30, - 39, - 1 - ] + "assetId": "2d94d83dcc9ee3a107e5ea7ef0dddeb0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2d94d83dcc9ee3a107e5ea7ef0dddeb0.svg", + "rotationCenterX": 30, + "rotationCenterY": 39 }, { "name": "story-A-1", - "md5": "5406b37278d819d4787a588b9c91f68e.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 23, - 26, - 1 - ] + "assetId": "4b1beecd9a8892df0918242b2b5fbd4c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4b1beecd9a8892df0918242b2b5fbd4c.svg", + "rotationCenterX": 23, + "rotationCenterY": 26 }, { "name": "story-A-2", - "md5": "f277943adf8d79b41b9b568321a786ee.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 23, - 26, - 1 - ] + "assetId": "7a6fdf5e26fc690879f8e215bfdec4d5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7a6fdf5e26fc690879f8e215bfdec4d5.svg", + "rotationCenterX": 23, + "rotationCenterY": 26 }, { "name": "story-A-3", - "md5": "cc0cc7ae3240eab7d040e148cc663325.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 24, - 1 - ] + "assetId": "3c46f5192d2c29f957381e0100c6085d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3c46f5192d2c29f957381e0100c6085d.svg", + "rotationCenterX": 22, + "rotationCenterY": 24 }, { "name": "story-B-1", - "md5": "2a8fac3c82d95f13203843a597b5757b.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 25, - 1 - ] + "assetId": "a09376e1eacf17be3c9fbd268674b9f7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "a09376e1eacf17be3c9fbd268674b9f7.svg", + "rotationCenterX": 20, + "rotationCenterY": 25 }, { "name": "story-B-2", - "md5": "07fa4ebc421d84743b6ced189dd2f9cf.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 19, - 25, - 1 - ] + "assetId": "5f8301434ce176ab328f5b658ee1ec05", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5f8301434ce176ab328f5b658ee1ec05.svg", + "rotationCenterX": 19, + "rotationCenterY": 25 }, { "name": "story-B-3", - "md5": "6c9a9203155f93f24f31b30e3bd76b6d.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 18, - 23, - 1 - ] + "assetId": "22817ed2e4253787c78d7b696bbefdc1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "22817ed2e4253787c78d7b696bbefdc1.svg", + "rotationCenterX": 18, + "rotationCenterY": 23 }, { "name": "story-C-1", - "md5": "144845715016910e88e2a223ed4d3df1.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 26, - 1 - ] + "assetId": "5e61610cbba50ba86f18830f61bbaecb", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5e61610cbba50ba86f18830f61bbaecb.svg", + "rotationCenterX": 22, + "rotationCenterY": 26 }, { "name": "story-C-2", - "md5": "1045c56c4be3d8d0650579864417fbc7.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 26, - 1 - ] + "assetId": "f6ff602902affbae2f89b389f08df432", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f6ff602902affbae2f89b389f08df432.svg", + "rotationCenterX": 22, + "rotationCenterY": 26 }, { "name": "story-C-3", - "md5": "c8fd35294d17a369fecb6d6e4725d04a.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 24, - 1 - ] + "assetId": "6bd5cb8bc3e4df5e055f4c56dd630855", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "6bd5cb8bc3e4df5e055f4c56dd630855.svg", + "rotationCenterX": 20, + "rotationCenterY": 24 }, { "name": "story-D-1", - "md5": "dfd362f2da975c20aa7849a8fa2fb4df.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 26, - 1 - ] + "assetId": "130cc4b9ad8dd8936d22c51c05ac6860", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "130cc4b9ad8dd8936d22c51c05ac6860.svg", + "rotationCenterX": 25, + "rotationCenterY": 26 }, { "name": "story-D-2", - "md5": "3e4cc4cff08bb42bc690eff66dffbbe9.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 26, - 1 - ] + "assetId": "b28d76f648ad24932a18cb40c8d76bc5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b28d76f648ad24932a18cb40c8d76bc5.svg", + "rotationCenterX": 25, + "rotationCenterY": 26 }, { "name": "story-D-3", - "md5": "bd7f984fe82d9d0fdcff0a87b3c0f9e0.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 23, - 1 - ] + "assetId": "dd713e3bf42d7a4fd8d2f12094db1c63", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "dd713e3bf42d7a4fd8d2f12094db1c63.svg", + "rotationCenterX": 22, + "rotationCenterY": 23 }, { "name": "story-E-1", - "md5": "56473bacbdf6f0dbca1afb04e5aebaf7.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 25, - 1 - ] + "assetId": "3005df22798da45f1daf1de7421bb91d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3005df22798da45f1daf1de7421bb91d.svg", + "rotationCenterX": 20, + "rotationCenterY": 25 }, { "name": "story-E-2", - "md5": "8bba14966fe35f0dccb66ef06a9843ca.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 25, - 1 - ] + "assetId": "add5c5a8eec67eb010b5cbd44dea5c8d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "add5c5a8eec67eb010b5cbd44dea5c8d.svg", + "rotationCenterX": 20, + "rotationCenterY": 25 }, { "name": "story-E-3", - "md5": "e8cfc63375f6d6c2a580823489427f38.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 18, - 23, - 1 - ] + "assetId": "4e903ac41a7e16a52efff8477f2398c7", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4e903ac41a7e16a52efff8477f2398c7.svg", + "rotationCenterX": 18, + "rotationCenterY": 23 }, { "name": "story-F-1", - "md5": "5844ff29fc8663c8613f12169d2f07ef.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 18, - 26, - 1 - ] + "assetId": "83565581ecc9f7d4010efd8683a99393", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "83565581ecc9f7d4010efd8683a99393.svg", + "rotationCenterX": 18, + "rotationCenterY": 26 }, { "name": "story-F-2", - "md5": "0dbe4a064abea1a9a3bc0d2732643e6b.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 18, - 25, - 1 - ] + "assetId": "4a3ae31dd3dd3b96239a0307cfdaa1b6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4a3ae31dd3dd3b96239a0307cfdaa1b6.svg", + "rotationCenterX": 18, + "rotationCenterY": 25 }, { "name": "story-F-3", - "md5": "3db373f4482e391e66d1b06335a96144.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 16, - 23, - 1 - ] + "assetId": "d4ec9a1827429f4e2f3dc239dcc15b95", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d4ec9a1827429f4e2f3dc239dcc15b95.svg", + "rotationCenterX": 16, + "rotationCenterY": 23 }, { "name": "story-G-1", - "md5": "ee6454d15fbbe93e908a2ebbfad483a0.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 23, - 25, - 1 - ] + "assetId": "85144902cc61fe98dca513b74276d7d8", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "85144902cc61fe98dca513b74276d7d8.svg", + "rotationCenterX": 23, + "rotationCenterY": 25 }, { "name": "story-G-2", - "md5": "991023d303f79ce092f070392ffbd69f.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 23, - 25, - 1 - ] + "assetId": "648cfdd48a7f748e6198194669ba1909", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "648cfdd48a7f748e6198194669ba1909.svg", + "rotationCenterX": 23, + "rotationCenterY": 25 }, { "name": "story-G-3", - "md5": "38f22c0d8dbe541bde409ba1f241d4c1.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 21, - 24, - 1 - ] + "assetId": "8fb61932544adbe8c95b067ad1351758", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "8fb61932544adbe8c95b067ad1351758.svg", + "rotationCenterX": 21, + "rotationCenterY": 24 }, { "name": "story-H-1", - "md5": "2a0e1308d6cb806818af696a89b21863.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 25, - 1 - ] + "assetId": "eec286b1cfea3f219a5b486931abedd2", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "eec286b1cfea3f219a5b486931abedd2.svg", + "rotationCenterX": 24, + "rotationCenterY": 25 }, { "name": "story-H-2", - "md5": "ca33be5270308a695c9b88af73f590dc.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 25, - 1 - ] + "assetId": "70520daa9f82a2347c8a8fa9e7fe1a6e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "70520daa9f82a2347c8a8fa9e7fe1a6e.svg", + "rotationCenterX": 24, + "rotationCenterY": 25 }, { "name": "story-H-3", - "md5": "668ba2b891f82ce78d8590f0287632b1.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 24, - 1 - ] + "assetId": "99aae97a2b49904db7eeb813fa968582", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "99aae97a2b49904db7eeb813fa968582.svg", + "rotationCenterX": 22, + "rotationCenterY": 24 }, { "name": "story-I-1", - "md5": "705297637ea83af5b94b6fe2e34aeef4.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 9, - 26, - 1 - ] + "assetId": "2c156e20da1ad4e8e397a89ad8fb1c26", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2c156e20da1ad4e8e397a89ad8fb1c26.svg", + "rotationCenterX": 9, + "rotationCenterY": 26 }, { "name": "story-I-2", - "md5": "7b3ae96764795727fa1cb0be68a9ca5e.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 9, - 26, - 1 - ] + "assetId": "1bceea90292a51a7177abf581f28bf2c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1bceea90292a51a7177abf581f28bf2c.svg", + "rotationCenterX": 9, + "rotationCenterY": 26 }, { "name": "story-I-3", - "md5": "3475aa570304accb7e6dbd2516234135.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 7, - 23, - 1 - ] + "assetId": "9cad752323aa81dfa8d8cf009057b108", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9cad752323aa81dfa8d8cf009057b108.svg", + "rotationCenterX": 7, + "rotationCenterY": 23 }, { "name": "story-J-1", - "md5": "ac2e7eaecb80c5501e5e56802d03af00.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 14, - 25, - 1 - ] + "assetId": "2838de5d131785c985eb0eab25ec63af", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "2838de5d131785c985eb0eab25ec63af.svg", + "rotationCenterX": 14, + "rotationCenterY": 25 }, { "name": "story-J-2", - "md5": "0ab9a94fc2e32160efc113a8e5ffb984.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 14, - 25, - 1 - ] + "assetId": "7d7d6f257a6bf3668a0befa4199f16a0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "7d7d6f257a6bf3668a0befa4199f16a0.svg", + "rotationCenterX": 14, + "rotationCenterY": 25 }, { "name": "story-J-3", - "md5": "c9356a022cfbc25be6c484e9781e4637.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 12, - 24, - 1 - ] + "assetId": "d5b58ddd6f6b4fdcfdfd86d102853935", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d5b58ddd6f6b4fdcfdfd86d102853935.svg", + "rotationCenterX": 12, + "rotationCenterY": 24 }, { "name": "story-K-1", - "md5": "62dcc92dc3c6cb0271244190320c4f71.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 26, - 1 - ] + "assetId": "0cb908dbc38635cc595e6060afc1b682", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0cb908dbc38635cc595e6060afc1b682.svg", + "rotationCenterX": 24, + "rotationCenterY": 26 }, { "name": "story-K-2", - "md5": "ef02339e8a0382367f0b5a414915b885.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 26, - 1 - ] + "assetId": "ecf86afea23fd95e27d4e63659adbfa6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ecf86afea23fd95e27d4e63659adbfa6.svg", + "rotationCenterX": 24, + "rotationCenterY": 26 }, { "name": "story-K-3", - "md5": "07977708617d12381b22d1ee0f4926a3.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 21, - 24, - 1 - ] + "assetId": "17ef8f63a2a8f47258bd62cf642fd8d6", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "17ef8f63a2a8f47258bd62cf642fd8d6.svg", + "rotationCenterX": 21, + "rotationCenterY": 24 }, { "name": "story-L-1", - "md5": "7ce306e9c9c0dd0a24279606301f1d05.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 19, - 26, - 1 - ] + "assetId": "935c7cf21c35523c0a232013a6399a49", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "935c7cf21c35523c0a232013a6399a49.svg", + "rotationCenterX": 19, + "rotationCenterY": 26 }, { "name": "story-L-2", - "md5": "067c21a9b2f91ed33e07131ce5a59210.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 19, - 26, - 1 - ] + "assetId": "0fc3ac08468935694255ef8a461d4d26", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0fc3ac08468935694255ef8a461d4d26.svg", + "rotationCenterX": 19, + "rotationCenterY": 26 }, { "name": "story-L-3", - "md5": "488d66f17c0089a7796d44cfc70792e8.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 17, - 23, - 1 - ] + "assetId": "ec4d85a60c32c7637de31dbf503266a0", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ec4d85a60c32c7637de31dbf503266a0.svg", + "rotationCenterX": 17, + "rotationCenterY": 23 }, { "name": "story-M-1", - "md5": "b27f166f9ab4a3fb93a50a77c58c3df3.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 30, - 25, - 1 - ] + "assetId": "9bf9e677da34528433d3c1acb945e2df", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9bf9e677da34528433d3c1acb945e2df.svg", + "rotationCenterX": 30, + "rotationCenterY": 25 }, { "name": "story-M-2", - "md5": "55f00a23d0f5cc57be9533f126a7ac8c.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 30, - 25, - 1 - ] + "assetId": "42e5468fa164e001925d5a49d372f4b1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "42e5468fa164e001925d5a49d372f4b1.svg", + "rotationCenterX": 30, + "rotationCenterY": 25 }, { "name": "story-M-3", - "md5": "613df2bd97784a239ab992f7a95458a0.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 27, - 24, - 1 - ] + "assetId": "643896fcad0a1bf6eb9f3f590094687c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "643896fcad0a1bf6eb9f3f590094687c.svg", + "rotationCenterX": 27, + "rotationCenterY": 24 }, { "name": "story-N-1", - "md5": "293589fd5bbc358a20c165ab49c19833.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 26, - 25, - 1 - ] + "assetId": "c2f77473dd16d1a3713218b05390a688", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "c2f77473dd16d1a3713218b05390a688.svg", + "rotationCenterX": 26, + "rotationCenterY": 25 }, { "name": "story-N-2", - "md5": "5e07ee61cb20bc575720774584dfec53.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 26, - 25, - 1 - ] + "assetId": "80c8f32282b697097933837905a6f257", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "80c8f32282b697097933837905a6f257.svg", + "rotationCenterX": 26, + "rotationCenterY": 25 }, { "name": "story-N-3", - "md5": "435697335345f946d943c1d89fdb459a.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 23, - 1 - ] + "assetId": "40ffad793f4042a5fe7b3aaa6bc175ae", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "40ffad793f4042a5fe7b3aaa6bc175ae.svg", + "rotationCenterX": 24, + "rotationCenterY": 23 }, { "name": "story-O-1", - "md5": "088beed7ce0dff554da06f54d0558bc0.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 25, - 1 - ] + "assetId": "40bf3880b678beeda8cf708a51a4402d", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "40bf3880b678beeda8cf708a51a4402d.svg", + "rotationCenterX": 25, + "rotationCenterY": 25 }, { "name": "story-O-2", - "md5": "e8fa671bb1ca53c044bfb27225321c25.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 25, - 1 - ] + "assetId": "0bdd31ea2b3b78d0c39022795a49c69a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "0bdd31ea2b3b78d0c39022795a49c69a.svg", + "rotationCenterX": 24, + "rotationCenterY": 25 }, { "name": "story-O-3", - "md5": "a132bf3d4084ef8ca9e0797f64c0f082.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 24, - 1 - ] + "assetId": "43a89fc1442627ca48b1dc631c517942", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "43a89fc1442627ca48b1dc631c517942.svg", + "rotationCenterX": 22, + "rotationCenterY": 24 }, { "name": "story-P-1", - "md5": "ad4a101b83f28ced16849be3e393caa9.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 25, - 1 - ] + "assetId": "1a41f74cd76d7202d8b22ffc7729e03f", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "1a41f74cd76d7202d8b22ffc7729e03f.svg", + "rotationCenterX": 20, + "rotationCenterY": 25 }, { "name": "story-P-2", - "md5": "781c42f9da36bbc0ee3775f18ac98124.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 25, - 1 - ] + "assetId": "377eac55366670a03c469705c6689f09", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "377eac55366670a03c469705c6689f09.svg", + "rotationCenterX": 20, + "rotationCenterY": 25 }, { "name": "story-P-3", - "md5": "bcaec7c778920d8d74c275c1aff634fe.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 17, - 24, - 1 - ] + "assetId": "9cf707e83af27c47e74adb77496ffca5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "9cf707e83af27c47e74adb77496ffca5.svg", + "rotationCenterX": 17, + "rotationCenterY": 24 }, { "name": "story-Q-1", - "md5": "484e44f908e84d795c87cf994364e722.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 30, - 1 - ] + "assetId": "84a6dc992bce018a1eac9be0173ad917", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "84a6dc992bce018a1eac9be0173ad917.svg", + "rotationCenterX": 25, + "rotationCenterY": 30 }, { "name": "story-Q-2", - "md5": "31f28be74dc7de42a5c4a38504d666ca.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 30, - 1 - ] + "assetId": "efc27a91c30d6a511be4245e36684192", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "efc27a91c30d6a511be4245e36684192.svg", + "rotationCenterX": 25, + "rotationCenterY": 30 }, { "name": "story-Q-3", - "md5": "aef19097378515308e934a79f147032e.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 29, - 1 - ] + "assetId": "01acd1076994a4379a3fc9e034bc05fc", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "01acd1076994a4379a3fc9e034bc05fc.svg", + "rotationCenterX": 22, + "rotationCenterY": 29 }, { "name": "story-R-1", - "md5": "55999cb6783ef8351d841294d75af942.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 26, - 1 - ] + "assetId": "4f217b14a161fcd9590614b0733100ea", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "4f217b14a161fcd9590614b0733100ea.svg", + "rotationCenterX": 22, + "rotationCenterY": 26 }, { "name": "story-R-2", - "md5": "926f8ff770cb15b42b12f209fd02d98c.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 26, - 1 - ] + "assetId": "3c3f44aba3eff8856472e06b333a7201", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "3c3f44aba3eff8856472e06b333a7201.svg", + "rotationCenterX": 22, + "rotationCenterY": 26 }, { "name": "story-R-3", - "md5": "a66d8f0ba6d40c624873edc8df58c014.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 23, - 1 - ] + "assetId": "5c1d38d02ae9c4df7851a6e9d52f25b4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5c1d38d02ae9c4df7851a6e9d52f25b4.svg", + "rotationCenterX": 20, + "rotationCenterY": 23 }, { "name": "story-S-1", - "md5": "fca1555f335392f1c4ef620bf098c0de.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 16, - 25, - 1 - ] + "assetId": "47b9f910048ce4db93bdfbcd2638e19a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "47b9f910048ce4db93bdfbcd2638e19a.svg", + "rotationCenterX": 16, + "rotationCenterY": 25 }, { "name": "story-S-2", - "md5": "c529ed7b40f4a949539f8f454e3fe475.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 16, - 25, - 1 - ] + "assetId": "5a113fcacd35ababbf23c5a9289433d1", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "5a113fcacd35ababbf23c5a9289433d1.svg", + "rotationCenterX": 16, + "rotationCenterY": 25 }, { "name": "story-S-3", - "md5": "e96388c9197733bdadbad3ce014c0e59.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 14, - 23, - 1 - ] + "assetId": "fd2a94481c3ef0c223784b2f3c6df874", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "fd2a94481c3ef0c223784b2f3c6df874.svg", + "rotationCenterX": 14, + "rotationCenterY": 23 }, { "name": "story-T-1", - "md5": "d3b342c795a620b69639c02a419e8535.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 27, - 1 - ] + "assetId": "001a2186db228fdd9bfbf3f15800bb63", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "001a2186db228fdd9bfbf3f15800bb63.svg", + "rotationCenterX": 22, + "rotationCenterY": 27 }, { "name": "story-T-2", - "md5": "eeb0fd25c9273747ac38766d1959ba2b.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 27, - 1 - ] + "assetId": "b61e1ac30aa2f35d4fd8c23fab1f76ea", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "b61e1ac30aa2f35d4fd8c23fab1f76ea.svg", + "rotationCenterX": 22, + "rotationCenterY": 27 }, { "name": "story-T-3", - "md5": "a9683d4946b08a76864a51bd21d811cb.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 24, - 1 - ] + "assetId": "66b22b0ff0a5c1c205a701316ab954cf", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "66b22b0ff0a5c1c205a701316ab954cf.svg", + "rotationCenterX": 20, + "rotationCenterY": 24 }, { "name": "story-U-1", - "md5": "fcf99b6e8aeb2d504e1e9b2194640916.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 26, - 1 - ] + "assetId": "cfb334b977b8f2a39aa56b1e0532829e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "cfb334b977b8f2a39aa56b1e0532829e.svg", + "rotationCenterX": 24, + "rotationCenterY": 26 }, { "name": "story-U-2", - "md5": "f442802f17225d6506ac9718810f179e.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 24, - 26, - 1 - ] + "assetId": "51dd73c840ba3aca0f9770e13cb14fb3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "51dd73c840ba3aca0f9770e13cb14fb3.svg", + "rotationCenterX": 24, + "rotationCenterY": 26 }, { "name": "story-U-3", - "md5": "0779f03a6589c60352b1d4806a4a61c0.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 21, - 24, - 1 - ] + "assetId": "f6b7b4da5362fdac29d84f1fbf19e3f4", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f6b7b4da5362fdac29d84f1fbf19e3f4.svg", + "rotationCenterX": 21, + "rotationCenterY": 24 }, { "name": "story-V-1", - "md5": "750b47f1de2143f76354239b27e1e5f0.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 25, - 1 - ] + "assetId": "f27e7a4216665a6eab43fe9b4b5ec934", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f27e7a4216665a6eab43fe9b4b5ec934.svg", + "rotationCenterX": 25, + "rotationCenterY": 25 }, { "name": "story-V-2", - "md5": "03de7add77e31799ca568a9c671012b4.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 25, - 25, - 1 - ] + "assetId": "43a8993221848f90e9f37664e7832b4a", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "43a8993221848f90e9f37664e7832b4a.svg", + "rotationCenterX": 25, + "rotationCenterY": 25 }, { "name": "story-V-3", - "md5": "29befe20b105b69471f5507d025ec3e0.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 23, - 1 - ] + "assetId": "d5c20886e3eb0ca0f5430c9482b1d832", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d5c20886e3eb0ca0f5430c9482b1d832.svg", + "rotationCenterX": 22, + "rotationCenterY": 23 }, { "name": "story-W-1", - "md5": "7d9d4c0da9bd1a3ddf253d1bea26f4e9.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 37, - 25, - 1 - ] + "assetId": "396e27d20d1a49edaa106ba6d667cedd", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "396e27d20d1a49edaa106ba6d667cedd.svg", + "rotationCenterX": 37, + "rotationCenterY": 25 }, { "name": "story-W-2", - "md5": "c0f48eb69cae4a611d3e7b7e06b0d1c1.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 37, - 25, - 1 - ] + "assetId": "f21ba826cd88c376e868f079d6df273c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "f21ba826cd88c376e868f079d6df273c.svg", + "rotationCenterX": 37, + "rotationCenterY": 25 }, { "name": "story-W-3", - "md5": "d1c922c9e9d53d2f6f36ca637e85de6b.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 34, - 24, - 1 - ] + "assetId": "528df57da4490f6da8c75da06a1367f5", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "528df57da4490f6da8c75da06a1367f5.svg", + "rotationCenterX": 34, + "rotationCenterY": 24 }, { "name": "story-X-1", - "md5": "92c452555b3d5a4993f107810043ea03.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 26, - 1 - ] + "assetId": "db0c1a6499169aac6639a1a0076658ce", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "db0c1a6499169aac6639a1a0076658ce.svg", + "rotationCenterX": 22, + "rotationCenterY": 26 }, { "name": "story-X-2", - "md5": "f688425da41c2b7f80d4b8752de69bc9.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 26, - 1 - ] + "assetId": "ca4e3e84788bdeea42dd5ed952d5a66c", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "ca4e3e84788bdeea42dd5ed952d5a66c.svg", + "rotationCenterX": 22, + "rotationCenterY": 26 }, { "name": "story-X-3", - "md5": "ec90479a0ce3c7706f1916daef0f3c67.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 24, - 1 - ] + "assetId": "04be1176e562eff16f1159f69945a82e", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "04be1176e562eff16f1159f69945a82e.svg", + "rotationCenterX": 20, + "rotationCenterY": 24 }, { "name": "story-Y-1", - "md5": "b3c252450d413fc75be0eafdbe4490dc.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 27, - 1 - ] + "assetId": "59275f907633ce02074f787e5767bfde", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "59275f907633ce02074f787e5767bfde.svg", + "rotationCenterX": 22, + "rotationCenterY": 27 }, { "name": "story-Y-2", - "md5": "1cfa161ae5d60ea163e4e0aa34d08f02.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 22, - 27, - 1 - ] + "assetId": "093a9410933f7d01f459f08bcb01735b", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "093a9410933f7d01f459f08bcb01735b.svg", + "rotationCenterX": 22, + "rotationCenterY": 27 }, { "name": "story-Y-3", - "md5": "a1fc3c0fa304255364c0f98547e0e448.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 20, - 24, - 1 - ] + "assetId": "d7fabe2652c93dd1bf91d9064cf5a348", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "d7fabe2652c93dd1bf91d9064cf5a348.svg", + "rotationCenterX": 20, + "rotationCenterY": 24 }, { "name": "story-Z-1", - "md5": "86326c9180c485b557a075f4794939d7.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 19, - 26, - 1 - ] + "assetId": "34825a171f7b35962484fa53e99ff632", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "34825a171f7b35962484fa53e99ff632.svg", + "rotationCenterX": 19, + "rotationCenterY": 26 }, { "name": "story-Z-2", - "md5": "e10b203e47bbb41edab78be59e628449.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 19, - 26, - 1 - ] + "assetId": "23c24dbee23b1545afa8ee15ed339327", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "23c24dbee23b1545afa8ee15ed339327.svg", + "rotationCenterX": 19, + "rotationCenterY": 26 }, { "name": "story-Z-3", - "md5": "0788df7b1d9cf02dfdebc021d4f30ce4.svg", - "type": "costume", "tags": [ "alphabet", "letters" ], - "info": [ - 17, - 23, - 1 - ] + "assetId": "665db4c356d7e010fa8d71cc291834e3", + "bitmapResolution": 1, + "dataFormat": "svg", + "md5ext": "665db4c356d7e010fa8d71cc291834e3.svg", + "rotationCenterX": 17, + "rotationCenterY": 23 } -] +] \ No newline at end of file diff --git a/src/lib/libraries/decks/am-steps.js b/src/lib/libraries/decks/am-steps.js new file mode 100644 index 00000000000..abf1884ca7c --- /dev/null +++ b/src/lib/libraries/decks/am-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.am.gif'; +import introSay from './steps/intro-2-say.am.gif'; +import introGreenFlag from './steps/intro-3-green-flag.am.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.am.gif'; +import speechSaySomething from './steps/speech-say-something.am.png'; +import speechSetVoice from './steps/speech-set-voice.am.png'; +import speechMoveAround from './steps/speech-move-around.am.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.am.png'; +import speechChangeColor from './steps/speech-change-color.am.png'; +import speechSpin from './steps/speech-spin.am.png'; +import speechGrowShrink from './steps/speech-grow-shrink.am.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.am.png'; +import cnGlide from './steps/cn-glide.am.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.am.png'; +import cnVariable from './steps/add-variable.am.gif'; +import cnScore from './steps/cn-score.am.png'; +import cnBackdrop from './steps/cn-backdrop.am.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.am.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.am.png'; +import nameSpin from './steps/name-spin.am.png'; +import nameGrow from './steps/name-grow.am.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.am.png'; +import musicMakeSong from './steps/music-make-song.am.png'; +import musicMakeBeat from './steps/music-make-beat.am.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.am.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.am.png'; +import chaseGameUpDown from './steps/chase-game-up-down.am.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.am.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.am.png'; +import chaseGameAddVariable from './steps/add-variable.am.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.am.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.am.png'; +import popGameAddScore from './steps/add-variable.am.gif'; +import popGameChangeScore from './steps/pop-game-change-score.am.png'; +import popGameRandomPosition from './steps/pop-game-random-position.am.png'; +import popGameChangeColor from './steps/pop-game-change-color.am.png'; +import popGameResetScore from './steps/pop-game-reset-score.am.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.am.png'; +import animateCharAddSound from './steps/animate-char-add-sound.am.png'; +import animateCharTalk from './steps/animate-char-talk.am.png'; +import animateCharMove from './steps/animate-char-move.am.png'; +import animateCharJump from './steps/animate-char-jump.am.png'; +import animateCharChangeColor from './steps/animate-char-change-color.am.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.am.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.am.gif'; +import storyConversation from './steps/story-conversation.am.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.am.png'; +import storyHideCharacter from './steps/story-hide-character.am.png'; +import storyShowCharacter from './steps/story-show-character.am.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.am.gif'; +import videoPet from './steps/video-pet.am.png'; +import videoAnimate from './steps/video-animate.am.png'; +import videoPop from './steps/video-pop.am.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.am.png'; +import flyMoveArrows from './steps/fly-make-interactive.am.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.am.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.am.gif'; +import flyKeepScore from './steps/fly-keep-score.am.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.am.png'; +import flySwitchLooks from './steps/fly-switch-costume.am.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.am.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.am.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.am.png'; +import pongAddAScore from './steps/add-variable.am.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.am.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.am.png'; +import pongResetScore from './steps/pong-reset-score.am.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.am.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.am.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.am.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.am.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.am.png'; +import imagineUpDown from './steps/imagine-up-down.am.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.am.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.am.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.am.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.am.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.am.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.am.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.am.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.am.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.am.png'; + +// Change Size +import changeSize from './steps/change-size.am.png'; + +// Spin +import spinTurn from './steps/spin-turn.am.png'; +import spinPointInDirection from './steps/spin-point-in-direction.am.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.am.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.am.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.am.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.am.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.am.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.am.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.am.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.am.png'; +import glideAroundPoint from './steps/glide-around-point.am.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.am.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.am.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.am.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.am.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.am.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.am.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.am.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.am.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.am.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.am.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.am.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.am.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.am.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.am.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.am.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.am.png'; + +const amImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {amImages}; diff --git a/src/lib/libraries/decks/ar-steps.js b/src/lib/libraries/decks/ar-steps.js new file mode 100644 index 00000000000..7020d00ac50 --- /dev/null +++ b/src/lib/libraries/decks/ar-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.ar.gif'; +import introSay from './steps/intro-2-say.ar.gif'; +import introGreenFlag from './steps/intro-3-green-flag.ar.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.ar.gif'; +import speechSaySomething from './steps/speech-say-something.ar.png'; +import speechSetVoice from './steps/speech-set-voice.ar.png'; +import speechMoveAround from './steps/speech-move-around.ar.png'; +import speechAddBackdrop from './steps/add-backdrop.RTL.png'; +import speechAddSprite from './steps/speech-add-sprite.RTL.gif'; +import speechSong from './steps/speech-song.ar.png'; +import speechChangeColor from './steps/speech-change-color.ar.png'; +import speechSpin from './steps/speech-spin.ar.png'; +import speechGrowShrink from './steps/speech-grow-shrink.ar.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.ar.png'; +import cnGlide from './steps/cn-glide.ar.png'; +import cnPickSprite from './steps/cn-pick-sprite.RTL.gif'; +import cnCollect from './steps/cn-collect.ar.png'; +import cnVariable from './steps/add-variable.ar.gif'; +import cnScore from './steps/cn-score.ar.png'; +import cnBackdrop from './steps/cn-backdrop.ar.png'; + +// Add sprite +import addSprite from './steps/add-sprite.RTL.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.RTL.gif'; +import namePlaySound from './steps/name-play-sound.ar.png'; +import namePickLetter2 from './steps/name-pick-letter2.RTL.gif'; +import nameChangeColor from './steps/name-change-color.ar.png'; +import nameSpin from './steps/name-spin.ar.png'; +import nameGrow from './steps/name-grow.ar.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.RTL.gif'; +import musicPlaySound from './steps/music-play-sound.ar.png'; +import musicMakeSong from './steps/music-make-song.ar.png'; +import musicMakeBeat from './steps/music-make-beat.ar.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.ar.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.RTL.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.RTL.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.ar.png'; +import chaseGameUpDown from './steps/chase-game-up-down.ar.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.RTL.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.ar.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.ar.png'; +import chaseGameAddVariable from './steps/add-variable.ar.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.ar.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.RTL.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.ar.png'; +import popGameAddScore from './steps/add-variable.ar.gif'; +import popGameChangeScore from './steps/pop-game-change-score.ar.png'; +import popGameRandomPosition from './steps/pop-game-random-position.ar.png'; +import popGameChangeColor from './steps/pop-game-change-color.ar.png'; +import popGameResetScore from './steps/pop-game-reset-score.ar.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/animate-char-pick-backdrop.RTL.png'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.RTL.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.ar.png'; +import animateCharAddSound from './steps/animate-char-add-sound.ar.png'; +import animateCharTalk from './steps/animate-char-talk.ar.png'; +import animateCharMove from './steps/animate-char-move.ar.png'; +import animateCharJump from './steps/animate-char-jump.ar.png'; +import animateCharChangeColor from './steps/animate-char-change-color.ar.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.RTL.gif'; +import storyPickSprite from './steps/story-pick-sprite.RTL.gif'; +import storySaySomething from './steps/story-say-something.ar.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.RTL.gif'; +import storyFlip from './steps/story-flip.ar.gif'; +import storyConversation from './steps/story-conversation.ar.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.RTL.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.ar.png'; +import storyHideCharacter from './steps/story-hide-character.ar.png'; +import storyShowCharacter from './steps/story-show-character.ar.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.ar.gif'; +import videoPet from './steps/video-pet.ar.png'; +import videoAnimate from './steps/video-animate.ar.png'; +import videoPop from './steps/video-pop.ar.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.RTL.gif'; +import flyChooseCharacter from './steps/fly-choose-character.RTL.png'; +import flySaySomething from './steps/fly-say-something.ar.png'; +import flyMoveArrows from './steps/fly-make-interactive.ar.png'; +import flyChooseObject from './steps/fly-object-to-collect.RTL.png'; +import flyFlyingObject from './steps/fly-flying-heart.ar.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.RTL.png'; +import flyAddScore from './steps/add-variable.ar.gif'; +import flyKeepScore from './steps/fly-keep-score.ar.png'; +import flyAddScenery from './steps/fly-choose-scenery.RTL.gif'; +import flyMoveScenery from './steps/fly-move-scenery.ar.png'; +import flySwitchLooks from './steps/fly-switch-costume.ar.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.RTL.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.RTL.png'; +import pongBounceAround from './steps/pong-bounce-around.ar.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.RTL.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.ar.png'; +import pongSelectBallSprite from './steps/pong-select-ball.RTL.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.ar.png'; +import pongAddAScore from './steps/add-variable.ar.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.ar.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.ar.png'; +import pongResetScore from './steps/pong-reset-score.ar.png'; +import pongAddLineSprite from './steps/pong-add-line.RTL.gif'; +import pongGameOver from './steps/pong-game-over.ar.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.ar.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.ar.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.RTL.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.RTL.png'; +import imagineFlyAround from './steps/imagine-fly-around.ar.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.RTL.png'; +import imagineLeftRight from './steps/imagine-left-right.ar.png'; +import imagineUpDown from './steps/imagine-up-down.ar.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.ar.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.ar.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.ar.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.RTL.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.ar.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.ar.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.ar.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.RTL.png'; + +// Add Effects +import addEffects from './steps/add-effects.ar.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.ar.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.ar.png'; + +// Change Size +import changeSize from './steps/change-size.ar.png'; + +// Spin +import spinTurn from './steps/spin-turn.ar.png'; +import spinPointInDirection from './steps/spin-point-in-direction.ar.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.ar.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.ar.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.ar.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.ar.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.ar.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.ar.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.ar.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.ar.png'; +import glideAroundPoint from './steps/glide-around-point.ar.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.ar.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.ar.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.RTL.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.ar.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.ar.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.RTL.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.ar.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.ar.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.ar.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.ar.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.RTL.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.ar.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.RTL.png'; +import talesSaySomething from './steps/talking-3-say-something.ar.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.RTL.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.ar.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.RTL.png'; +import talesMoveAround from './steps/talking-7-move-around.ar.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.RTL.png'; +import talesAnimateTalking from './steps/talking-9-animate.ar.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.RTL.png'; +import talesChooseSound from './steps/talking-11-choose-sound.ar.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.ar.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.ar.png'; + +const arImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {arImages}; diff --git a/src/lib/libraries/decks/en-steps.js b/src/lib/libraries/decks/en-steps.js index e3c4aeb4ced..bbc8eee394f 100644 --- a/src/lib/libraries/decks/en-steps.js +++ b/src/lib/libraries/decks/en-steps.js @@ -1,88 +1,89 @@ // Intro -import introMove from './steps/intro-move.en.gif'; -import introSayHello from './steps/intro-say-hello.en.gif'; +import introMove from './steps/intro-1-move.en.gif'; +import introSay from './steps/intro-2-say.en.gif'; +import introGreenFlag from './steps/intro-3-green-flag.en.gif'; // Text to Speech -import speechAddExtension from './steps/talking-1-add-extension.en.gif'; -import speechSaySomething from './steps/speech-say-something.en.gif'; -import speechSetVoice from './steps/speech-set-voice.en.gif'; -import speechMoveAround from './steps/speech-move-around.en.gif'; -import speechAddBackdrop from './steps/speech-add-backdrop.en.gif'; -import speechAddSprite from './steps/speech-add-sprite.en.gif'; -import speechSong from './steps/speech-song.en.gif'; -import speechChangeColor from './steps/speech-change-color.en.gif'; -import speechSpin from './steps/speech-spin.en.gif'; -import speechGrowShrink from './steps/speech-grow-shrink.en.gif'; +import speechAddExtension from './steps/speech-add-extension.en.gif'; +import speechSaySomething from './steps/speech-say-something.en.png'; +import speechSetVoice from './steps/speech-set-voice.en.png'; +import speechMoveAround from './steps/speech-move-around.en.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.en.png'; +import speechChangeColor from './steps/speech-change-color.en.png'; +import speechSpin from './steps/speech-spin.en.png'; +import speechGrowShrink from './steps/speech-grow-shrink.en.png'; // Cartoon Network -import cnShowCharacter from './steps/cn-show-character.gif'; -import cnSay from './steps/cn-say.en.gif'; -import cnGlide from './steps/cn-glide.en.gif'; -import cnPickSprite from './steps/cn-pick-sprite.gif'; -import cnCollect from './steps/cn-collect.en.gif'; +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.en.png'; +import cnGlide from './steps/cn-glide.en.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.en.png'; import cnVariable from './steps/add-variable.en.gif'; -import cnScore from './steps/cn-score.en.gif'; -import cnBackdrop from './steps/cn-backdrop.en.gif'; +import cnScore from './steps/cn-score.en.png'; +import cnBackdrop from './steps/cn-backdrop.en.png'; // Add sprite -import addSprite from './steps/add-sprite.en.gif'; +import addSprite from './steps/add-sprite.LTR.gif'; // Animate a name -import namePickLetter from './steps/name-pick-letter.en.gif'; -import namePlaySound from './steps/name-play-sound.en.gif'; -import namePickLetter2 from './steps/name-pick-letter2.en.gif'; -import nameChangeColor from './steps/name-change-color.en.gif'; -import nameSpin from './steps/name-spin.en.gif'; -import nameGrow from './steps/name-grow.en.gif'; - -// Make-Music -import musicPickInstrument from './steps/music-pick-instrument.en.gif'; -import musicPlaySound from './steps/music-play-sound.en.gif'; -import musicMakeSong from './steps/music-make-song.en.gif'; -import musicMakeBeat from './steps/music-make-beat.en.gif'; -import musicMakeBeatbox from './steps/music-make-beatbox.en.gif'; +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.en.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.en.png'; +import nameSpin from './steps/name-spin.en.png'; +import nameGrow from './steps/name-grow.en.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.en.png'; +import musicMakeSong from './steps/music-make-song.en.png'; +import musicMakeBeat from './steps/music-make-beat.en.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.en.png'; // Chase-Game -import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.gif'; -import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.en.gif'; -import chaseGameRightLeft from './steps/chase-game-right-left.en.gif'; -import chaseGameUpDown from './steps/chase-game-up-down.en.gif'; -import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.en.gif'; -import chaseGameMoveRandomly from './steps/chase-game-move-randomly.en.gif'; -import chaseGamePlaySound from './steps/chase-game-play-sound.en.gif'; +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.en.png'; +import chaseGameUpDown from './steps/chase-game-up-down.en.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.en.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.en.png'; import chaseGameAddVariable from './steps/add-variable.en.gif'; -import chaseGameChangeScore from './steps/chase-game-change-score.en.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.en.png'; // Clicker-Game (Pop Game) -import popGamePickSprite from './steps/pop-game-pick-sprite.en.gif'; -import popGamePlaySound from './steps/pop-game-play-sound.en.gif'; +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.en.png'; import popGameAddScore from './steps/add-variable.en.gif'; -import popGameChangeScore from './steps/pop-game-change-score.en.gif'; -import popGameRandomPosition from './steps/pop-game-random-position.en.gif'; -import popGameChangeColor from './steps/pop-game-change-color.en.gif'; -import popGameResetScore from './steps/pop-game-reset-score.en.gif'; +import popGameChangeScore from './steps/pop-game-change-score.en.png'; +import popGameRandomPosition from './steps/pop-game-random-position.en.png'; +import popGameChangeColor from './steps/pop-game-change-color.en.png'; +import popGameResetScore from './steps/pop-game-reset-score.en.png'; // Animate A Character -import animateCharPickBackdrop from './steps/animate-char-pick-backdrop.en.gif'; -import animateCharPickSprite from './steps/animate-char-pick-sprite.en.gif'; -import animateCharSaySomething from './steps/animate-char-say-something.en.gif'; -import animateCharAddSound from './steps/animate-char-add-sound.en.gif'; -import animateCharTalk from './steps/animate-char-talk.en.gif'; -import animateCharMove from './steps/animate-char-move.en.gif'; -import animateCharJump from './steps/animate-char-jump.en.gif'; -import animateCharChangeColor from './steps/animate-char-change-color.en.gif'; +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.en.png'; +import animateCharAddSound from './steps/animate-char-add-sound.en.png'; +import animateCharTalk from './steps/animate-char-talk.en.png'; +import animateCharMove from './steps/animate-char-move.en.png'; +import animateCharJump from './steps/animate-char-jump.en.png'; +import animateCharChangeColor from './steps/animate-char-change-color.en.png'; // Tell A Story -import storyPickBackdrop from './steps/story-pick-backdrop.gif'; -import storyPickSprite from './steps/story-pick-sprite.gif'; -import storySaySomething from './steps/story-say-something.en.gif'; -import storyPickSprite2 from './steps/story-pick-sprite2.gif'; +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.en.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; import storyFlip from './steps/story-flip.en.gif'; -import storyConversation from './steps/story-conversation.en.gif'; -import storyPickBackdrop2 from './steps/story-pick-backdrop2.gif'; -import storySwitchBackdrop from './steps/story-switch-backdrop.en.gif'; -import storyHideCharacter from './steps/story-hide-character.en.gif'; -import storyShowCharacter from './steps/story-show-character.en.gif'; +import storyConversation from './steps/story-conversation.en.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.en.png'; +import storyHideCharacter from './steps/story-hide-character.en.png'; +import storyShowCharacter from './steps/story-show-character.en.png'; // Video Sensing import videoAddExtension from './steps/video-add-extension.en.gif'; @@ -91,55 +92,55 @@ import videoAnimate from './steps/video-animate.en.png'; import videoPop from './steps/video-pop.en.png'; // Make it Fly -import flyChooseBackdrop from './steps/fly-choose-backdrop.en.gif'; -import flyChooseCharacter from './steps/fly-choose-character.en.gif'; -import flySaySomething from './steps/fly-say-something.en.gif'; -import flyMoveArrows from './steps/fly-make-interactive.en.gif'; -import flyChooseObject from './steps/fly-object-to-collect.en.gif'; -import flyFlyingObject from './steps/fly-flying-heart.en.gif'; -import flySelectFlyingSprite from './steps/fly-select-flyer.en.jpg'; +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.en.png'; +import flyMoveArrows from './steps/fly-make-interactive.en.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.en.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; import flyAddScore from './steps/add-variable.en.gif'; -import flyKeepScore from './steps/fly-keep-score.en.gif'; -import flyAddScenery from './steps/fly-choose-scenery.en.gif'; -import flyMoveScenery from './steps/fly-move-scenery.en.gif'; -import flySwitchLooks from './steps/fly-switch-costume.en.gif'; +import flyKeepScore from './steps/fly-keep-score.en.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.en.png'; +import flySwitchLooks from './steps/fly-switch-costume.en.png'; // Pong -import pongAddBackdrop from './steps/pong-add-backdrop.en.png'; -import pongAddBallSprite from './steps/pong-add-ball-sprite.png'; -import pongBounceAround from './steps/pong-bounce-around.en.gif'; -import pongAddPaddle from './steps/pong-add-a-paddle.en.gif'; -import pongMoveThePaddle from './steps/pong-move-the-paddle.en.gif'; -import pongSelectBallSprite from './steps/pong-select-ball.png'; +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.en.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.en.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.en.png'; import pongAddAScore from './steps/add-variable.en.gif'; import pongChooseScoreFromMenu from './steps/pong-choose-score.en.png'; import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.en.png'; import pongResetScore from './steps/pong-reset-score.en.png'; -import pongAddLineSprite from './steps/pong-add-line.en.gif'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; import pongGameOver from './steps/pong-game-over.en.png'; // Imagine a World import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.en.png'; import imagineClickGreenFlag from './steps/imagine-click-green-flag.en.png'; -import imagineChooseBackdrop from './steps/imagine-choose-backdrop.png'; -import imagineChooseSprite from './steps/imagine-choose-any-sprite.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; import imagineFlyAround from './steps/imagine-fly-around.en.png'; -import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; import imagineLeftRight from './steps/imagine-left-right.en.png'; import imagineUpDown from './steps/imagine-up-down.en.png'; import imagineChangeCostumes from './steps/imagine-change-costumes.en.png'; import imagineGlideToPoint from './steps/imagine-glide-to-point.en.png'; import imagineGrowShrink from './steps/imagine-grow-shrink.en.png'; -import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.png'; -import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.en.gif'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.en.png'; import imagineRecordASound from './steps/imagine-record-a-sound.en.gif'; import imagineChooseSound from './steps/imagine-choose-sound.en.png'; // Add a Backdrop -import addBackdrop from './steps/add-backdrop.en.png'; +import addBackdrop from './steps/add-backdrop.LTR.png'; -// Add Effectsf +// Add Effects import addEffects from './steps/add-effects.en.png'; // Hide and Show @@ -172,36 +173,37 @@ import glideAroundPoint from './steps/glide-around-point.en.png'; // Code a Cartoon import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.en.png'; -import codeCartoonAnimate from './steps/code-cartoon-02-animate.en.gif'; -import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.png'; -import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.en.gif'; -import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.en.gif'; -import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.png'; -import codeCartoonJump from './steps/code-cartoon-07-jump.en.gif'; -import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.en.gif'; -import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.en.gif'; -import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.en.gif'; -import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.en.jpg'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.en.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.en.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.en.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.en.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.en.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.en.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.en.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; // Talking Tales -import talesAddExtension from './steps/talking-1-add-extension.en.gif'; -import talesChooseSprite from './steps/talking-2-choose-sprite.en.png'; -import talesSaySomething from './steps/talking-3-say-something.en.gif'; -import talesChooseBackdrop from './steps/talking-4-choose-backdrop.en.png'; -import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.en.gif'; -import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.en.png'; -import talesMoveAround from './steps/talking-7-move-around.en.gif'; -import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.en.png'; -import talesAnimateTalking from './steps/talking-9-animate.en.gif'; -import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.en.png'; +import talesAddExtension from './steps/speech-add-extension.en.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.en.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.en.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.en.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.en.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; import talesChooseSound from './steps/talking-11-choose-sound.en.gif'; -import talesDanceMoves from './steps/talking-12-dance-moves.en.gif'; -import talesAskAnswer from './steps/talking-13-ask-and-answer.en.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.en.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.en.png'; const enImages = { // Intro introMove: introMove, - introSayHello: introSayHello, + introSay: introSay, + introGreenFlag: introGreenFlag, // Text to Speech speechAddExtension: speechAddExtension, diff --git a/src/lib/libraries/decks/es-steps.js b/src/lib/libraries/decks/es-steps.js index c6e41486d5c..32d3c2985fd 100644 --- a/src/lib/libraries/decks/es-steps.js +++ b/src/lib/libraries/decks/es-steps.js @@ -1,60 +1,61 @@ // Intro -import introMove from './steps/intro-move.es.gif'; -import introSayHello from './steps/intro-say-hello.es.gif'; +import introMove from './steps/intro-1-move.es.gif'; +import introSay from './steps/intro-2-say.es.gif'; +import introGreenFlag from './steps/intro-3-green-flag.es.gif'; // Text to Speech import speechAddExtension from './steps/speech-add-extension.es.gif'; import speechSaySomething from './steps/speech-say-something.es.png'; import speechSetVoice from './steps/speech-set-voice.es.png'; import speechMoveAround from './steps/speech-move-around.es.png'; -import speechAddBackdrop from './steps/speech-add-backdrop.gif'; -import speechAddSprite from './steps/speech-add-sprite.gif'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; import speechSong from './steps/speech-song.es.png'; import speechChangeColor from './steps/speech-change-color.es.png'; import speechSpin from './steps/speech-spin.es.png'; import speechGrowShrink from './steps/speech-grow-shrink.es.png'; // Cartoon Network -import cnShowCharacter from './steps/cn-show-character.gif'; +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; import cnSay from './steps/cn-say.es.png'; import cnGlide from './steps/cn-glide.es.png'; -import cnPickSprite from './steps/cn-pick-sprite.gif'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; import cnCollect from './steps/cn-collect.es.png'; import cnVariable from './steps/add-variable.es.gif'; import cnScore from './steps/cn-score.es.png'; import cnBackdrop from './steps/cn-backdrop.es.png'; // Add sprite -import addSprite from './steps/add-sprite.gif'; +import addSprite from './steps/add-sprite.LTR.gif'; // Animate a name -import namePickLetter from './steps/name-pick-letter.gif'; +import namePickLetter from './steps/name-pick-letter.LTR.gif'; import namePlaySound from './steps/name-play-sound.es.png'; -import namePickLetter2 from './steps/name-pick-letter2.gif'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; import nameChangeColor from './steps/name-change-color.es.png'; import nameSpin from './steps/name-spin.es.png'; import nameGrow from './steps/name-grow.es.png'; // Make Music -import musicPickInstrument from './steps/music-pick-instrument.gif'; +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; import musicPlaySound from './steps/music-play-sound.es.png'; import musicMakeSong from './steps/music-make-song.es.png'; import musicMakeBeat from './steps/music-make-beat.es.png'; import musicMakeBeatbox from './steps/music-make-beatbox.es.png'; // Chase-Game -import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.gif'; -import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.gif'; +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; import chaseGameRightLeft from './steps/chase-game-right-left.es.png'; import chaseGameUpDown from './steps/chase-game-up-down.es.png'; -import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.gif'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; import chaseGameMoveRandomly from './steps/chase-game-move-randomly.es.png'; import chaseGamePlaySound from './steps/chase-game-play-sound.es.png'; import chaseGameAddVariable from './steps/add-variable.es.gif'; import chaseGameChangeScore from './steps/chase-game-change-score.es.png'; // Clicker-Game (Pop Game) -import popGamePickSprite from './steps/pop-game-pick-sprite.gif'; +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; import popGamePlaySound from './steps/pop-game-play-sound.es.png'; import popGameAddScore from './steps/add-variable.es.gif'; import popGameChangeScore from './steps/pop-game-change-score.es.png'; @@ -63,8 +64,8 @@ import popGameChangeColor from './steps/pop-game-change-color.es.png'; import popGameResetScore from './steps/pop-game-reset-score.es.png'; // Animate A Character -import animateCharPickBackdrop from './steps/animate-char-pick-backdrop.gif'; -import animateCharPickSprite from './steps/animate-char-pick-sprite.gif'; +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; import animateCharSaySomething from './steps/animate-char-say-something.es.png'; import animateCharAddSound from './steps/animate-char-add-sound.es.png'; import animateCharTalk from './steps/animate-char-talk.es.png'; @@ -73,13 +74,13 @@ import animateCharJump from './steps/animate-char-jump.es.png'; import animateCharChangeColor from './steps/animate-char-change-color.es.png'; // Tell A Story -import storyPickBackdrop from './steps/story-pick-backdrop.gif'; -import storyPickSprite from './steps/story-pick-sprite.gif'; +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; import storySaySomething from './steps/story-say-something.es.png'; -import storyPickSprite2 from './steps/story-pick-sprite2.gif'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; import storyFlip from './steps/story-flip.es.gif'; import storyConversation from './steps/story-conversation.es.png'; -import storyPickBackdrop2 from './steps/story-pick-backdrop2.gif'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; import storySwitchBackdrop from './steps/story-switch-backdrop.es.png'; import storyHideCharacter from './steps/story-hide-character.es.png'; import storyShowCharacter from './steps/story-show-character.es.png'; @@ -91,53 +92,53 @@ import videoAnimate from './steps/video-animate.es.png'; import videoPop from './steps/video-pop.es.png'; // Make it Fly -import flyChooseBackdrop from './steps/fly-choose-backdrop.gif'; -import flyChooseCharacter from './steps/fly-choose-character.png'; +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; import flySaySomething from './steps/fly-say-something.es.png'; import flyMoveArrows from './steps/fly-make-interactive.es.png'; -import flyChooseObject from './steps/fly-object-to-collect.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; import flyFlyingObject from './steps/fly-flying-heart.es.png'; -import flySelectFlyingSprite from './steps/fly-select-flyer.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; import flyAddScore from './steps/add-variable.es.gif'; import flyKeepScore from './steps/fly-keep-score.es.png'; -import flyAddScenery from './steps/fly-choose-scenery.gif'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; import flyMoveScenery from './steps/fly-move-scenery.es.png'; import flySwitchLooks from './steps/fly-switch-costume.es.png'; // Pong -import pongAddBackdrop from './steps/pong-add-backdrop.png'; -import pongAddBallSprite from './steps/pong-add-ball-sprite.png'; +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; import pongBounceAround from './steps/pong-bounce-around.es.png'; -import pongAddPaddle from './steps/pong-add-a-paddle.gif'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; import pongMoveThePaddle from './steps/pong-move-the-paddle.es.png'; -import pongSelectBallSprite from './steps/pong-select-ball.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.es.png'; import pongAddAScore from './steps/add-variable.es.gif'; import pongChooseScoreFromMenu from './steps/pong-choose-score.es.png'; import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.es.png'; import pongResetScore from './steps/pong-reset-score.es.png'; -import pongAddLineSprite from './steps/pong-add-line.gif'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; import pongGameOver from './steps/pong-game-over.es.png'; // Imagine a World import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.es.png'; import imagineClickGreenFlag from './steps/imagine-click-green-flag.es.png'; -import imagineChooseBackdrop from './steps/imagine-choose-backdrop.png'; -import imagineChooseSprite from './steps/imagine-choose-any-sprite.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; import imagineFlyAround from './steps/imagine-fly-around.es.png'; -import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; import imagineLeftRight from './steps/imagine-left-right.es.png'; import imagineUpDown from './steps/imagine-up-down.es.png'; import imagineChangeCostumes from './steps/imagine-change-costumes.es.png'; import imagineGlideToPoint from './steps/imagine-glide-to-point.es.png'; import imagineGrowShrink from './steps/imagine-grow-shrink.es.png'; -import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.es.png'; import imagineRecordASound from './steps/imagine-record-a-sound.es.gif'; import imagineChooseSound from './steps/imagine-choose-sound.es.png'; // Add a Backdrop -import addBackdrop from './steps/add-backdrop.png'; +import addBackdrop from './steps/add-backdrop.LTR.png'; // Add Effects import addEffects from './steps/add-effects.es.png'; @@ -173,27 +174,27 @@ import glideAroundPoint from './steps/glide-around-point.es.png'; // Code a Cartoon import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.es.png'; import codeCartoonAnimate from './steps/code-cartoon-02-animate.es.png'; -import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.es.png'; import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.es.png'; -import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; import codeCartoonJump from './steps/code-cartoon-07-jump.es.png'; import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.es.png'; import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.es.png'; import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.es.png'; -import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; // Talking Tales import talesAddExtension from './steps/speech-add-extension.es.gif'; -import talesChooseSprite from './steps/talking-2-choose-sprite.png'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; import talesSaySomething from './steps/talking-3-say-something.es.png'; -import talesChooseBackdrop from './steps/talking-4-choose-backdrop.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.es.png'; -import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; import talesMoveAround from './steps/talking-7-move-around.es.png'; -import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; import talesAnimateTalking from './steps/talking-9-animate.es.png'; -import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; import talesChooseSound from './steps/talking-11-choose-sound.es.gif'; import talesDanceMoves from './steps/talking-12-dance-moves.es.png'; import talesAskAnswer from './steps/talking-13-ask-and-answer.es.png'; @@ -201,7 +202,8 @@ import talesAskAnswer from './steps/talking-13-ask-and-answer.es.png'; const esImages = { // Intro introMove: introMove, - introSayHello: introSayHello, + introSay: introSay, + introGreenFlag: introGreenFlag, // Text to Speech speechAddExtension: speechAddExtension, diff --git a/src/lib/libraries/decks/fr-steps.js b/src/lib/libraries/decks/fr-steps.js new file mode 100644 index 00000000000..d155adca3b4 --- /dev/null +++ b/src/lib/libraries/decks/fr-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.fr.gif'; +import introSay from './steps/intro-2-say.fr.gif'; +import introGreenFlag from './steps/intro-3-green-flag.fr.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.fr.gif'; +import speechSaySomething from './steps/speech-say-something.fr.png'; +import speechSetVoice from './steps/speech-set-voice.fr.png'; +import speechMoveAround from './steps/speech-move-around.fr.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.fr.png'; +import speechChangeColor from './steps/speech-change-color.fr.png'; +import speechSpin from './steps/speech-spin.fr.png'; +import speechGrowShrink from './steps/speech-grow-shrink.fr.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.fr.png'; +import cnGlide from './steps/cn-glide.fr.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.fr.png'; +import cnVariable from './steps/add-variable.fr.gif'; +import cnScore from './steps/cn-score.fr.png'; +import cnBackdrop from './steps/cn-backdrop.fr.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.fr.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.fr.png'; +import nameSpin from './steps/name-spin.fr.png'; +import nameGrow from './steps/name-grow.fr.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.fr.png'; +import musicMakeSong from './steps/music-make-song.fr.png'; +import musicMakeBeat from './steps/music-make-beat.fr.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.fr.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.fr.png'; +import chaseGameUpDown from './steps/chase-game-up-down.fr.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.fr.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.fr.png'; +import chaseGameAddVariable from './steps/add-variable.fr.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.fr.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.fr.png'; +import popGameAddScore from './steps/add-variable.fr.gif'; +import popGameChangeScore from './steps/pop-game-change-score.fr.png'; +import popGameRandomPosition from './steps/pop-game-random-position.fr.png'; +import popGameChangeColor from './steps/pop-game-change-color.fr.png'; +import popGameResetScore from './steps/pop-game-reset-score.fr.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.fr.png'; +import animateCharAddSound from './steps/animate-char-add-sound.fr.png'; +import animateCharTalk from './steps/animate-char-talk.fr.png'; +import animateCharMove from './steps/animate-char-move.fr.png'; +import animateCharJump from './steps/animate-char-jump.fr.png'; +import animateCharChangeColor from './steps/animate-char-change-color.fr.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.fr.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.fr.gif'; +import storyConversation from './steps/story-conversation.fr.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.fr.png'; +import storyHideCharacter from './steps/story-hide-character.fr.png'; +import storyShowCharacter from './steps/story-show-character.fr.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.fr.gif'; +import videoPet from './steps/video-pet.fr.png'; +import videoAnimate from './steps/video-animate.fr.png'; +import videoPop from './steps/video-pop.fr.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.fr.png'; +import flyMoveArrows from './steps/fly-make-interactive.fr.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.fr.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.fr.gif'; +import flyKeepScore from './steps/fly-keep-score.fr.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.fr.png'; +import flySwitchLooks from './steps/fly-switch-costume.fr.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.fr.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.fr.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.fr.png'; +import pongAddAScore from './steps/add-variable.fr.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.fr.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.fr.png'; +import pongResetScore from './steps/pong-reset-score.fr.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.fr.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.fr.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.fr.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.fr.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.fr.png'; +import imagineUpDown from './steps/imagine-up-down.fr.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.fr.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.fr.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.fr.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.fr.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.fr.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.fr.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.fr.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.fr.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.fr.png'; + +// Change Size +import changeSize from './steps/change-size.fr.png'; + +// Spin +import spinTurn from './steps/spin-turn.fr.png'; +import spinPointInDirection from './steps/spin-point-in-direction.fr.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.fr.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.fr.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.fr.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.fr.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.fr.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.fr.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.fr.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.fr.png'; +import glideAroundPoint from './steps/glide-around-point.fr.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.fr.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.fr.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.fr.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.fr.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.fr.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.fr.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.fr.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.fr.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.fr.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.fr.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.fr.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.fr.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.fr.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.fr.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.fr.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.fr.png'; + +const frImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {frImages}; diff --git a/src/lib/libraries/decks/index.jsx b/src/lib/libraries/decks/index.jsx index 7b241746bfb..b66644c100b 100644 --- a/src/lib/libraries/decks/index.jsx +++ b/src/lib/libraries/decks/index.jsx @@ -6,6 +6,9 @@ import {FormattedMessage} from 'react-intl'; // Intro import libraryIntro from './thumbnails/getting-started.jpg'; +// Getting Started ASL +import libraryGettingStartedASL from './thumbnails/getting-started-asl.png'; + // Text to Speech import libraryTXTSpeech from './thumbnails/text-to-speech.jpg'; @@ -62,6 +65,13 @@ import addEffectsThumb from './thumbnails/add-effects.jpg'; import moveArrowKeysThumb from './thumbnails/move-arrow-keys.jpg'; import spinThumb from './thumbnails/spin.jpg'; +export const CATEGORIES = { + gettingStarted: 'gettingStarted', + basics: 'basics', + intermediate: 'intermediate', + prompts: 'prompts' +}; + export default { 'intro-move-sayhello': { @@ -73,6 +83,7 @@ export default { /> ), tags: ['help', 'stuck', 'how', 'can', 'say'], + category: CATEGORIES.gettingStarted, img: libraryIntro, steps: [{ video: 'intro-move-sayhello' @@ -88,12 +99,21 @@ export default { }, { title: ( + ), + image: 'introSay' + }, { + title: ( + ), - image: 'introSayHello' + image: 'introGreenFlag' }, { deckIds: [ 'add-a-backdrop', @@ -104,283 +124,313 @@ export default { urlId: 'getStarted' }, - 'imagine': { + 'intro-getting-started-ASL': { name: ( ), - tags: ['imagine'], - img: libraryImagine, + tags: ['help', 'stuck', 'how', 'can', 'say', 'asl', 'deaf', 'accessibile', 'hear'], + category: CATEGORIES.gettingStarted, + img: libraryGettingStartedASL, steps: [{ - video: 'imagine' + video: 'intro-getting-started-ASL' }, { - title: ( - - ), - image: 'imagineTypeWhatYouWant' + deckIds: [ + 'add-a-backdrop', + 'add-sprite' + ] + } + ], + urlId: 'getting-started-ASL' + }, + + 'animate-a-name': { + name: ( + + ), + img: libraryAnimate, + tags: ['animation', 'art', 'spin', 'grow'], + category: CATEGORIES.prompts, + steps: [{ + video: 'animate-a-name' }, { title: ( ), - image: 'imagineClickGreenFlag' + image: 'namePickLetter' }, { title: ( ), - image: 'imagineChooseBackdrop' + image: 'namePlaySound' }, { title: ( ), - image: 'imagineChooseSprite' + image: 'namePickLetter2' }, { title: ( ), - image: 'imagineFlyAround' + image: 'nameChangeColor' }, { title: ( ), - image: 'imagineChooseAnotherSprite' + image: 'nameSpin' }, { title: ( ), - image: 'imagineLeftRight' + image: 'nameGrow' }, { + deckIds: [ + 'add-a-backdrop', + 'glide-around' + ] + } + ], + urlId: 'name' + }, + + 'Animate-A-Character': { + name: ( + + ), + img: libraryAnimateChar, + category: CATEGORIES.prompts, + steps: [{ + video: 's228u3g5u9' + }, + { title: ( ), - image: 'imagineUpDown' + image: 'animateCharPickBackdrop' }, { title: ( ), - image: 'imagineChangeCostumes' + image: 'animateCharPickSprite' }, { title: ( ), - image: 'imagineGlideToPoint' + image: 'animateCharSaySomething' }, { title: ( ), - image: 'imagineGrowShrink' + image: 'animateCharAddSound' }, { title: ( ), - image: 'imagineChooseAnotherBackdrop' + image: 'animateCharTalk' }, { title: ( ), - image: 'imagineSwitchBackdrops' + image: 'animateCharMove' }, { title: ( ), - image: 'imagineRecordASound' + image: 'animateCharJump' }, { title: ( ), - image: 'imagineChooseSound' + image: 'animateCharChangeColor' }, { deckIds: [ - 'hide-and-show', - 'Chase-Game' + 'code-cartoon', + 'Tell-A-Story' ] } ], - urlId: 'imagine' + urlId: 'animate-a-character' }, - 'code-cartoon': { + 'Tell-A-Story': { name: ( ), - tags: ['code-cartoon'], - requiredProjectId: '331474033', - img: libraryCodeCartoon, + img: libraryStory, + category: CATEGORIES.prompts, steps: [{ - video: 'code-cartoon' - }, { + video: 'stah7jjorp' + }, + { title: ( ), - image: 'codeCartoonSaySomething' + image: 'storyPickBackdrop' }, { title: ( ), - image: 'codeCartoonAnimate' + image: 'storyPickSprite' }, { title: ( ), - image: 'codeCartoonSelectDifferentCharacter' + image: 'storySaySomething' }, { title: ( ), - image: 'codeCartoonUseMinusSign' + image: 'storyPickSprite2' }, { title: ( ), - image: 'codeCartoonGrowShrink' + image: 'storyFlip' }, { title: ( ), - image: 'codeCartoonSelectDifferentCharacter2' + image: 'storyConversation' }, { title: ( ), - image: 'codeCartoonJump' - }, { - title: ( - - ), - image: 'codeCartoonChangeScenes' + image: 'storyPickBackdrop2' }, { title: ( ), - image: 'codeCartoonGlideAround' + image: 'storySwitchBackdrop' }, { title: ( ), - image: 'codeCartoonChangeCostumes' + image: 'storyHideCharacter' }, { title: ( ), - image: 'codeCartoonChooseMoreCharacters' - }, { + image: 'storyShowCharacter' + }, + { deckIds: [ - 'Chase-Game', - 'Tell-A-Story' + 'say-it-out-loud', + 'record-a-sound' ] } ], - urlId: 'code-cartoon' + urlId: 'tell-a-story' }, 'say-it-out-loud': { @@ -392,6 +442,7 @@ export default { /> ), img: libraryTXTSpeech, + category: CATEGORIES.prompts, steps: [{ video: 'k54n8uwcty', trackingPixel: ( @@ -490,228 +541,335 @@ export default { }, { deckIds: [ 'animate-a-name', - 'Make-Music' + 'talking' ] } ], urlId: 'animations-that-talk' }, - 'talking': { + 'imagine': { name: ( ), - tags: ['talking'], - img: libraryTalking, + tags: ['imagine'], + img: libraryImagine, + category: CATEGORIES.prompts, steps: [{ - video: 'talking' + video: 'imagine' }, { title: ( ), - image: 'talesAddExtension' + image: 'imagineTypeWhatYouWant' }, { title: ( ), - image: 'talesChooseSprite' + image: 'imagineClickGreenFlag' }, { title: ( ), - image: 'talesSaySomething' + image: 'imagineChooseBackdrop' }, { title: ( ), - image: 'talesChooseBackdrop' + image: 'imagineChooseSprite' }, { title: ( ), - image: 'talesSwitchBackdrop' + image: 'imagineFlyAround' }, { title: ( ), - image: 'talesChooseAnotherSprite' + image: 'imagineChooseAnotherSprite' }, { title: ( ), - image: 'talesMoveAround' + image: 'imagineLeftRight' }, { title: ( ), - image: 'talesChooseAnotherBackdrop' + image: 'imagineUpDown' }, { title: ( ), - image: 'talesAnimateTalking' + image: 'imagineChangeCostumes' + }, { + title: ( + + ), + image: 'imagineGlideToPoint' + }, { + title: ( + + ), + image: 'imagineGrowShrink' }, { title: ( ), - image: 'talesChooseThirdBackdrop' + image: 'imagineChooseAnotherBackdrop' }, { title: ( ), - image: 'talesChooseSound' + image: 'imagineSwitchBackdrops' }, { title: ( ), - image: 'talesDanceMoves' + image: 'imagineRecordASound' }, { title: ( ), - image: 'talesAskAnswer' + image: 'imagineChooseSound' }, { deckIds: [ - 'Tell-A-Story', - 'Animate-A-Character' + 'hide-and-show', + 'Chase-Game' ] } ], - urlId: 'talking' + urlId: 'imagine' }, - 'animate-a-name': { + 'add-effects': { name: ( ), - img: libraryAnimate, - tags: ['animation', 'art', 'spin', 'grow'], + tags: ['animation', 'art', 'games', 'stories', '8-bit', 'brightness', 'ghost', 'transparency', 'opacity', + 'fx', 'color', 'fisheye', 'whirl', 'twist', 'pixelate', 'mosaic', '8bit'], + category: CATEGORIES.intermediate, + img: addEffectsThumb, steps: [{ - video: 'animate-a-name' + video: 'add-effects' }, { title: ( ), - image: 'namePickLetter' + image: 'addEffects' + }, { + deckIds: [ + 'add-a-backdrop', + 'code-cartoon' + ] + }], + urlId: 'add-effects' + }, + + + 'make-it-fly': { + name: ( + + ), + tags: ['game', 'fly', 'how', 'can', 'animation'], + category: CATEGORIES.intermediate, + img: libraryMakeFly, + steps: [{ + video: 'zbtdx2dem9' }, { title: ( ), - image: 'namePlaySound' + image: 'flyChooseBackdrop' }, { title: ( ), - image: 'namePickLetter2' + image: 'flyChooseCharacter' }, { title: ( ), - image: 'nameChangeColor' + image: 'flySaySomething' }, { title: ( ), - image: 'nameSpin' + image: 'flyMoveArrows' }, { title: ( + defaultMessage="Choose an Object to Collect" + description="Step name for 'Choose an Object to Collect' step" + id="gui.howtos.fly.step_stepflyChooseObject" + /> ), - image: 'nameGrow' + image: 'flyChooseObject' + }, { + title: ( + + ), + image: 'flyFlyingObject' + }, { + title: ( + + ), + image: 'flySelectFlyingSprite' + }, { + title: ( + + ), + image: 'flyAddScore' + }, { + title: ( + + ), + image: 'flyKeepScore' + }, { + title: ( + + ), + image: 'flyAddScenery' + }, { + title: ( + + ), + image: 'flyMoveScenery' + }, { + title: ( + + ), + image: 'flySwitchLooks' }, { deckIds: [ - 'add-a-backdrop', - 'glide-around' + 'change-size', + 'spin-video' ] } ], - urlId: 'name' + urlId: 'make-it-fly' }, - + 'Make-Music': { name: ( ), - img: libraryStory, + tags: ['pong', 'game'], + img: libraryPong, + category: CATEGORIES.prompts, steps: [{ - video: 'stah7jjorp' + video: 'pong-game' }, { title: ( - ), - image: 'storyPickBackdrop' - }, { - title: ( - - ), - image: 'storyPickSprite' - }, { - title: ( - - ), - image: 'storySaySomething' - }, { - title: ( - - ), - image: 'storyPickSprite2' - }, { - title: ( - - ), - image: 'storyFlip' - }, { - title: ( - ), - image: 'storyConversation' + image: 'pongAddBackdrop' }, { title: ( ), - image: 'storyPickBackdrop2' + image: 'pongAddBallSprite' }, { title: ( ), - image: 'storySwitchBackdrop' + image: 'pongBounceAround' }, { title: ( ), - image: 'storyHideCharacter' + image: 'pongAddPaddle' }, { title: ( - ), - image: 'storyShowCharacter' - }, - { - deckIds: [ - 'say-it-out-loud', - 'record-a-sound' - ] - } - ], - urlId: 'tell-a-story' - }, - - 'Chase-Game': { - name: ( - - ), - img: libraryChaseGame, - tags: ['games', 'arrow', 'keyboard', 'score'], - steps: [{ - video: 'Chase-Game' - }, - { - title: ( - ), - image: 'chaseGameAddBackdrop' + image: 'pongMoveThePaddle' }, { title: ( ), - image: 'chaseGameAddSprite1' + image: 'pongSelectBallSprite' }, { title: ( ), - image: 'chaseGameRightLeft' + image: 'pongAddMoreCodeToBall' }, { title: ( ), - image: 'chaseGameUpDown' + image: 'pongAddAScore' }, { title: ( ), - image: 'chaseGameAddSprite2' + image: 'pongChooseScoreFromMenu' }, { title: ( ), - image: 'chaseGameMoveRandomly' + image: 'pongInsertChangeScoreBlock' }, { title: ( ), - image: 'chaseGamePlaySound' + image: 'pongResetScore' }, { title: ( ), - image: 'chaseGameAddVariable' + image: 'pongAddLineSprite' }, { title: ( ), - image: 'chaseGameChangeScore' + image: 'pongGameOver' }, { deckIds: [ 'add-effects', - 'move-around-with-arrow-keys' - ] - } - ], - urlId: 'chase-game' - }, - - 'Animate-A-Character': { - name: ( - - ), - img: libraryAnimateChar, - steps: [{ - video: 's228u3g5u9' - }, - { - title: ( - - ), - image: 'animateCharPickBackdrop' - }, { - title: ( - - ), - image: 'animateCharPickSprite' - }, { - title: ( - - ), - image: 'animateCharSaySomething' - }, { - title: ( - - ), - image: 'animateCharAddSound' - }, { - title: ( - - ), - image: 'animateCharTalk' - }, { - title: ( - - ), - image: 'animateCharMove' - }, { - title: ( - - ), - image: 'animateCharJump' - }, { - title: ( - - ), - image: 'animateCharChangeColor' - }, { - deckIds: [ - 'Chase-Game', - 'Tell-A-Story' + 'Video-Sensing' ] } ], - urlId: 'animate-a-character' + urlId: 'pong' }, - + 'Make-A-Game': { name: ( ), - tags: ['game', 'fly', 'how', 'can', 'animation'], - img: libraryMakeFly, + img: libraryChaseGame, + tags: ['games', 'arrow', 'keyboard', 'score'], + category: CATEGORIES.prompts, steps: [{ - video: 'zbtdx2dem9' - }, { - title: ( - - ), - image: 'flyChooseBackdrop' - }, { - title: ( - - ), - image: 'flyChooseCharacter' - }, { - title: ( - - ), - image: 'flySaySomething' - }, { + video: 'Chase-Game' + }, + { title: ( ), - image: 'flyMoveArrows' + image: 'chaseGameAddBackdrop' }, { title: ( ), - image: 'flyChooseObject' + image: 'chaseGameAddSprite1' }, { title: ( ), - image: 'flyFlyingObject' + image: 'chaseGameRightLeft' }, { title: ( ), - image: 'flySelectFlyingSprite' + image: 'chaseGameUpDown' }, { title: ( ), - image: 'flyAddScore' + image: 'chaseGameAddSprite2' }, { title: ( ), - image: 'flyKeepScore' + image: 'chaseGameMoveRandomly' }, { title: ( ), - image: 'flyAddScenery' + image: 'chaseGamePlaySound' }, { title: ( ), - image: 'flyMoveScenery' + image: 'chaseGameAddVariable' }, { title: ( ), - image: 'flySwitchLooks' + image: 'chaseGameChangeScore' }, { deckIds: [ - 'change-size', - 'spin-video' + 'add-effects', + 'move-around-with-arrow-keys' ] } ], - urlId: 'make-it-fly' + urlId: 'chase-game' }, - 'pong': { + 'code-cartoon': { name: ( ), - tags: ['pong', 'game'], - img: libraryPong, + tags: ['code-cartoon'], + requiredProjectId: '331474033', + img: libraryCodeCartoon, + category: CATEGORIES.prompts, steps: [{ - video: 'pong-game' - }, - { - title: ( - - ), - image: 'pongAddBackdrop' - }, { - title: ( - - ), - image: 'pongAddBallSprite' + video: 'code-cartoon' }, { title: ( ), - image: 'pongBounceAround' + image: 'codeCartoonSaySomething' }, { title: ( ), - image: 'pongAddPaddle' + image: 'codeCartoonAnimate' }, { title: ( ), - image: 'pongMoveThePaddle' + image: 'codeCartoonSelectDifferentCharacter' }, { title: ( ), - image: 'pongSelectBallSprite' + image: 'codeCartoonUseMinusSign' }, { title: ( ), - image: 'pongAddMoreCodeToBall' + image: 'codeCartoonGrowShrink' }, { title: ( ), - image: 'pongAddAScore' + image: 'codeCartoonSelectDifferentCharacter2' }, { title: ( ), - image: 'pongChooseScoreFromMenu' + image: 'codeCartoonJump' }, { title: ( ), - image: 'pongInsertChangeScoreBlock' + image: 'codeCartoonChangeScenes' }, { title: ( ), - image: 'pongResetScore' + image: 'codeCartoonGlideAround' }, { title: ( ), - image: 'pongAddLineSprite' + image: 'codeCartoonChangeCostumes' }, { title: ( ), - image: 'pongGameOver' + image: 'codeCartoonChooseMoreCharacters' }, { deckIds: [ - 'add-effects', - 'Video-Sensing' + 'Chase-Game', + 'Tell-A-Story' ] } ], - urlId: 'pong' + urlId: 'code-cartoon' }, - + 'cartoon-network': { name: ( ), img: libraryVideoSens, + category: CATEGORIES.intermediate, steps: [{ video: '3pd1z110d6' }, { title: ( + ), + image: 'videoAddExtension' + }, { + title: ( + + ), + image: 'videoPet' + }, { + title: ( + + ), + image: 'videoAnimate' + }, { + title: ( + + ), + image: 'videoPop' + }, { + deckIds: [ + 'Make-Music', + 'add-effects' + ] + } + ], + urlId: 'video-sensing' + }, + + 'talking': { + name: ( + + ), + tags: ['talking'], + category: CATEGORIES.intermediate, + img: libraryTalking, + steps: [{ + video: 'talking' + }, { + title: ( + + ), + image: 'talesAddExtension' + }, { + title: ( + + ), + image: 'talesChooseSprite' + }, { + title: ( + + ), + image: 'talesSaySomething' + }, { + title: ( + + ), + image: 'talesChooseBackdrop' + }, { + title: ( + + ), + image: 'talesSwitchBackdrop' + }, { + title: ( + + ), + image: 'talesChooseAnotherSprite' + }, { + title: ( + ), - image: 'videoAddExtension' + image: 'talesMoveAround' }, { title: ( ), - image: 'videoPet' + image: 'talesChooseAnotherBackdrop' }, { title: ( ), - image: 'videoAnimate' + image: 'talesAnimateTalking' }, { title: ( ), - image: 'videoPop' + image: 'talesChooseThirdBackdrop' + }, { + title: ( + + ), + image: 'talesChooseSound' + }, { + title: ( + + ), + image: 'talesDanceMoves' + }, { + title: ( + + ), + image: 'talesAskAnswer' }, { deckIds: [ - 'Make-Music', - 'add-effects' + 'Tell-A-Story', + 'Animate-A-Character' ] } ], - urlId: 'video-sensing' + urlId: 'talking' }, 'add-sprite': { @@ -1619,6 +1709,7 @@ export default { ), img: libraryAddSprite, tags: ['art', 'games', 'stories', 'character'], + category: CATEGORIES.gettingStarted, steps: [ { title: ( @@ -1650,6 +1741,7 @@ export default { ), img: addBackdropThumb, tags: ['art', 'games', 'stories', 'background'], + category: CATEGORIES.gettingStarted, steps: [{ video: 'add-a-backdrop' }, { @@ -1672,6 +1764,46 @@ export default { urlId: 'add-a-backdrop' }, + 'move-around-with-arrow-keys': { + name: ( + + ), + img: moveArrowKeysThumb, + tags: ['games', 'keyboard'], + category: CATEGORIES.basics, + steps: [{ + video: 'move-around-with-arrow-keys' + }, { + title: ( + + ), + image: 'moveArrowKeysLeftRight' + }, { + title: ( + + ), + image: 'moveArrowKeysUpDown' + }, { + deckIds: [ + 'make-it-fly', + 'switch-costume' + ] + }], + urlId: 'arrow-keys' + }, + 'change-size': { name: ( ), img: changeSizeThumb, + category: CATEGORIES.basics, scale: ['art', 'animation', 'scale'], steps: [{ video: 'change-size' @@ -1712,6 +1845,7 @@ export default { ), img: glideAroundThumb, tags: ['animation', 'stories', 'music', 'instrument', 'play', 'song', 'band'], + category: CATEGORIES.basics, steps: [{ video: 'glide-around' }, { @@ -1734,13 +1868,53 @@ export default { image: 'glideAroundPoint' }, { deckIds: [ - 'add-a-backdrop', + 'Tell-A-Story', 'switch-costume' ] }], urlId: 'glide-around' }, + 'spin-video': { + name: ( + + ), + img: spinThumb, + tags: ['animation', 'rotate', 'rotation'], + category: CATEGORIES.basics, + steps: [{ + video: 'spin-video' + }, { + title: ( + + ), + image: 'spinTurn' + }, { + title: ( + + ), + image: 'spinPointInDirection' + }, { + deckIds: [ + 'add-a-backdrop', + 'switch-costume' + ] + }], + urlId: 'make-it-spin' + }, + 'record-a-sound': { name: ( ), tags: ['music', 'games', 'stories'], + category: CATEGORIES.basics, img: recordASound, steps: [{ video: 'record-a-sound' @@ -1807,45 +1982,6 @@ export default { urlId: 'record-a-sound' }, - 'spin-video': { - name: ( - - ), - img: spinThumb, - tags: ['animation', 'rotate', 'rotation'], - steps: [{ - video: 'spin-video' - }, { - title: ( - - ), - image: 'spinTurn' - }, { - title: ( - - ), - image: 'spinPointInDirection' - }, { - deckIds: [ - 'add-a-backdrop', - 'switch-costume' - ] - }], - urlId: 'make-it-spin' - }, - 'hide-and-show': { name: ( - ), - img: moveArrowKeysThumb, - tags: ['games', 'keyboard'], - steps: [{ - video: 'move-around-with-arrow-keys' - }, { - title: ( - - ), - image: 'moveArrowKeysLeftRight' - }, { - title: ( - - ), - image: 'moveArrowKeysUpDown' - }, { - deckIds: [ - 'add-a-backdrop', - 'switch-costume' - ] - }], - urlId: 'arrow-keys' - }, - - 'add-effects': { - name: ( - - ), - tags: ['animation', 'art', 'games', 'stories', '8-bit', 'brightness', 'ghost', 'transparency', 'opacity', - 'fx', 'color', 'fisheye', 'whirl', 'twist', 'pixelate', 'mosaic', '8bit'], - img: addEffectsThumb, - steps: [{ - video: 'add-effects' - }, { - title: ( - - ), - image: 'addEffects' - }, { - deckIds: [ - 'add-a-backdrop', - 'switch-costume' - ] - }], - urlId: 'add-effects' - }, - 'wedo2-getting-started': { steps: [{ video: '4im7iizv47' diff --git a/src/lib/libraries/decks/ja-steps.js b/src/lib/libraries/decks/ja-steps.js new file mode 100644 index 00000000000..14a0db70efa --- /dev/null +++ b/src/lib/libraries/decks/ja-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.ja.gif'; +import introSay from './steps/intro-2-say.ja.gif'; +import introGreenFlag from './steps/intro-3-green-flag.ja.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.ja.gif'; +import speechSaySomething from './steps/speech-say-something.ja.png'; +import speechSetVoice from './steps/speech-set-voice.ja.png'; +import speechMoveAround from './steps/speech-move-around.ja.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.ja.png'; +import speechChangeColor from './steps/speech-change-color.ja.png'; +import speechSpin from './steps/speech-spin.ja.png'; +import speechGrowShrink from './steps/speech-grow-shrink.ja.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.ja.png'; +import cnGlide from './steps/cn-glide.ja.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.ja.png'; +import cnVariable from './steps/add-variable.ja.gif'; +import cnScore from './steps/cn-score.ja.png'; +import cnBackdrop from './steps/cn-backdrop.ja.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.ja.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.ja.png'; +import nameSpin from './steps/name-spin.ja.png'; +import nameGrow from './steps/name-grow.ja.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.ja.png'; +import musicMakeSong from './steps/music-make-song.ja.png'; +import musicMakeBeat from './steps/music-make-beat.ja.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.ja.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.ja.png'; +import chaseGameUpDown from './steps/chase-game-up-down.ja.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.ja.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.ja.png'; +import chaseGameAddVariable from './steps/add-variable.ja.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.ja.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.ja.png'; +import popGameAddScore from './steps/add-variable.ja.gif'; +import popGameChangeScore from './steps/pop-game-change-score.ja.png'; +import popGameRandomPosition from './steps/pop-game-random-position.ja.png'; +import popGameChangeColor from './steps/pop-game-change-color.ja.png'; +import popGameResetScore from './steps/pop-game-reset-score.ja.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.ja.png'; +import animateCharAddSound from './steps/animate-char-add-sound.ja.png'; +import animateCharTalk from './steps/animate-char-talk.ja.png'; +import animateCharMove from './steps/animate-char-move.ja.png'; +import animateCharJump from './steps/animate-char-jump.ja.png'; +import animateCharChangeColor from './steps/animate-char-change-color.ja.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.ja.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.ja.gif'; +import storyConversation from './steps/story-conversation.ja.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.ja.png'; +import storyHideCharacter from './steps/story-hide-character.ja.png'; +import storyShowCharacter from './steps/story-show-character.ja.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.ja.gif'; +import videoPet from './steps/video-pet.ja.png'; +import videoAnimate from './steps/video-animate.ja.png'; +import videoPop from './steps/video-pop.ja.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.ja.png'; +import flyMoveArrows from './steps/fly-make-interactive.ja.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.ja.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.ja.gif'; +import flyKeepScore from './steps/fly-keep-score.ja.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.ja.png'; +import flySwitchLooks from './steps/fly-switch-costume.ja.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.ja.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.ja.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.ja.png'; +import pongAddAScore from './steps/add-variable.ja.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.ja.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.ja.png'; +import pongResetScore from './steps/pong-reset-score.ja.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.ja.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.ja.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.ja.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.ja.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.ja.png'; +import imagineUpDown from './steps/imagine-up-down.ja.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.ja.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.ja.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.ja.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.ja.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.ja.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.ja.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.ja.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.ja.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.ja.png'; + +// Change Size +import changeSize from './steps/change-size.ja.png'; + +// Spin +import spinTurn from './steps/spin-turn.ja.png'; +import spinPointInDirection from './steps/spin-point-in-direction.ja.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.ja.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.ja.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.ja.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.ja.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.ja.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.ja.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.ja.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.ja.png'; +import glideAroundPoint from './steps/glide-around-point.ja.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.ja.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.ja.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.ja.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.ja.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.ja.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.ja.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.ja.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.ja.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.ja.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.ja.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.ja.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.ja.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.ja.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.ja.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.ja.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.ja.png'; + +const jaImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {jaImages}; diff --git a/src/lib/libraries/decks/pt_BR-steps.js b/src/lib/libraries/decks/pt_BR-steps.js new file mode 100644 index 00000000000..84cbf747811 --- /dev/null +++ b/src/lib/libraries/decks/pt_BR-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.pt_BR.gif'; +import introSay from './steps/intro-2-say.pt_BR.gif'; +import introGreenFlag from './steps/intro-3-green-flag.pt_BR.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.pt_BR.gif'; +import speechSaySomething from './steps/speech-say-something.pt_BR.png'; +import speechSetVoice from './steps/speech-set-voice.pt_BR.png'; +import speechMoveAround from './steps/speech-move-around.pt_BR.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.pt_BR.png'; +import speechChangeColor from './steps/speech-change-color.pt_BR.png'; +import speechSpin from './steps/speech-spin.pt_BR.png'; +import speechGrowShrink from './steps/speech-grow-shrink.pt_BR.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.pt_BR.png'; +import cnGlide from './steps/cn-glide.pt_BR.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.pt_BR.png'; +import cnVariable from './steps/add-variable.pt_BR.gif'; +import cnScore from './steps/cn-score.pt_BR.png'; +import cnBackdrop from './steps/cn-backdrop.pt_BR.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.pt_BR.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.pt_BR.png'; +import nameSpin from './steps/name-spin.pt_BR.png'; +import nameGrow from './steps/name-grow.pt_BR.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.pt_BR.png'; +import musicMakeSong from './steps/music-make-song.pt_BR.png'; +import musicMakeBeat from './steps/music-make-beat.pt_BR.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.pt_BR.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.pt_BR.png'; +import chaseGameUpDown from './steps/chase-game-up-down.pt_BR.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.pt_BR.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.pt_BR.png'; +import chaseGameAddVariable from './steps/add-variable.pt_BR.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.pt_BR.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.pt_BR.png'; +import popGameAddScore from './steps/add-variable.pt_BR.gif'; +import popGameChangeScore from './steps/pop-game-change-score.pt_BR.png'; +import popGameRandomPosition from './steps/pop-game-random-position.pt_BR.png'; +import popGameChangeColor from './steps/pop-game-change-color.pt_BR.png'; +import popGameResetScore from './steps/pop-game-reset-score.pt_BR.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.pt_BR.png'; +import animateCharAddSound from './steps/animate-char-add-sound.pt_BR.png'; +import animateCharTalk from './steps/animate-char-talk.pt_BR.png'; +import animateCharMove from './steps/animate-char-move.pt_BR.png'; +import animateCharJump from './steps/animate-char-jump.pt_BR.png'; +import animateCharChangeColor from './steps/animate-char-change-color.pt_BR.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.pt_BR.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.pt_BR.gif'; +import storyConversation from './steps/story-conversation.pt_BR.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.pt_BR.png'; +import storyHideCharacter from './steps/story-hide-character.pt_BR.png'; +import storyShowCharacter from './steps/story-show-character.pt_BR.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.pt_BR.gif'; +import videoPet from './steps/video-pet.pt_BR.png'; +import videoAnimate from './steps/video-animate.pt_BR.png'; +import videoPop from './steps/video-pop.pt_BR.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.pt_BR.png'; +import flyMoveArrows from './steps/fly-make-interactive.pt_BR.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.pt_BR.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.pt_BR.gif'; +import flyKeepScore from './steps/fly-keep-score.pt_BR.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.pt_BR.png'; +import flySwitchLooks from './steps/fly-switch-costume.pt_BR.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.pt_BR.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.pt_BR.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.pt_BR.png'; +import pongAddAScore from './steps/add-variable.pt_BR.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.pt_BR.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.pt_BR.png'; +import pongResetScore from './steps/pong-reset-score.pt_BR.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.pt_BR.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.pt_BR.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.pt_BR.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.pt_BR.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.pt_BR.png'; +import imagineUpDown from './steps/imagine-up-down.pt_BR.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.pt_BR.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.pt_BR.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.pt_BR.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.pt_BR.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.pt_BR.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.pt_BR.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.pt_BR.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.pt_BR.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.pt_BR.png'; + +// Change Size +import changeSize from './steps/change-size.pt_BR.png'; + +// Spin +import spinTurn from './steps/spin-turn.pt_BR.png'; +import spinPointInDirection from './steps/spin-point-in-direction.pt_BR.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.pt_BR.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.pt_BR.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.pt_BR.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.pt_BR.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.pt_BR.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.pt_BR.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.pt_BR.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.pt_BR.png'; +import glideAroundPoint from './steps/glide-around-point.pt_BR.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.pt_BR.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.pt_BR.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.pt_BR.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.pt_BR.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.pt_BR.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.pt_BR.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.pt_BR.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.pt_BR.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.pt_BR.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.pt_BR.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.pt_BR.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.pt_BR.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.pt_BR.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.pt_BR.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.pt_BR.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.pt_BR.png'; + +const ptBrImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {ptBrImages}; diff --git a/src/lib/libraries/decks/steps/add-backdrop.png b/src/lib/libraries/decks/steps/add-backdrop.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/add-backdrop.png rename to src/lib/libraries/decks/steps/add-backdrop.LTR.png diff --git a/src/lib/libraries/decks/steps/add-backdrop.RTL.png b/src/lib/libraries/decks/steps/add-backdrop.RTL.png new file mode 100644 index 00000000000..09b90e560d8 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-backdrop.RTL.png differ diff --git a/src/lib/libraries/decks/steps/add-backdrop.en.png b/src/lib/libraries/decks/steps/add-backdrop.en.png deleted file mode 100755 index d7e227b0725..00000000000 Binary files a/src/lib/libraries/decks/steps/add-backdrop.en.png and /dev/null differ diff --git a/src/lib/libraries/decks/steps/add-effects.am.png b/src/lib/libraries/decks/steps/add-effects.am.png new file mode 100644 index 00000000000..88c54f32f2e Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.am.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.ar.png b/src/lib/libraries/decks/steps/add-effects.ar.png new file mode 100644 index 00000000000..dbe3ac7e37a Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.ar.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.en.png b/src/lib/libraries/decks/steps/add-effects.en.png old mode 100755 new mode 100644 index 299c05dd021..f61e5ce988e Binary files a/src/lib/libraries/decks/steps/add-effects.en.png and b/src/lib/libraries/decks/steps/add-effects.en.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.fr.png b/src/lib/libraries/decks/steps/add-effects.fr.png new file mode 100644 index 00000000000..866df9813f0 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.fr.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.ja.png b/src/lib/libraries/decks/steps/add-effects.ja.png new file mode 100644 index 00000000000..aed05ede39f Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.ja.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.pt_BR.png b/src/lib/libraries/decks/steps/add-effects.pt_BR.png new file mode 100644 index 00000000000..282379c7668 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.sw.png b/src/lib/libraries/decks/steps/add-effects.sw.png new file mode 100644 index 00000000000..5213f7767e1 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.sw.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.tr.png b/src/lib/libraries/decks/steps/add-effects.tr.png new file mode 100644 index 00000000000..7d8fcf1102a Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.tr.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.uk.png b/src/lib/libraries/decks/steps/add-effects.uk.png new file mode 100644 index 00000000000..c06d962891f Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.uk.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.zh_CN.png b/src/lib/libraries/decks/steps/add-effects.zh_CN.png new file mode 100644 index 00000000000..d9751674f2a Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.zh_TW.png b/src/lib/libraries/decks/steps/add-effects.zh_TW.png new file mode 100644 index 00000000000..06b2d184322 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/add-effects.zu.png b/src/lib/libraries/decks/steps/add-effects.zu.png new file mode 100644 index 00000000000..41aa8ca94f8 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-effects.zu.png differ diff --git a/src/lib/libraries/decks/steps/add-sprite.gif b/src/lib/libraries/decks/steps/add-sprite.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/add-sprite.gif rename to src/lib/libraries/decks/steps/add-sprite.LTR.gif diff --git a/src/lib/libraries/decks/steps/add-sprite.RTL.gif b/src/lib/libraries/decks/steps/add-sprite.RTL.gif new file mode 100644 index 00000000000..86bb4a5fa91 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-sprite.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/add-sprite.en.gif b/src/lib/libraries/decks/steps/add-sprite.en.gif deleted file mode 100644 index 4e9b4ce4651..00000000000 Binary files a/src/lib/libraries/decks/steps/add-sprite.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/add-variable.am.gif b/src/lib/libraries/decks/steps/add-variable.am.gif new file mode 100644 index 00000000000..a270bfc68ed Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.am.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.ar.gif b/src/lib/libraries/decks/steps/add-variable.ar.gif new file mode 100644 index 00000000000..81d1a093c21 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.ar.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.fr.gif b/src/lib/libraries/decks/steps/add-variable.fr.gif new file mode 100644 index 00000000000..2b27bda2730 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.fr.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.ja.gif b/src/lib/libraries/decks/steps/add-variable.ja.gif new file mode 100644 index 00000000000..8d4266a4235 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.ja.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.pt_BR.gif b/src/lib/libraries/decks/steps/add-variable.pt_BR.gif new file mode 100644 index 00000000000..2b1c6da16f8 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.sw.gif b/src/lib/libraries/decks/steps/add-variable.sw.gif new file mode 100644 index 00000000000..a80c036242b Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.sw.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.tr.gif b/src/lib/libraries/decks/steps/add-variable.tr.gif new file mode 100644 index 00000000000..24dd807f613 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.tr.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.uk.gif b/src/lib/libraries/decks/steps/add-variable.uk.gif new file mode 100644 index 00000000000..5f74ce17d94 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.uk.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.zh_CN.gif b/src/lib/libraries/decks/steps/add-variable.zh_CN.gif new file mode 100644 index 00000000000..14eef17d000 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.zh_TW.gif b/src/lib/libraries/decks/steps/add-variable.zh_TW.gif new file mode 100644 index 00000000000..dc68820f407 Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/add-variable.zu.gif b/src/lib/libraries/decks/steps/add-variable.zu.gif new file mode 100644 index 00000000000..0f37c4f170f Binary files /dev/null and b/src/lib/libraries/decks/steps/add-variable.zu.gif differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.am.png b/src/lib/libraries/decks/steps/animate-char-add-sound.am.png new file mode 100644 index 00000000000..28eb73e1493 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.am.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.ar.png b/src/lib/libraries/decks/steps/animate-char-add-sound.ar.png new file mode 100644 index 00000000000..a22e39ca6d1 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.ar.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.en.gif b/src/lib/libraries/decks/steps/animate-char-add-sound.en.gif deleted file mode 100644 index 57124ffb7ab..00000000000 Binary files a/src/lib/libraries/decks/steps/animate-char-add-sound.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.en.png b/src/lib/libraries/decks/steps/animate-char-add-sound.en.png new file mode 100644 index 00000000000..6971c15d6f0 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.en.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.fr.png b/src/lib/libraries/decks/steps/animate-char-add-sound.fr.png new file mode 100644 index 00000000000..1acf2e88f79 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.fr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.ja.png b/src/lib/libraries/decks/steps/animate-char-add-sound.ja.png new file mode 100644 index 00000000000..b2ca2917936 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.ja.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.pt_BR.png b/src/lib/libraries/decks/steps/animate-char-add-sound.pt_BR.png new file mode 100644 index 00000000000..6ec61dea440 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.sw.png b/src/lib/libraries/decks/steps/animate-char-add-sound.sw.png new file mode 100644 index 00000000000..dab523d771e Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.sw.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.tr.png b/src/lib/libraries/decks/steps/animate-char-add-sound.tr.png new file mode 100644 index 00000000000..90783237b75 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.tr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.uk.png b/src/lib/libraries/decks/steps/animate-char-add-sound.uk.png new file mode 100644 index 00000000000..c21b4262325 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.uk.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.zh_CN.png b/src/lib/libraries/decks/steps/animate-char-add-sound.zh_CN.png new file mode 100644 index 00000000000..a8a5fcc0015 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.zh_TW.png b/src/lib/libraries/decks/steps/animate-char-add-sound.zh_TW.png new file mode 100644 index 00000000000..2f58768c04c Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-add-sound.zu.png b/src/lib/libraries/decks/steps/animate-char-add-sound.zu.png new file mode 100644 index 00000000000..4119abfed77 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-add-sound.zu.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.am.png b/src/lib/libraries/decks/steps/animate-char-change-color.am.png new file mode 100644 index 00000000000..d9d9de1eaf8 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.am.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.ar.png b/src/lib/libraries/decks/steps/animate-char-change-color.ar.png new file mode 100644 index 00000000000..2a64373284d Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.ar.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.en.gif b/src/lib/libraries/decks/steps/animate-char-change-color.en.gif deleted file mode 100644 index bd9ec9fae37..00000000000 Binary files a/src/lib/libraries/decks/steps/animate-char-change-color.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.en.png b/src/lib/libraries/decks/steps/animate-char-change-color.en.png new file mode 100644 index 00000000000..74c8989b9da Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.en.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.fr.png b/src/lib/libraries/decks/steps/animate-char-change-color.fr.png new file mode 100644 index 00000000000..d04473616bc Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.fr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.ja.png b/src/lib/libraries/decks/steps/animate-char-change-color.ja.png new file mode 100644 index 00000000000..91517d7b1ef Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.ja.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.pt_BR.png b/src/lib/libraries/decks/steps/animate-char-change-color.pt_BR.png new file mode 100644 index 00000000000..aa1bab37dd5 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.sw.png b/src/lib/libraries/decks/steps/animate-char-change-color.sw.png new file mode 100644 index 00000000000..a57342838ea Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.sw.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.tr.png b/src/lib/libraries/decks/steps/animate-char-change-color.tr.png new file mode 100644 index 00000000000..44e5f47ac21 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.tr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.uk.png b/src/lib/libraries/decks/steps/animate-char-change-color.uk.png new file mode 100644 index 00000000000..c8138257291 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.uk.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.zh_CN.png b/src/lib/libraries/decks/steps/animate-char-change-color.zh_CN.png new file mode 100644 index 00000000000..a5b7c84c4e9 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.zh_TW.png b/src/lib/libraries/decks/steps/animate-char-change-color.zh_TW.png new file mode 100644 index 00000000000..7de2611f22c Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-change-color.zu.png b/src/lib/libraries/decks/steps/animate-char-change-color.zu.png new file mode 100644 index 00000000000..69a28209337 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-change-color.zu.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.am.png b/src/lib/libraries/decks/steps/animate-char-jump.am.png new file mode 100644 index 00000000000..1aa8b9ac261 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.am.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.ar.png b/src/lib/libraries/decks/steps/animate-char-jump.ar.png new file mode 100644 index 00000000000..b54c81a7717 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.ar.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.en.gif b/src/lib/libraries/decks/steps/animate-char-jump.en.gif deleted file mode 100644 index c452623b33e..00000000000 Binary files a/src/lib/libraries/decks/steps/animate-char-jump.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.en.png b/src/lib/libraries/decks/steps/animate-char-jump.en.png new file mode 100644 index 00000000000..79bd3220588 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.en.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.fr.png b/src/lib/libraries/decks/steps/animate-char-jump.fr.png new file mode 100644 index 00000000000..6f9b7350b7d Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.fr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.ja.png b/src/lib/libraries/decks/steps/animate-char-jump.ja.png new file mode 100644 index 00000000000..9ba195ff994 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.ja.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.pt_BR.png b/src/lib/libraries/decks/steps/animate-char-jump.pt_BR.png new file mode 100644 index 00000000000..c6c862d4974 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.sw.png b/src/lib/libraries/decks/steps/animate-char-jump.sw.png new file mode 100644 index 00000000000..b4d2af5e25c Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.sw.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.tr.png b/src/lib/libraries/decks/steps/animate-char-jump.tr.png new file mode 100644 index 00000000000..615277752cb Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.tr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.uk.png b/src/lib/libraries/decks/steps/animate-char-jump.uk.png new file mode 100644 index 00000000000..b4f26a30338 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.uk.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.zh_CN.png b/src/lib/libraries/decks/steps/animate-char-jump.zh_CN.png new file mode 100644 index 00000000000..f3effe4aa60 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.zh_TW.png b/src/lib/libraries/decks/steps/animate-char-jump.zh_TW.png new file mode 100644 index 00000000000..9bb61d83379 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-jump.zu.png b/src/lib/libraries/decks/steps/animate-char-jump.zu.png new file mode 100644 index 00000000000..0da70c4f0d8 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-jump.zu.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.am.png b/src/lib/libraries/decks/steps/animate-char-move.am.png new file mode 100644 index 00000000000..70627a0aea4 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.am.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.ar.png b/src/lib/libraries/decks/steps/animate-char-move.ar.png new file mode 100644 index 00000000000..f247756bec6 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.ar.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.en.gif b/src/lib/libraries/decks/steps/animate-char-move.en.gif deleted file mode 100644 index 1f8a4765a66..00000000000 Binary files a/src/lib/libraries/decks/steps/animate-char-move.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.en.png b/src/lib/libraries/decks/steps/animate-char-move.en.png new file mode 100644 index 00000000000..13f8b5d52ab Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.en.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.fr.png b/src/lib/libraries/decks/steps/animate-char-move.fr.png new file mode 100644 index 00000000000..294b086432c Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.fr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.ja.png b/src/lib/libraries/decks/steps/animate-char-move.ja.png new file mode 100644 index 00000000000..22b5745bd10 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.ja.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.pt_BR.png b/src/lib/libraries/decks/steps/animate-char-move.pt_BR.png new file mode 100644 index 00000000000..cfad9702e04 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.sw.png b/src/lib/libraries/decks/steps/animate-char-move.sw.png new file mode 100644 index 00000000000..cc26afa6af0 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.sw.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.tr.png b/src/lib/libraries/decks/steps/animate-char-move.tr.png new file mode 100644 index 00000000000..fcce1640e34 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.tr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.uk.png b/src/lib/libraries/decks/steps/animate-char-move.uk.png new file mode 100644 index 00000000000..7b38d7fd889 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.uk.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.zh_CN.png b/src/lib/libraries/decks/steps/animate-char-move.zh_CN.png new file mode 100644 index 00000000000..d9d6d94d42b Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.zh_TW.png b/src/lib/libraries/decks/steps/animate-char-move.zh_TW.png new file mode 100644 index 00000000000..cd2feae711f Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-move.zu.png b/src/lib/libraries/decks/steps/animate-char-move.zu.png new file mode 100644 index 00000000000..204b81bac61 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-move.zu.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-pick-backdrop.RTL.png b/src/lib/libraries/decks/steps/animate-char-pick-backdrop.RTL.png new file mode 100644 index 00000000000..f8f208e5ba3 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-pick-backdrop.RTL.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-pick-backdrop.en.gif b/src/lib/libraries/decks/steps/animate-char-pick-backdrop.en.gif deleted file mode 100644 index ac0317323e5..00000000000 Binary files a/src/lib/libraries/decks/steps/animate-char-pick-backdrop.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/animate-char-pick-sprite.gif b/src/lib/libraries/decks/steps/animate-char-pick-sprite.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/animate-char-pick-sprite.gif rename to src/lib/libraries/decks/steps/animate-char-pick-sprite.LTR.gif diff --git a/src/lib/libraries/decks/steps/animate-char-pick-sprite.RTL.gif b/src/lib/libraries/decks/steps/animate-char-pick-sprite.RTL.gif new file mode 100644 index 00000000000..1d3ae9fadb3 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-pick-sprite.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/animate-char-pick-sprite.en.gif b/src/lib/libraries/decks/steps/animate-char-pick-sprite.en.gif deleted file mode 100644 index e66e114517b..00000000000 Binary files a/src/lib/libraries/decks/steps/animate-char-pick-sprite.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.am.png b/src/lib/libraries/decks/steps/animate-char-say-something.am.png new file mode 100644 index 00000000000..6e5974fc524 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.am.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.ar.png b/src/lib/libraries/decks/steps/animate-char-say-something.ar.png new file mode 100644 index 00000000000..893b0842ef7 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.ar.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.en.gif b/src/lib/libraries/decks/steps/animate-char-say-something.en.gif deleted file mode 100644 index 8a4d509ca3e..00000000000 Binary files a/src/lib/libraries/decks/steps/animate-char-say-something.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.en.png b/src/lib/libraries/decks/steps/animate-char-say-something.en.png new file mode 100644 index 00000000000..75c118cf1ee Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.en.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.fr.png b/src/lib/libraries/decks/steps/animate-char-say-something.fr.png new file mode 100644 index 00000000000..34544249445 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.fr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.ja.png b/src/lib/libraries/decks/steps/animate-char-say-something.ja.png new file mode 100644 index 00000000000..efcbd192245 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.ja.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.pt_BR.png b/src/lib/libraries/decks/steps/animate-char-say-something.pt_BR.png new file mode 100644 index 00000000000..d869090423a Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.sw.png b/src/lib/libraries/decks/steps/animate-char-say-something.sw.png new file mode 100644 index 00000000000..973a072429e Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.sw.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.tr.png b/src/lib/libraries/decks/steps/animate-char-say-something.tr.png new file mode 100644 index 00000000000..d07d049a16e Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.tr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.uk.png b/src/lib/libraries/decks/steps/animate-char-say-something.uk.png new file mode 100644 index 00000000000..3abcab3072b Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.uk.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.zh_CN.png b/src/lib/libraries/decks/steps/animate-char-say-something.zh_CN.png new file mode 100644 index 00000000000..d4426220cb8 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.zh_TW.png b/src/lib/libraries/decks/steps/animate-char-say-something.zh_TW.png new file mode 100644 index 00000000000..e90d75e21c5 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-say-something.zu.png b/src/lib/libraries/decks/steps/animate-char-say-something.zu.png new file mode 100644 index 00000000000..38ba461d32f Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-say-something.zu.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.am.png b/src/lib/libraries/decks/steps/animate-char-talk.am.png new file mode 100644 index 00000000000..13925592b09 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.am.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.ar.png b/src/lib/libraries/decks/steps/animate-char-talk.ar.png new file mode 100644 index 00000000000..be0c6b3caff Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.ar.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.en.gif b/src/lib/libraries/decks/steps/animate-char-talk.en.gif deleted file mode 100644 index 2147c46a425..00000000000 Binary files a/src/lib/libraries/decks/steps/animate-char-talk.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.en.png b/src/lib/libraries/decks/steps/animate-char-talk.en.png new file mode 100644 index 00000000000..3fdea378363 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.en.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.fr.png b/src/lib/libraries/decks/steps/animate-char-talk.fr.png new file mode 100644 index 00000000000..60ecb3b8eba Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.fr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.ja.png b/src/lib/libraries/decks/steps/animate-char-talk.ja.png new file mode 100644 index 00000000000..7ba566b3054 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.ja.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.pt_BR.png b/src/lib/libraries/decks/steps/animate-char-talk.pt_BR.png new file mode 100644 index 00000000000..5fcfbf1b720 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.sw.png b/src/lib/libraries/decks/steps/animate-char-talk.sw.png new file mode 100644 index 00000000000..5868897649d Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.sw.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.tr.png b/src/lib/libraries/decks/steps/animate-char-talk.tr.png new file mode 100644 index 00000000000..6041e0d13f8 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.tr.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.uk.png b/src/lib/libraries/decks/steps/animate-char-talk.uk.png new file mode 100644 index 00000000000..cd307198e40 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.uk.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.zh_CN.png b/src/lib/libraries/decks/steps/animate-char-talk.zh_CN.png new file mode 100644 index 00000000000..c8f2938a480 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.zh_TW.png b/src/lib/libraries/decks/steps/animate-char-talk.zh_TW.png new file mode 100644 index 00000000000..de1c59598c1 Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-talk.zu.png b/src/lib/libraries/decks/steps/animate-char-talk.zu.png new file mode 100644 index 00000000000..074f6d0de3d Binary files /dev/null and b/src/lib/libraries/decks/steps/animate-char-talk.zu.png differ diff --git a/src/lib/libraries/decks/steps/change-size.am.png b/src/lib/libraries/decks/steps/change-size.am.png new file mode 100644 index 00000000000..ca9db0c6863 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.am.png differ diff --git a/src/lib/libraries/decks/steps/change-size.ar.png b/src/lib/libraries/decks/steps/change-size.ar.png new file mode 100644 index 00000000000..359fc3c2182 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.ar.png differ diff --git a/src/lib/libraries/decks/steps/change-size.en.png b/src/lib/libraries/decks/steps/change-size.en.png old mode 100755 new mode 100644 index 769250f8303..4ebc1074119 Binary files a/src/lib/libraries/decks/steps/change-size.en.png and b/src/lib/libraries/decks/steps/change-size.en.png differ diff --git a/src/lib/libraries/decks/steps/change-size.fr.png b/src/lib/libraries/decks/steps/change-size.fr.png new file mode 100644 index 00000000000..991c2cb28a0 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.fr.png differ diff --git a/src/lib/libraries/decks/steps/change-size.ja.png b/src/lib/libraries/decks/steps/change-size.ja.png new file mode 100644 index 00000000000..ec6da68d631 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.ja.png differ diff --git a/src/lib/libraries/decks/steps/change-size.pt_BR.png b/src/lib/libraries/decks/steps/change-size.pt_BR.png new file mode 100644 index 00000000000..f8d1a9e518b Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/change-size.sw.png b/src/lib/libraries/decks/steps/change-size.sw.png new file mode 100644 index 00000000000..d27f228fdb8 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.sw.png differ diff --git a/src/lib/libraries/decks/steps/change-size.tr.png b/src/lib/libraries/decks/steps/change-size.tr.png new file mode 100644 index 00000000000..3a6d1774f48 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.tr.png differ diff --git a/src/lib/libraries/decks/steps/change-size.uk.png b/src/lib/libraries/decks/steps/change-size.uk.png new file mode 100644 index 00000000000..0ddc8c3c46e Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.uk.png differ diff --git a/src/lib/libraries/decks/steps/change-size.zh_CN.png b/src/lib/libraries/decks/steps/change-size.zh_CN.png new file mode 100644 index 00000000000..2fd266e9ed5 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/change-size.zh_TW.png b/src/lib/libraries/decks/steps/change-size.zh_TW.png new file mode 100644 index 00000000000..7269bda6ad0 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/change-size.zu.png b/src/lib/libraries/decks/steps/change-size.zu.png new file mode 100644 index 00000000000..541f0eb7b19 Binary files /dev/null and b/src/lib/libraries/decks/steps/change-size.zu.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-add-backdrop.LTR.gif b/src/lib/libraries/decks/steps/chase-game-add-backdrop.LTR.gif new file mode 100644 index 00000000000..252a13eb030 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-add-backdrop.LTR.gif differ diff --git a/src/lib/libraries/decks/steps/chase-game-add-backdrop.RTL.gif b/src/lib/libraries/decks/steps/chase-game-add-backdrop.RTL.gif new file mode 100644 index 00000000000..45e04b9245d Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-add-backdrop.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/chase-game-add-backdrop.gif b/src/lib/libraries/decks/steps/chase-game-add-backdrop.gif deleted file mode 100644 index 3f08189b76d..00000000000 Binary files a/src/lib/libraries/decks/steps/chase-game-add-backdrop.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/chase-game-add-sprite1.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite1.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/chase-game-add-sprite1.gif rename to src/lib/libraries/decks/steps/chase-game-add-sprite1.LTR.gif diff --git a/src/lib/libraries/decks/steps/chase-game-add-sprite1.RTL.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite1.RTL.gif new file mode 100644 index 00000000000..2531787b4fc Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-add-sprite1.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/chase-game-add-sprite1.en.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite1.en.gif deleted file mode 100644 index 9f2d28cd7f7..00000000000 Binary files a/src/lib/libraries/decks/steps/chase-game-add-sprite1.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/chase-game-add-sprite2.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite2.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/chase-game-add-sprite2.gif rename to src/lib/libraries/decks/steps/chase-game-add-sprite2.LTR.gif diff --git a/src/lib/libraries/decks/steps/chase-game-add-sprite2.RTL.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite2.RTL.gif new file mode 100644 index 00000000000..6b3d474336a Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-add-sprite2.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/chase-game-add-sprite2.en.gif b/src/lib/libraries/decks/steps/chase-game-add-sprite2.en.gif deleted file mode 100644 index 2467744171d..00000000000 Binary files a/src/lib/libraries/decks/steps/chase-game-add-sprite2.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.am.png b/src/lib/libraries/decks/steps/chase-game-change-score.am.png new file mode 100644 index 00000000000..e5095b4455a Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.am.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.ar.png b/src/lib/libraries/decks/steps/chase-game-change-score.ar.png new file mode 100644 index 00000000000..42375a56f4e Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.ar.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.en.gif b/src/lib/libraries/decks/steps/chase-game-change-score.en.gif deleted file mode 100644 index b54da5fc4da..00000000000 Binary files a/src/lib/libraries/decks/steps/chase-game-change-score.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.en.png b/src/lib/libraries/decks/steps/chase-game-change-score.en.png new file mode 100644 index 00000000000..d4279e906af Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.en.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.fr.png b/src/lib/libraries/decks/steps/chase-game-change-score.fr.png new file mode 100644 index 00000000000..018b06d6f9d Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.fr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.ja.png b/src/lib/libraries/decks/steps/chase-game-change-score.ja.png new file mode 100644 index 00000000000..d9d86408570 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.ja.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.pt_BR.png b/src/lib/libraries/decks/steps/chase-game-change-score.pt_BR.png new file mode 100644 index 00000000000..4706f480cc4 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.sw.png b/src/lib/libraries/decks/steps/chase-game-change-score.sw.png new file mode 100644 index 00000000000..da513cca071 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.sw.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.tr.png b/src/lib/libraries/decks/steps/chase-game-change-score.tr.png new file mode 100644 index 00000000000..f6947c0a266 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.tr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.uk.png b/src/lib/libraries/decks/steps/chase-game-change-score.uk.png new file mode 100644 index 00000000000..5ef96c8aa70 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.uk.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.zh_CN.png b/src/lib/libraries/decks/steps/chase-game-change-score.zh_CN.png new file mode 100644 index 00000000000..d23e6a8c310 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.zh_TW.png b/src/lib/libraries/decks/steps/chase-game-change-score.zh_TW.png new file mode 100644 index 00000000000..b9c5bcd80f3 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-change-score.zu.png b/src/lib/libraries/decks/steps/chase-game-change-score.zu.png new file mode 100644 index 00000000000..31377d53fd0 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-change-score.zu.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.am.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.am.png new file mode 100644 index 00000000000..4dbecc8f6c8 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.am.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.ar.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.ar.png new file mode 100644 index 00000000000..e0bad17283b Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.ar.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.en.gif b/src/lib/libraries/decks/steps/chase-game-move-randomly.en.gif deleted file mode 100644 index 7e11f4ec251..00000000000 Binary files a/src/lib/libraries/decks/steps/chase-game-move-randomly.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.en.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.en.png new file mode 100644 index 00000000000..a6398cc91b6 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.en.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.fr.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.fr.png new file mode 100644 index 00000000000..34f467bd4e3 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.fr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.ja.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.ja.png new file mode 100644 index 00000000000..7118049caa0 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.ja.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.pt_BR.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.pt_BR.png new file mode 100644 index 00000000000..de40f5eaf84 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.sw.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.sw.png new file mode 100644 index 00000000000..a1430fecd8e Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.sw.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.tr.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.tr.png new file mode 100644 index 00000000000..a81a49acd7c Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.tr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.uk.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.uk.png new file mode 100644 index 00000000000..4dcdc690e7b Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.uk.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.zh_CN.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.zh_CN.png new file mode 100644 index 00000000000..0aa9d8e2b95 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.zh_TW.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.zh_TW.png new file mode 100644 index 00000000000..2dfe5028952 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-move-randomly.zu.png b/src/lib/libraries/decks/steps/chase-game-move-randomly.zu.png new file mode 100644 index 00000000000..093df054de2 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-move-randomly.zu.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.am.png b/src/lib/libraries/decks/steps/chase-game-play-sound.am.png new file mode 100644 index 00000000000..544508863f5 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.am.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.ar.png b/src/lib/libraries/decks/steps/chase-game-play-sound.ar.png new file mode 100644 index 00000000000..c95b6da957d Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.ar.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.en.gif b/src/lib/libraries/decks/steps/chase-game-play-sound.en.gif deleted file mode 100644 index 07d883278fc..00000000000 Binary files a/src/lib/libraries/decks/steps/chase-game-play-sound.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.en.png b/src/lib/libraries/decks/steps/chase-game-play-sound.en.png new file mode 100644 index 00000000000..63efb61fa9f Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.en.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.fr.png b/src/lib/libraries/decks/steps/chase-game-play-sound.fr.png new file mode 100644 index 00000000000..bb3249d50e3 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.fr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.ja.png b/src/lib/libraries/decks/steps/chase-game-play-sound.ja.png new file mode 100644 index 00000000000..5614c5508d4 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.ja.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.pt_BR.png b/src/lib/libraries/decks/steps/chase-game-play-sound.pt_BR.png new file mode 100644 index 00000000000..4c7d9cea707 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.sw.png b/src/lib/libraries/decks/steps/chase-game-play-sound.sw.png new file mode 100644 index 00000000000..d80ffd42cc4 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.sw.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.tr.png b/src/lib/libraries/decks/steps/chase-game-play-sound.tr.png new file mode 100644 index 00000000000..8bd10ea9022 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.tr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.uk.png b/src/lib/libraries/decks/steps/chase-game-play-sound.uk.png new file mode 100644 index 00000000000..0735dd08cee Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.uk.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.zh_CN.png b/src/lib/libraries/decks/steps/chase-game-play-sound.zh_CN.png new file mode 100644 index 00000000000..2adb048299d Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.zh_TW.png b/src/lib/libraries/decks/steps/chase-game-play-sound.zh_TW.png new file mode 100644 index 00000000000..cf904cc0a91 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-play-sound.zu.png b/src/lib/libraries/decks/steps/chase-game-play-sound.zu.png new file mode 100644 index 00000000000..a3856c7ed1d Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-play-sound.zu.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.am.png b/src/lib/libraries/decks/steps/chase-game-right-left.am.png new file mode 100644 index 00000000000..6d63362d2d5 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.am.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.ar.png b/src/lib/libraries/decks/steps/chase-game-right-left.ar.png new file mode 100644 index 00000000000..7b4b7527116 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.ar.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.en.gif b/src/lib/libraries/decks/steps/chase-game-right-left.en.gif deleted file mode 100644 index ce144afbc75..00000000000 Binary files a/src/lib/libraries/decks/steps/chase-game-right-left.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.en.png b/src/lib/libraries/decks/steps/chase-game-right-left.en.png new file mode 100644 index 00000000000..78c324e9cc3 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.en.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.fr.png b/src/lib/libraries/decks/steps/chase-game-right-left.fr.png new file mode 100644 index 00000000000..98f02556c51 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.fr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.ja.png b/src/lib/libraries/decks/steps/chase-game-right-left.ja.png new file mode 100644 index 00000000000..7b3db026a87 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.ja.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.pt_BR.png b/src/lib/libraries/decks/steps/chase-game-right-left.pt_BR.png new file mode 100644 index 00000000000..e6f38df944b Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.sw.png b/src/lib/libraries/decks/steps/chase-game-right-left.sw.png new file mode 100644 index 00000000000..fbfece1fb67 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.sw.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.tr.png b/src/lib/libraries/decks/steps/chase-game-right-left.tr.png new file mode 100644 index 00000000000..a7c3a384fb3 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.tr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.uk.png b/src/lib/libraries/decks/steps/chase-game-right-left.uk.png new file mode 100644 index 00000000000..f1e2940bd06 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.uk.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.zh_CN.png b/src/lib/libraries/decks/steps/chase-game-right-left.zh_CN.png new file mode 100644 index 00000000000..df045930c5d Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.zh_TW.png b/src/lib/libraries/decks/steps/chase-game-right-left.zh_TW.png new file mode 100644 index 00000000000..030254965fe Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-right-left.zu.png b/src/lib/libraries/decks/steps/chase-game-right-left.zu.png new file mode 100644 index 00000000000..c114ca3300d Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-right-left.zu.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.am.png b/src/lib/libraries/decks/steps/chase-game-up-down.am.png new file mode 100644 index 00000000000..9f8feed790c Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.am.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.ar.png b/src/lib/libraries/decks/steps/chase-game-up-down.ar.png new file mode 100644 index 00000000000..b49d61feb46 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.ar.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.en.gif b/src/lib/libraries/decks/steps/chase-game-up-down.en.gif deleted file mode 100644 index 7e0971f3921..00000000000 Binary files a/src/lib/libraries/decks/steps/chase-game-up-down.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.en.png b/src/lib/libraries/decks/steps/chase-game-up-down.en.png new file mode 100644 index 00000000000..9d6bcd584f2 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.en.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.fr.png b/src/lib/libraries/decks/steps/chase-game-up-down.fr.png new file mode 100644 index 00000000000..7fa91b1ac66 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.fr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.ja.png b/src/lib/libraries/decks/steps/chase-game-up-down.ja.png new file mode 100644 index 00000000000..fd6bc738b71 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.ja.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.pt_BR.png b/src/lib/libraries/decks/steps/chase-game-up-down.pt_BR.png new file mode 100644 index 00000000000..6d3500d9fc4 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.sw.png b/src/lib/libraries/decks/steps/chase-game-up-down.sw.png new file mode 100644 index 00000000000..41910abafea Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.sw.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.tr.png b/src/lib/libraries/decks/steps/chase-game-up-down.tr.png new file mode 100644 index 00000000000..0b52c28d6be Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.tr.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.uk.png b/src/lib/libraries/decks/steps/chase-game-up-down.uk.png new file mode 100644 index 00000000000..976f99fedd6 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.uk.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.zh_CN.png b/src/lib/libraries/decks/steps/chase-game-up-down.zh_CN.png new file mode 100644 index 00000000000..4a314f1f766 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.zh_TW.png b/src/lib/libraries/decks/steps/chase-game-up-down.zh_TW.png new file mode 100644 index 00000000000..a7dce64dafe Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/chase-game-up-down.zu.png b/src/lib/libraries/decks/steps/chase-game-up-down.zu.png new file mode 100644 index 00000000000..d94731dd4d9 Binary files /dev/null and b/src/lib/libraries/decks/steps/chase-game-up-down.zu.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.am.png b/src/lib/libraries/decks/steps/cn-backdrop.am.png new file mode 100644 index 00000000000..2f162e1f018 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.am.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.ar.png b/src/lib/libraries/decks/steps/cn-backdrop.ar.png new file mode 100644 index 00000000000..6a9b4627937 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.ar.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.en.gif b/src/lib/libraries/decks/steps/cn-backdrop.en.gif deleted file mode 100644 index 2415725c40e..00000000000 Binary files a/src/lib/libraries/decks/steps/cn-backdrop.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.en.png b/src/lib/libraries/decks/steps/cn-backdrop.en.png new file mode 100644 index 00000000000..b23e5e34da9 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.en.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.fr.png b/src/lib/libraries/decks/steps/cn-backdrop.fr.png new file mode 100644 index 00000000000..755ca7ad055 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.fr.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.ja.png b/src/lib/libraries/decks/steps/cn-backdrop.ja.png new file mode 100644 index 00000000000..93459a47c65 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.ja.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.pt_BR.png b/src/lib/libraries/decks/steps/cn-backdrop.pt_BR.png new file mode 100644 index 00000000000..c31ed9e9316 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.sw.png b/src/lib/libraries/decks/steps/cn-backdrop.sw.png new file mode 100644 index 00000000000..20b97ab190f Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.sw.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.tr.png b/src/lib/libraries/decks/steps/cn-backdrop.tr.png new file mode 100644 index 00000000000..87a782853a1 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.tr.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.uk.png b/src/lib/libraries/decks/steps/cn-backdrop.uk.png new file mode 100644 index 00000000000..52fc577b753 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.uk.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.zh_CN.png b/src/lib/libraries/decks/steps/cn-backdrop.zh_CN.png new file mode 100644 index 00000000000..a20a85d1131 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.zh_TW.png b/src/lib/libraries/decks/steps/cn-backdrop.zh_TW.png new file mode 100644 index 00000000000..1e3df671f0e Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/cn-backdrop.zu.png b/src/lib/libraries/decks/steps/cn-backdrop.zu.png new file mode 100644 index 00000000000..4f7468b63b2 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-backdrop.zu.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.am.png b/src/lib/libraries/decks/steps/cn-collect.am.png new file mode 100644 index 00000000000..1cfb9025350 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.am.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.ar.png b/src/lib/libraries/decks/steps/cn-collect.ar.png new file mode 100644 index 00000000000..cc2c834c9d2 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.ar.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.en.gif b/src/lib/libraries/decks/steps/cn-collect.en.gif deleted file mode 100644 index 5f75b8c7b31..00000000000 Binary files a/src/lib/libraries/decks/steps/cn-collect.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/cn-collect.en.png b/src/lib/libraries/decks/steps/cn-collect.en.png new file mode 100644 index 00000000000..a041c4f7ad9 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.en.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.fr.png b/src/lib/libraries/decks/steps/cn-collect.fr.png new file mode 100644 index 00000000000..b0790390890 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.fr.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.ja.png b/src/lib/libraries/decks/steps/cn-collect.ja.png new file mode 100644 index 00000000000..a74b6ced2ab Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.ja.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.pt_BR.png b/src/lib/libraries/decks/steps/cn-collect.pt_BR.png new file mode 100644 index 00000000000..1b71fbae40b Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.sw.png b/src/lib/libraries/decks/steps/cn-collect.sw.png new file mode 100644 index 00000000000..54e2fee111b Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.sw.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.tr.png b/src/lib/libraries/decks/steps/cn-collect.tr.png new file mode 100644 index 00000000000..2d897f4683d Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.tr.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.uk.png b/src/lib/libraries/decks/steps/cn-collect.uk.png new file mode 100644 index 00000000000..bb959e4bd9f Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.uk.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.zh_CN.png b/src/lib/libraries/decks/steps/cn-collect.zh_CN.png new file mode 100644 index 00000000000..1a8cec93731 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.zh_TW.png b/src/lib/libraries/decks/steps/cn-collect.zh_TW.png new file mode 100644 index 00000000000..8fd257cc94b Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/cn-collect.zu.png b/src/lib/libraries/decks/steps/cn-collect.zu.png new file mode 100644 index 00000000000..29afaa4fd5f Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-collect.zu.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.am.png b/src/lib/libraries/decks/steps/cn-glide.am.png new file mode 100644 index 00000000000..5ac875a101a Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.am.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.ar.png b/src/lib/libraries/decks/steps/cn-glide.ar.png new file mode 100644 index 00000000000..a2466c57531 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.ar.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.en.gif b/src/lib/libraries/decks/steps/cn-glide.en.gif deleted file mode 100644 index 148c320421f..00000000000 Binary files a/src/lib/libraries/decks/steps/cn-glide.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/cn-glide.en.png b/src/lib/libraries/decks/steps/cn-glide.en.png new file mode 100644 index 00000000000..2df0a59824f Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.en.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.fr.png b/src/lib/libraries/decks/steps/cn-glide.fr.png new file mode 100644 index 00000000000..100b1e3ff47 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.fr.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.ja.png b/src/lib/libraries/decks/steps/cn-glide.ja.png new file mode 100644 index 00000000000..504b6da9076 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.ja.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.pt_BR.png b/src/lib/libraries/decks/steps/cn-glide.pt_BR.png new file mode 100644 index 00000000000..2e402877fcd Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.sw.png b/src/lib/libraries/decks/steps/cn-glide.sw.png new file mode 100644 index 00000000000..3aeb16d456f Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.sw.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.tr.png b/src/lib/libraries/decks/steps/cn-glide.tr.png new file mode 100644 index 00000000000..dca3b384792 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.tr.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.uk.png b/src/lib/libraries/decks/steps/cn-glide.uk.png new file mode 100644 index 00000000000..2aa11477e80 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.uk.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.zh_CN.png b/src/lib/libraries/decks/steps/cn-glide.zh_CN.png new file mode 100644 index 00000000000..384cc64fe48 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.zh_TW.png b/src/lib/libraries/decks/steps/cn-glide.zh_TW.png new file mode 100644 index 00000000000..6d7f588d088 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/cn-glide.zu.png b/src/lib/libraries/decks/steps/cn-glide.zu.png new file mode 100644 index 00000000000..2a35e6e0b10 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-glide.zu.png differ diff --git a/src/lib/libraries/decks/steps/cn-pick-sprite.gif b/src/lib/libraries/decks/steps/cn-pick-sprite.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/cn-pick-sprite.gif rename to src/lib/libraries/decks/steps/cn-pick-sprite.LTR.gif diff --git a/src/lib/libraries/decks/steps/cn-pick-sprite.RTL.gif b/src/lib/libraries/decks/steps/cn-pick-sprite.RTL.gif new file mode 100644 index 00000000000..375b64be856 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-pick-sprite.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/cn-say.am.png b/src/lib/libraries/decks/steps/cn-say.am.png new file mode 100644 index 00000000000..5f5e5dd4bd5 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.am.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.ar.png b/src/lib/libraries/decks/steps/cn-say.ar.png new file mode 100644 index 00000000000..0bab774858e Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.ar.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.en.gif b/src/lib/libraries/decks/steps/cn-say.en.gif deleted file mode 100644 index e4e296c6460..00000000000 Binary files a/src/lib/libraries/decks/steps/cn-say.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/cn-say.en.png b/src/lib/libraries/decks/steps/cn-say.en.png new file mode 100644 index 00000000000..a26205bef42 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.en.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.fr.png b/src/lib/libraries/decks/steps/cn-say.fr.png new file mode 100644 index 00000000000..b4689fed662 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.fr.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.ja.png b/src/lib/libraries/decks/steps/cn-say.ja.png new file mode 100644 index 00000000000..403936a2f1d Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.ja.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.pt_BR.png b/src/lib/libraries/decks/steps/cn-say.pt_BR.png new file mode 100644 index 00000000000..faa340743a1 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.sw.png b/src/lib/libraries/decks/steps/cn-say.sw.png new file mode 100644 index 00000000000..e6eacbb94bd Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.sw.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.tr.png b/src/lib/libraries/decks/steps/cn-say.tr.png new file mode 100644 index 00000000000..f0de0eab2d7 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.tr.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.uk.png b/src/lib/libraries/decks/steps/cn-say.uk.png new file mode 100644 index 00000000000..8644376b7d5 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.uk.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.zh_CN.png b/src/lib/libraries/decks/steps/cn-say.zh_CN.png new file mode 100644 index 00000000000..ca8c936109c Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.zh_TW.png b/src/lib/libraries/decks/steps/cn-say.zh_TW.png new file mode 100644 index 00000000000..3094d690e49 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/cn-say.zu.png b/src/lib/libraries/decks/steps/cn-say.zu.png new file mode 100644 index 00000000000..55ba3800bc4 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-say.zu.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.am.png b/src/lib/libraries/decks/steps/cn-score.am.png new file mode 100644 index 00000000000..21786ec3fe1 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.am.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.ar.png b/src/lib/libraries/decks/steps/cn-score.ar.png new file mode 100644 index 00000000000..79421e3fbff Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.ar.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.en.gif b/src/lib/libraries/decks/steps/cn-score.en.gif deleted file mode 100644 index 8292399238e..00000000000 Binary files a/src/lib/libraries/decks/steps/cn-score.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/cn-score.en.png b/src/lib/libraries/decks/steps/cn-score.en.png new file mode 100644 index 00000000000..4b358cc4422 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.en.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.fr.png b/src/lib/libraries/decks/steps/cn-score.fr.png new file mode 100644 index 00000000000..0f048d032f8 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.fr.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.ja.png b/src/lib/libraries/decks/steps/cn-score.ja.png new file mode 100644 index 00000000000..d328d2b96cb Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.ja.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.pt_BR.png b/src/lib/libraries/decks/steps/cn-score.pt_BR.png new file mode 100644 index 00000000000..741f682df91 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.sw.png b/src/lib/libraries/decks/steps/cn-score.sw.png new file mode 100644 index 00000000000..55a51027abb Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.sw.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.tr.png b/src/lib/libraries/decks/steps/cn-score.tr.png new file mode 100644 index 00000000000..da3e7f061f4 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.tr.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.uk.png b/src/lib/libraries/decks/steps/cn-score.uk.png new file mode 100644 index 00000000000..a2e801a9a92 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.uk.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.zh_CN.png b/src/lib/libraries/decks/steps/cn-score.zh_CN.png new file mode 100644 index 00000000000..f1fa5649475 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.zh_TW.png b/src/lib/libraries/decks/steps/cn-score.zh_TW.png new file mode 100644 index 00000000000..8101423e1ad Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/cn-score.zu.png b/src/lib/libraries/decks/steps/cn-score.zu.png new file mode 100644 index 00000000000..4c39a9e5a01 Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-score.zu.png differ diff --git a/src/lib/libraries/decks/steps/cn-show-character.LTR.gif b/src/lib/libraries/decks/steps/cn-show-character.LTR.gif new file mode 100644 index 00000000000..01b160a494a Binary files /dev/null and b/src/lib/libraries/decks/steps/cn-show-character.LTR.gif differ diff --git a/src/lib/libraries/decks/steps/cn-show-character.gif b/src/lib/libraries/decks/steps/cn-show-character.gif deleted file mode 100644 index da4dd984a38..00000000000 Binary files a/src/lib/libraries/decks/steps/cn-show-character.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.am.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.am.png new file mode 100644 index 00000000000..7e40ef25b32 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.am.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.ar.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.ar.png new file mode 100644 index 00000000000..2ffb3d9b1c5 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.ar.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.en.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.en.png index f2a1570c387..d9732f805d3 100644 Binary files a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.en.png and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.en.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.fr.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.fr.png new file mode 100644 index 00000000000..573c209a9b1 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.fr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.ja.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.ja.png new file mode 100644 index 00000000000..914b22033a2 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.ja.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.pt_BR.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.pt_BR.png new file mode 100644 index 00000000000..c71b7436eb1 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.sw.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.sw.png new file mode 100644 index 00000000000..67a4e0ee6c0 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.sw.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.tr.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.tr.png new file mode 100644 index 00000000000..59aba1e0355 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.tr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.uk.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.uk.png new file mode 100644 index 00000000000..002cca098aa Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.uk.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zh_CN.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zh_CN.png new file mode 100644 index 00000000000..bc7f156953b Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zh_TW.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zh_TW.png new file mode 100644 index 00000000000..a9beaddd9e3 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zu.png b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zu.png new file mode 100644 index 00000000000..f3d0259bd81 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-01-say-something.zu.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.am.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.am.png new file mode 100644 index 00000000000..1b21ddea36c Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.am.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.ar.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.ar.png new file mode 100644 index 00000000000..71c1856338f Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.ar.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.en.gif b/src/lib/libraries/decks/steps/code-cartoon-02-animate.en.gif deleted file mode 100644 index 5099ab78df4..00000000000 Binary files a/src/lib/libraries/decks/steps/code-cartoon-02-animate.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.en.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.en.png new file mode 100644 index 00000000000..e33703e233c Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.en.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.fr.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.fr.png new file mode 100644 index 00000000000..0fd967dfd09 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.fr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.ja.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.ja.png new file mode 100644 index 00000000000..d061d5a8a8f Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.ja.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.pt_BR.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.pt_BR.png new file mode 100644 index 00000000000..531843a520e Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.sw.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.sw.png new file mode 100644 index 00000000000..60e7f8d3b3e Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.sw.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.tr.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.tr.png new file mode 100644 index 00000000000..8b22b87cb7d Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.tr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.uk.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.uk.png new file mode 100644 index 00000000000..0598cba532c Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.uk.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.zh_CN.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.zh_CN.png new file mode 100644 index 00000000000..6f3ad382a53 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.zh_TW.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.zh_TW.png new file mode 100644 index 00000000000..92fb87444ed Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-02-animate.zu.png b/src/lib/libraries/decks/steps/code-cartoon-02-animate.zu.png new file mode 100644 index 00000000000..4c28472c379 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-02-animate.zu.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-03-select-different-character.png b/src/lib/libraries/decks/steps/code-cartoon-03-select-different-character.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/code-cartoon-03-select-different-character.png rename to src/lib/libraries/decks/steps/code-cartoon-03-select-different-character.LTR.png diff --git a/src/lib/libraries/decks/steps/code-cartoon-03-select-different-character.RTL.png b/src/lib/libraries/decks/steps/code-cartoon-03-select-different-character.RTL.png new file mode 100644 index 00000000000..99b544c28d7 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-03-select-different-character.RTL.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.am.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.am.png new file mode 100644 index 00000000000..ec4adf56837 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.am.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.ar.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.ar.png new file mode 100644 index 00000000000..81137111f24 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.ar.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.en.gif b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.en.gif deleted file mode 100644 index 02d7486ec30..00000000000 Binary files a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.en.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.en.png new file mode 100644 index 00000000000..905b4afbfbe Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.en.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.fr.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.fr.png new file mode 100644 index 00000000000..64147fe5240 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.fr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.ja.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.ja.png new file mode 100644 index 00000000000..a455c2b97cd Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.ja.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.pt_BR.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.pt_BR.png new file mode 100644 index 00000000000..3b8480b49da Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.sw.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.sw.png new file mode 100644 index 00000000000..5dcaf2e407a Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.sw.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.tr.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.tr.png new file mode 100644 index 00000000000..2c29af5abfa Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.tr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.uk.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.uk.png new file mode 100644 index 00000000000..02e65f804c9 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.uk.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zh_CN.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zh_CN.png new file mode 100644 index 00000000000..09fff4d365d Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zh_TW.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zh_TW.png new file mode 100644 index 00000000000..034a2fe68f4 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zu.png b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zu.png new file mode 100644 index 00000000000..c57e0093408 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-04-use-minus-sign.zu.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.am.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.am.png new file mode 100644 index 00000000000..070962758d7 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.am.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.ar.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.ar.png new file mode 100644 index 00000000000..d2403dbe91c Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.ar.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.en.gif b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.en.gif deleted file mode 100644 index 90b05adc1ee..00000000000 Binary files a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.en.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.en.png new file mode 100644 index 00000000000..471bbf6546e Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.en.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.fr.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.fr.png new file mode 100644 index 00000000000..cbe968ce8ee Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.fr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.ja.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.ja.png new file mode 100644 index 00000000000..1b96eb5cdbf Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.ja.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.pt_BR.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.pt_BR.png new file mode 100644 index 00000000000..4b10b0a18ee Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.sw.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.sw.png new file mode 100644 index 00000000000..75a02018d8e Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.sw.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.tr.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.tr.png new file mode 100644 index 00000000000..f431a08e855 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.tr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.uk.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.uk.png new file mode 100644 index 00000000000..ba850b22f67 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.uk.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zh_CN.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zh_CN.png new file mode 100644 index 00000000000..f5827e9f359 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zh_TW.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zh_TW.png new file mode 100644 index 00000000000..ab161eb9219 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zu.png b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zu.png new file mode 100644 index 00000000000..c63396a36e0 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-05-grow-shrink.zu.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-06-select-another-different-character.png b/src/lib/libraries/decks/steps/code-cartoon-06-select-another-different-character.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/code-cartoon-06-select-another-different-character.png rename to src/lib/libraries/decks/steps/code-cartoon-06-select-another-different-character.LTR.png diff --git a/src/lib/libraries/decks/steps/code-cartoon-06-select-another-different-character.RTL.png b/src/lib/libraries/decks/steps/code-cartoon-06-select-another-different-character.RTL.png new file mode 100644 index 00000000000..20d4c97602d Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-06-select-another-different-character.RTL.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.am.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.am.png new file mode 100644 index 00000000000..906b395bd4d Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.am.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.ar.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.ar.png new file mode 100644 index 00000000000..decfeefe215 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.ar.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.en.gif b/src/lib/libraries/decks/steps/code-cartoon-07-jump.en.gif deleted file mode 100644 index ff3cd922aca..00000000000 Binary files a/src/lib/libraries/decks/steps/code-cartoon-07-jump.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.en.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.en.png new file mode 100644 index 00000000000..2584895e1a2 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.en.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.fr.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.fr.png new file mode 100644 index 00000000000..5f3287a46d4 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.fr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.ja.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.ja.png new file mode 100644 index 00000000000..be92df9d964 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.ja.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.pt_BR.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.pt_BR.png new file mode 100644 index 00000000000..12488090e2b Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.sw.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.sw.png new file mode 100644 index 00000000000..3c5d80d1bee Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.sw.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.tr.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.tr.png new file mode 100644 index 00000000000..3767673ce61 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.tr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.uk.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.uk.png new file mode 100644 index 00000000000..ebe2ff21763 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.uk.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.zh_CN.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.zh_CN.png new file mode 100644 index 00000000000..a2be1715601 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.zh_TW.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.zh_TW.png new file mode 100644 index 00000000000..99e1f31fce8 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-07-jump.zu.png b/src/lib/libraries/decks/steps/code-cartoon-07-jump.zu.png new file mode 100644 index 00000000000..ef8330e0e96 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-07-jump.zu.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.am.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.am.png new file mode 100644 index 00000000000..6932ee8fb33 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.am.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.ar.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.ar.png new file mode 100644 index 00000000000..57d661d97b0 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.ar.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.en.gif b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.en.gif deleted file mode 100644 index 52c78a87989..00000000000 Binary files a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.en.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.en.png new file mode 100644 index 00000000000..b3db86b30ac Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.en.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.fr.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.fr.png new file mode 100644 index 00000000000..d5e77412466 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.fr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.ja.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.ja.png new file mode 100644 index 00000000000..7a1db1d476c Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.ja.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.pt_BR.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.pt_BR.png new file mode 100644 index 00000000000..3d65ab5b8b7 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.sw.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.sw.png new file mode 100644 index 00000000000..5167d2ffbe6 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.sw.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.tr.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.tr.png new file mode 100644 index 00000000000..c69b760d708 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.tr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.uk.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.uk.png new file mode 100644 index 00000000000..f91b30278a0 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.uk.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zh_CN.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zh_CN.png new file mode 100644 index 00000000000..1fc0e9bdb3f Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zh_TW.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zh_TW.png new file mode 100644 index 00000000000..5174e21528d Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zu.png b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zu.png new file mode 100644 index 00000000000..2337c56a18c Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-08-change-scenes.zu.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.am.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.am.png new file mode 100644 index 00000000000..ad5f10d6318 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.am.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.ar.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.ar.png new file mode 100644 index 00000000000..0af8e19d7b9 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.ar.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.en.gif b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.en.gif deleted file mode 100644 index 58de4c513bc..00000000000 Binary files a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.en.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.en.png new file mode 100644 index 00000000000..71e58422c96 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.en.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.fr.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.fr.png new file mode 100644 index 00000000000..82f1057c47a Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.fr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.ja.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.ja.png new file mode 100644 index 00000000000..bcd6ee8dffa Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.ja.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.pt_BR.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.pt_BR.png new file mode 100644 index 00000000000..dedbc4a25d0 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.sw.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.sw.png new file mode 100644 index 00000000000..845742216bc Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.sw.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.tr.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.tr.png new file mode 100644 index 00000000000..da78a84f49c Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.tr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.uk.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.uk.png new file mode 100644 index 00000000000..93d7aa5be73 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.uk.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zh_CN.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zh_CN.png new file mode 100644 index 00000000000..796614229e4 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zh_TW.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zh_TW.png new file mode 100644 index 00000000000..4db43c12fb2 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zu.png b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zu.png new file mode 100644 index 00000000000..6b2fd2854e9 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-09-glide-around.zu.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.am.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.am.png new file mode 100644 index 00000000000..eb5be772aa3 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.am.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.ar.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.ar.png new file mode 100644 index 00000000000..381e31d6c64 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.ar.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.en.gif b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.en.gif deleted file mode 100644 index 57e91f8b017..00000000000 Binary files a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.en.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.en.png new file mode 100644 index 00000000000..d9420a57959 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.en.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.fr.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.fr.png new file mode 100644 index 00000000000..215a5de510f Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.fr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.ja.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.ja.png new file mode 100644 index 00000000000..a1797ab1992 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.ja.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.pt_BR.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.pt_BR.png new file mode 100644 index 00000000000..b3c59fa36eb Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.sw.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.sw.png new file mode 100644 index 00000000000..01cb2b0edd4 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.sw.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.tr.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.tr.png new file mode 100644 index 00000000000..6692787d9a4 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.tr.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.uk.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.uk.png new file mode 100644 index 00000000000..cbf4287c77e Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.uk.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zh_CN.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zh_CN.png new file mode 100644 index 00000000000..5260d154e99 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zh_TW.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zh_TW.png new file mode 100644 index 00000000000..4f587c2f1d8 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zu.png b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zu.png new file mode 100644 index 00000000000..799fd52c618 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-10-change-costumes.zu.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.png b/src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.png rename to src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.LTR.png diff --git a/src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.RTL.png b/src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.RTL.png new file mode 100644 index 00000000000..9d826029023 Binary files /dev/null and b/src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.RTL.png differ diff --git a/src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.en.jpg b/src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.en.jpg deleted file mode 100644 index 5a88acc29d7..00000000000 Binary files a/src/lib/libraries/decks/steps/code-cartoon-11-choose-more-characters.en.jpg and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-choose-backdrop.gif b/src/lib/libraries/decks/steps/fly-choose-backdrop.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/fly-choose-backdrop.gif rename to src/lib/libraries/decks/steps/fly-choose-backdrop.LTR.gif diff --git a/src/lib/libraries/decks/steps/fly-choose-backdrop.RTL.gif b/src/lib/libraries/decks/steps/fly-choose-backdrop.RTL.gif new file mode 100644 index 00000000000..cd8f2e4f1fc Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-choose-backdrop.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/fly-choose-backdrop.en.gif b/src/lib/libraries/decks/steps/fly-choose-backdrop.en.gif deleted file mode 100644 index 673841c1dea..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-choose-backdrop.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-choose-character.png b/src/lib/libraries/decks/steps/fly-choose-character.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/fly-choose-character.png rename to src/lib/libraries/decks/steps/fly-choose-character.LTR.png diff --git a/src/lib/libraries/decks/steps/fly-choose-character.RTL.png b/src/lib/libraries/decks/steps/fly-choose-character.RTL.png new file mode 100644 index 00000000000..9753fa8654f Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-choose-character.RTL.png differ diff --git a/src/lib/libraries/decks/steps/fly-choose-character.en.gif b/src/lib/libraries/decks/steps/fly-choose-character.en.gif deleted file mode 100644 index ff3d43e2ef2..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-choose-character.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-choose-scenery.gif b/src/lib/libraries/decks/steps/fly-choose-scenery.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/fly-choose-scenery.gif rename to src/lib/libraries/decks/steps/fly-choose-scenery.LTR.gif diff --git a/src/lib/libraries/decks/steps/fly-choose-scenery.RTL.gif b/src/lib/libraries/decks/steps/fly-choose-scenery.RTL.gif new file mode 100644 index 00000000000..4d5629a0c3a Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-choose-scenery.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/fly-choose-scenery.en.gif b/src/lib/libraries/decks/steps/fly-choose-scenery.en.gif deleted file mode 100644 index 9583d0de173..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-choose-scenery.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.am.png b/src/lib/libraries/decks/steps/fly-flying-heart.am.png new file mode 100644 index 00000000000..0007f8944f8 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.am.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.ar.png b/src/lib/libraries/decks/steps/fly-flying-heart.ar.png new file mode 100644 index 00000000000..74b3f32074b Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.ar.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.en.gif b/src/lib/libraries/decks/steps/fly-flying-heart.en.gif deleted file mode 100644 index 0580926b51e..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-flying-heart.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.en.png b/src/lib/libraries/decks/steps/fly-flying-heart.en.png new file mode 100644 index 00000000000..22afce8e833 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.en.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.fr.png b/src/lib/libraries/decks/steps/fly-flying-heart.fr.png new file mode 100644 index 00000000000..dba3ae9cc38 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.fr.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.ja.png b/src/lib/libraries/decks/steps/fly-flying-heart.ja.png new file mode 100644 index 00000000000..2421f66a7b4 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.ja.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.pt_BR.png b/src/lib/libraries/decks/steps/fly-flying-heart.pt_BR.png new file mode 100644 index 00000000000..e448f5fd152 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.sw.png b/src/lib/libraries/decks/steps/fly-flying-heart.sw.png new file mode 100644 index 00000000000..a1a2c9ff90d Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.sw.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.tr.png b/src/lib/libraries/decks/steps/fly-flying-heart.tr.png new file mode 100644 index 00000000000..1a2c5e0457e Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.tr.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.uk.png b/src/lib/libraries/decks/steps/fly-flying-heart.uk.png new file mode 100644 index 00000000000..6da01333643 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.uk.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.zh_CN.png b/src/lib/libraries/decks/steps/fly-flying-heart.zh_CN.png new file mode 100644 index 00000000000..9800da5e452 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.zh_TW.png b/src/lib/libraries/decks/steps/fly-flying-heart.zh_TW.png new file mode 100644 index 00000000000..aa925bd0e24 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/fly-flying-heart.zu.png b/src/lib/libraries/decks/steps/fly-flying-heart.zu.png new file mode 100644 index 00000000000..be5c58cdd8f Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-flying-heart.zu.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.am.png b/src/lib/libraries/decks/steps/fly-keep-score.am.png new file mode 100644 index 00000000000..cfc48f27201 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.am.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.ar.png b/src/lib/libraries/decks/steps/fly-keep-score.ar.png new file mode 100644 index 00000000000..b1a3002bb83 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.ar.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.en.gif b/src/lib/libraries/decks/steps/fly-keep-score.en.gif deleted file mode 100644 index 3345b87d75c..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-keep-score.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.en.png b/src/lib/libraries/decks/steps/fly-keep-score.en.png new file mode 100644 index 00000000000..4312869a0ac Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.en.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.fr.png b/src/lib/libraries/decks/steps/fly-keep-score.fr.png new file mode 100644 index 00000000000..e2b7bf62913 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.fr.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.ja.png b/src/lib/libraries/decks/steps/fly-keep-score.ja.png new file mode 100644 index 00000000000..0e80521a99d Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.ja.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.pt_BR.png b/src/lib/libraries/decks/steps/fly-keep-score.pt_BR.png new file mode 100644 index 00000000000..7f7d5743ce9 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.sw.png b/src/lib/libraries/decks/steps/fly-keep-score.sw.png new file mode 100644 index 00000000000..136fc5a30fd Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.sw.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.tr.png b/src/lib/libraries/decks/steps/fly-keep-score.tr.png new file mode 100644 index 00000000000..63c9733abc1 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.tr.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.uk.png b/src/lib/libraries/decks/steps/fly-keep-score.uk.png new file mode 100644 index 00000000000..26744fbba6c Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.uk.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.zh_CN.png b/src/lib/libraries/decks/steps/fly-keep-score.zh_CN.png new file mode 100644 index 00000000000..43d6e865928 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.zh_TW.png b/src/lib/libraries/decks/steps/fly-keep-score.zh_TW.png new file mode 100644 index 00000000000..53d447cd1e6 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/fly-keep-score.zu.png b/src/lib/libraries/decks/steps/fly-keep-score.zu.png new file mode 100644 index 00000000000..9f76377cc62 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-keep-score.zu.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.am.png b/src/lib/libraries/decks/steps/fly-make-interactive.am.png new file mode 100644 index 00000000000..ae37bba09ba Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.am.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.ar.png b/src/lib/libraries/decks/steps/fly-make-interactive.ar.png new file mode 100644 index 00000000000..7699608ba9a Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.ar.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.en.gif b/src/lib/libraries/decks/steps/fly-make-interactive.en.gif deleted file mode 100644 index dd21a188810..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-make-interactive.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.en.png b/src/lib/libraries/decks/steps/fly-make-interactive.en.png new file mode 100644 index 00000000000..573f399a8dc Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.en.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.fr.png b/src/lib/libraries/decks/steps/fly-make-interactive.fr.png new file mode 100644 index 00000000000..cb0dde77670 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.fr.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.ja.png b/src/lib/libraries/decks/steps/fly-make-interactive.ja.png new file mode 100644 index 00000000000..10fb92fc241 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.ja.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.pt_BR.png b/src/lib/libraries/decks/steps/fly-make-interactive.pt_BR.png new file mode 100644 index 00000000000..1193b44cb5e Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.sw.png b/src/lib/libraries/decks/steps/fly-make-interactive.sw.png new file mode 100644 index 00000000000..666fa84de9c Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.sw.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.tr.png b/src/lib/libraries/decks/steps/fly-make-interactive.tr.png new file mode 100644 index 00000000000..5d0cd9c16f6 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.tr.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.uk.png b/src/lib/libraries/decks/steps/fly-make-interactive.uk.png new file mode 100644 index 00000000000..9c24ba47002 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.uk.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.zh_CN.png b/src/lib/libraries/decks/steps/fly-make-interactive.zh_CN.png new file mode 100644 index 00000000000..06bee59ac18 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.zh_TW.png b/src/lib/libraries/decks/steps/fly-make-interactive.zh_TW.png new file mode 100644 index 00000000000..f554b093233 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/fly-make-interactive.zu.png b/src/lib/libraries/decks/steps/fly-make-interactive.zu.png new file mode 100644 index 00000000000..8f824affc87 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-make-interactive.zu.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.am.png b/src/lib/libraries/decks/steps/fly-move-scenery.am.png new file mode 100644 index 00000000000..363f3f54a8a Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.am.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.ar.png b/src/lib/libraries/decks/steps/fly-move-scenery.ar.png new file mode 100644 index 00000000000..64434af0beb Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.ar.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.en.gif b/src/lib/libraries/decks/steps/fly-move-scenery.en.gif deleted file mode 100644 index 0d460ebaf47..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-move-scenery.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.en.png b/src/lib/libraries/decks/steps/fly-move-scenery.en.png new file mode 100644 index 00000000000..64eeeea8ed2 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.en.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.fr.png b/src/lib/libraries/decks/steps/fly-move-scenery.fr.png new file mode 100644 index 00000000000..c6ebcf860b6 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.fr.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.ja.png b/src/lib/libraries/decks/steps/fly-move-scenery.ja.png new file mode 100644 index 00000000000..bb1c8990e9b Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.ja.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.pt_BR.png b/src/lib/libraries/decks/steps/fly-move-scenery.pt_BR.png new file mode 100644 index 00000000000..044d927e5c7 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.sw.png b/src/lib/libraries/decks/steps/fly-move-scenery.sw.png new file mode 100644 index 00000000000..66526bcfebb Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.sw.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.tr.png b/src/lib/libraries/decks/steps/fly-move-scenery.tr.png new file mode 100644 index 00000000000..a23d2a9e8eb Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.tr.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.uk.png b/src/lib/libraries/decks/steps/fly-move-scenery.uk.png new file mode 100644 index 00000000000..97bbee72644 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.uk.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.zh_CN.png b/src/lib/libraries/decks/steps/fly-move-scenery.zh_CN.png new file mode 100644 index 00000000000..eb4a27054cf Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.zh_TW.png b/src/lib/libraries/decks/steps/fly-move-scenery.zh_TW.png new file mode 100644 index 00000000000..9625be17173 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/fly-move-scenery.zu.png b/src/lib/libraries/decks/steps/fly-move-scenery.zu.png new file mode 100644 index 00000000000..df3fa5ffe97 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-move-scenery.zu.png differ diff --git a/src/lib/libraries/decks/steps/fly-object-to-collect.png b/src/lib/libraries/decks/steps/fly-object-to-collect.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/fly-object-to-collect.png rename to src/lib/libraries/decks/steps/fly-object-to-collect.LTR.png diff --git a/src/lib/libraries/decks/steps/fly-object-to-collect.RTL.png b/src/lib/libraries/decks/steps/fly-object-to-collect.RTL.png new file mode 100644 index 00000000000..f3100faddd5 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-object-to-collect.RTL.png differ diff --git a/src/lib/libraries/decks/steps/fly-object-to-collect.en.gif b/src/lib/libraries/decks/steps/fly-object-to-collect.en.gif deleted file mode 100644 index be8ea0eb9be..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-object-to-collect.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.am.png b/src/lib/libraries/decks/steps/fly-say-something.am.png new file mode 100644 index 00000000000..326b62f6d6e Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.am.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.ar.png b/src/lib/libraries/decks/steps/fly-say-something.ar.png new file mode 100644 index 00000000000..63408871fb7 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.ar.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.en.gif b/src/lib/libraries/decks/steps/fly-say-something.en.gif deleted file mode 100644 index 1f94044942c..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-say-something.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.en.png b/src/lib/libraries/decks/steps/fly-say-something.en.png new file mode 100644 index 00000000000..d8b7d988047 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.en.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.fr.png b/src/lib/libraries/decks/steps/fly-say-something.fr.png new file mode 100644 index 00000000000..1bf8dfc10e9 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.fr.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.ja.png b/src/lib/libraries/decks/steps/fly-say-something.ja.png new file mode 100644 index 00000000000..950ef03f368 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.ja.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.pt_BR.png b/src/lib/libraries/decks/steps/fly-say-something.pt_BR.png new file mode 100644 index 00000000000..0b43d246577 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.sw.png b/src/lib/libraries/decks/steps/fly-say-something.sw.png new file mode 100644 index 00000000000..d9837d00a71 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.sw.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.tr.png b/src/lib/libraries/decks/steps/fly-say-something.tr.png new file mode 100644 index 00000000000..364a8bcfd0d Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.tr.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.uk.png b/src/lib/libraries/decks/steps/fly-say-something.uk.png new file mode 100644 index 00000000000..7f3b90efb2f Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.uk.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.zh_CN.png b/src/lib/libraries/decks/steps/fly-say-something.zh_CN.png new file mode 100644 index 00000000000..45bcc43b418 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.zh_TW.png b/src/lib/libraries/decks/steps/fly-say-something.zh_TW.png new file mode 100644 index 00000000000..11d36f78274 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/fly-say-something.zu.png b/src/lib/libraries/decks/steps/fly-say-something.zu.png new file mode 100644 index 00000000000..e6c6e181e6f Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-say-something.zu.png differ diff --git a/src/lib/libraries/decks/steps/fly-select-flyer.png b/src/lib/libraries/decks/steps/fly-select-flyer.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/fly-select-flyer.png rename to src/lib/libraries/decks/steps/fly-select-flyer.LTR.png diff --git a/src/lib/libraries/decks/steps/fly-select-flyer.RTL.png b/src/lib/libraries/decks/steps/fly-select-flyer.RTL.png new file mode 100644 index 00000000000..ba5a0ce4808 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-select-flyer.RTL.png differ diff --git a/src/lib/libraries/decks/steps/fly-select-flyer.en.jpg b/src/lib/libraries/decks/steps/fly-select-flyer.en.jpg deleted file mode 100644 index dd0cb9fb2e7..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-select-flyer.en.jpg and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.am.png b/src/lib/libraries/decks/steps/fly-switch-costume.am.png new file mode 100644 index 00000000000..3f50d8a3fef Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.am.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.ar.png b/src/lib/libraries/decks/steps/fly-switch-costume.ar.png new file mode 100644 index 00000000000..3ae8c72284f Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.ar.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.en.gif b/src/lib/libraries/decks/steps/fly-switch-costume.en.gif deleted file mode 100644 index 19f1f304df9..00000000000 Binary files a/src/lib/libraries/decks/steps/fly-switch-costume.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.en.png b/src/lib/libraries/decks/steps/fly-switch-costume.en.png new file mode 100644 index 00000000000..67ba6b61d11 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.en.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.fr.png b/src/lib/libraries/decks/steps/fly-switch-costume.fr.png new file mode 100644 index 00000000000..f5d70fc5f1b Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.fr.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.ja.png b/src/lib/libraries/decks/steps/fly-switch-costume.ja.png new file mode 100644 index 00000000000..d1b2b5ddb2b Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.ja.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.pt_BR.png b/src/lib/libraries/decks/steps/fly-switch-costume.pt_BR.png new file mode 100644 index 00000000000..52ed7404048 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.sw.png b/src/lib/libraries/decks/steps/fly-switch-costume.sw.png new file mode 100644 index 00000000000..2b288a68aa1 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.sw.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.tr.png b/src/lib/libraries/decks/steps/fly-switch-costume.tr.png new file mode 100644 index 00000000000..ae00cceab62 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.tr.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.uk.png b/src/lib/libraries/decks/steps/fly-switch-costume.uk.png new file mode 100644 index 00000000000..de488986914 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.uk.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.zh_CN.png b/src/lib/libraries/decks/steps/fly-switch-costume.zh_CN.png new file mode 100644 index 00000000000..687dd05307d Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.zh_TW.png b/src/lib/libraries/decks/steps/fly-switch-costume.zh_TW.png new file mode 100644 index 00000000000..415537fd438 Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/fly-switch-costume.zu.png b/src/lib/libraries/decks/steps/fly-switch-costume.zu.png new file mode 100644 index 00000000000..673798ff1bc Binary files /dev/null and b/src/lib/libraries/decks/steps/fly-switch-costume.zu.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.am.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.am.png new file mode 100644 index 00000000000..d0fdf0a2112 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.am.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.ar.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.ar.png new file mode 100644 index 00000000000..4878fc3b03f Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.ar.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.en.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.en.png old mode 100755 new mode 100644 index 696be693e6e..a1e4feb8a25 Binary files a/src/lib/libraries/decks/steps/glide-around-back-and-forth.en.png and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.en.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.fr.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.fr.png new file mode 100644 index 00000000000..2aa4a81537e Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.fr.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.ja.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.ja.png new file mode 100644 index 00000000000..d50634bc4dd Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.ja.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.pt_BR.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.pt_BR.png new file mode 100644 index 00000000000..99b12bbb63b Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.sw.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.sw.png new file mode 100644 index 00000000000..1246af584b6 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.sw.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.tr.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.tr.png new file mode 100644 index 00000000000..caed446a3f0 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.tr.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.uk.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.uk.png new file mode 100644 index 00000000000..95cb942db71 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.uk.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.zh_CN.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.zh_CN.png new file mode 100644 index 00000000000..f47204b9b48 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.zh_TW.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.zh_TW.png new file mode 100644 index 00000000000..afb31ba376e Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-back-and-forth.zu.png b/src/lib/libraries/decks/steps/glide-around-back-and-forth.zu.png new file mode 100644 index 00000000000..ce686c12453 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-back-and-forth.zu.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.am.png b/src/lib/libraries/decks/steps/glide-around-point.am.png new file mode 100644 index 00000000000..69525180a26 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.am.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.ar.png b/src/lib/libraries/decks/steps/glide-around-point.ar.png new file mode 100644 index 00000000000..475b610990c Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.ar.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.en.png b/src/lib/libraries/decks/steps/glide-around-point.en.png old mode 100755 new mode 100644 index 34cd22439e8..ccec5be5a7d Binary files a/src/lib/libraries/decks/steps/glide-around-point.en.png and b/src/lib/libraries/decks/steps/glide-around-point.en.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.fr.png b/src/lib/libraries/decks/steps/glide-around-point.fr.png new file mode 100644 index 00000000000..685486f6e2b Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.fr.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.ja.png b/src/lib/libraries/decks/steps/glide-around-point.ja.png new file mode 100644 index 00000000000..c82829161b9 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.ja.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.pt_BR.png b/src/lib/libraries/decks/steps/glide-around-point.pt_BR.png new file mode 100644 index 00000000000..cf1b88b0d67 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.sw.png b/src/lib/libraries/decks/steps/glide-around-point.sw.png new file mode 100644 index 00000000000..16e7eee0c6f Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.sw.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.tr.png b/src/lib/libraries/decks/steps/glide-around-point.tr.png new file mode 100644 index 00000000000..091e1fba374 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.tr.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.uk.png b/src/lib/libraries/decks/steps/glide-around-point.uk.png new file mode 100644 index 00000000000..3eb9e47148b Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.uk.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.zh_CN.png b/src/lib/libraries/decks/steps/glide-around-point.zh_CN.png new file mode 100644 index 00000000000..2c4c72ceaee Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.zh_TW.png b/src/lib/libraries/decks/steps/glide-around-point.zh_TW.png new file mode 100644 index 00000000000..d715286e5ef Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/glide-around-point.zu.png b/src/lib/libraries/decks/steps/glide-around-point.zu.png new file mode 100644 index 00000000000..de9e8906d69 Binary files /dev/null and b/src/lib/libraries/decks/steps/glide-around-point.zu.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.am.png b/src/lib/libraries/decks/steps/hide-show.am.png new file mode 100644 index 00000000000..e671209f504 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.am.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.ar.png b/src/lib/libraries/decks/steps/hide-show.ar.png new file mode 100644 index 00000000000..d46d0f8edf1 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.ar.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.en.png b/src/lib/libraries/decks/steps/hide-show.en.png old mode 100755 new mode 100644 index 6d5ce3a9c90..8a5950d4038 Binary files a/src/lib/libraries/decks/steps/hide-show.en.png and b/src/lib/libraries/decks/steps/hide-show.en.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.fr.png b/src/lib/libraries/decks/steps/hide-show.fr.png new file mode 100644 index 00000000000..b56b897be3d Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.fr.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.ja.png b/src/lib/libraries/decks/steps/hide-show.ja.png new file mode 100644 index 00000000000..353bc234050 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.ja.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.pt_BR.png b/src/lib/libraries/decks/steps/hide-show.pt_BR.png new file mode 100644 index 00000000000..044d61b70b1 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.sw.png b/src/lib/libraries/decks/steps/hide-show.sw.png new file mode 100644 index 00000000000..3a66c9fdbc6 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.sw.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.tr.png b/src/lib/libraries/decks/steps/hide-show.tr.png new file mode 100644 index 00000000000..e7fee623c82 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.tr.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.uk.png b/src/lib/libraries/decks/steps/hide-show.uk.png new file mode 100644 index 00000000000..1b46c8ee1f5 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.uk.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.zh_CN.png b/src/lib/libraries/decks/steps/hide-show.zh_CN.png new file mode 100644 index 00000000000..5a01e6c22dc Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.zh_TW.png b/src/lib/libraries/decks/steps/hide-show.zh_TW.png new file mode 100644 index 00000000000..85f71e8b6f1 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/hide-show.zu.png b/src/lib/libraries/decks/steps/hide-show.zu.png new file mode 100644 index 00000000000..d5348daffa9 Binary files /dev/null and b/src/lib/libraries/decks/steps/hide-show.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.am.png b/src/lib/libraries/decks/steps/imagine-change-costumes.am.png new file mode 100644 index 00000000000..beda7fc70c6 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.ar.png b/src/lib/libraries/decks/steps/imagine-change-costumes.ar.png new file mode 100644 index 00000000000..2cb4c57e50c Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.en.png b/src/lib/libraries/decks/steps/imagine-change-costumes.en.png old mode 100755 new mode 100644 index ce2a4634702..aca572ed766 Binary files a/src/lib/libraries/decks/steps/imagine-change-costumes.en.png and b/src/lib/libraries/decks/steps/imagine-change-costumes.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.fr.png b/src/lib/libraries/decks/steps/imagine-change-costumes.fr.png new file mode 100644 index 00000000000..f1f2a2bfc5b Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.ja.png b/src/lib/libraries/decks/steps/imagine-change-costumes.ja.png new file mode 100644 index 00000000000..0214a65cd6a Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.pt_BR.png b/src/lib/libraries/decks/steps/imagine-change-costumes.pt_BR.png new file mode 100644 index 00000000000..42efb62c2fc Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.sw.png b/src/lib/libraries/decks/steps/imagine-change-costumes.sw.png new file mode 100644 index 00000000000..a927238f4e3 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.tr.png b/src/lib/libraries/decks/steps/imagine-change-costumes.tr.png new file mode 100644 index 00000000000..e938fda2fb8 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.uk.png b/src/lib/libraries/decks/steps/imagine-change-costumes.uk.png new file mode 100644 index 00000000000..505cb2048f7 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.zh_CN.png b/src/lib/libraries/decks/steps/imagine-change-costumes.zh_CN.png new file mode 100644 index 00000000000..22c2cb1d1de Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.zh_TW.png b/src/lib/libraries/decks/steps/imagine-change-costumes.zh_TW.png new file mode 100644 index 00000000000..bacd1ea66d6 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-change-costumes.zu.png b/src/lib/libraries/decks/steps/imagine-change-costumes.zu.png new file mode 100644 index 00000000000..19bdeb9e4f2 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-change-costumes.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-another-backdrop.png b/src/lib/libraries/decks/steps/imagine-choose-another-backdrop.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/imagine-choose-another-backdrop.png rename to src/lib/libraries/decks/steps/imagine-choose-another-backdrop.LTR.png diff --git a/src/lib/libraries/decks/steps/imagine-choose-another-backdrop.RTL.png b/src/lib/libraries/decks/steps/imagine-choose-another-backdrop.RTL.png new file mode 100644 index 00000000000..87b1b1801eb Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-another-backdrop.RTL.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-another-sprite.png b/src/lib/libraries/decks/steps/imagine-choose-another-sprite.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/imagine-choose-another-sprite.png rename to src/lib/libraries/decks/steps/imagine-choose-another-sprite.LTR.png diff --git a/src/lib/libraries/decks/steps/imagine-choose-another-sprite.RTL.png b/src/lib/libraries/decks/steps/imagine-choose-another-sprite.RTL.png new file mode 100644 index 00000000000..5d63444ba40 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-another-sprite.RTL.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-any-sprite.png b/src/lib/libraries/decks/steps/imagine-choose-any-sprite.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/imagine-choose-any-sprite.png rename to src/lib/libraries/decks/steps/imagine-choose-any-sprite.LTR.png diff --git a/src/lib/libraries/decks/steps/imagine-choose-any-sprite.RTL.png b/src/lib/libraries/decks/steps/imagine-choose-any-sprite.RTL.png new file mode 100644 index 00000000000..7cdd7966aaa Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-any-sprite.RTL.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-backdrop.png b/src/lib/libraries/decks/steps/imagine-choose-backdrop.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/imagine-choose-backdrop.png rename to src/lib/libraries/decks/steps/imagine-choose-backdrop.LTR.png diff --git a/src/lib/libraries/decks/steps/imagine-choose-backdrop.RTL.png b/src/lib/libraries/decks/steps/imagine-choose-backdrop.RTL.png new file mode 100644 index 00000000000..06064e03efb Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-backdrop.RTL.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.am.png b/src/lib/libraries/decks/steps/imagine-choose-sound.am.png new file mode 100644 index 00000000000..a1ba9afe450 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.ar.png b/src/lib/libraries/decks/steps/imagine-choose-sound.ar.png new file mode 100644 index 00000000000..fc2ae89414a Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.fr.png b/src/lib/libraries/decks/steps/imagine-choose-sound.fr.png new file mode 100644 index 00000000000..a7dfb9919cb Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.ja.png b/src/lib/libraries/decks/steps/imagine-choose-sound.ja.png new file mode 100644 index 00000000000..00e4a68a984 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.pt_BR.png b/src/lib/libraries/decks/steps/imagine-choose-sound.pt_BR.png new file mode 100644 index 00000000000..1c88f3304cc Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.sw.png b/src/lib/libraries/decks/steps/imagine-choose-sound.sw.png new file mode 100644 index 00000000000..e406e5d0ff5 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.tr.png b/src/lib/libraries/decks/steps/imagine-choose-sound.tr.png new file mode 100644 index 00000000000..c8db4920859 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.uk.png b/src/lib/libraries/decks/steps/imagine-choose-sound.uk.png new file mode 100644 index 00000000000..08fd4638549 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.zh_CN.png b/src/lib/libraries/decks/steps/imagine-choose-sound.zh_CN.png new file mode 100644 index 00000000000..f9bdbc70a38 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.zh_TW.png b/src/lib/libraries/decks/steps/imagine-choose-sound.zh_TW.png new file mode 100644 index 00000000000..1bdbe6571af Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-choose-sound.zu.png b/src/lib/libraries/decks/steps/imagine-choose-sound.zu.png new file mode 100644 index 00000000000..dea591531df Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-choose-sound.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.am.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.am.png new file mode 100644 index 00000000000..c3beeda9216 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.ar.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.ar.png new file mode 100644 index 00000000000..4e17812f1a8 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.en.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.en.png old mode 100755 new mode 100644 index 29eb943849a..5d8fd710d2d Binary files a/src/lib/libraries/decks/steps/imagine-click-green-flag.en.png and b/src/lib/libraries/decks/steps/imagine-click-green-flag.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.fr.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.fr.png new file mode 100644 index 00000000000..05914a54b70 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.ja.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.ja.png new file mode 100644 index 00000000000..6d6537a32e6 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.pt_BR.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.pt_BR.png new file mode 100644 index 00000000000..74992714b63 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.sw.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.sw.png new file mode 100644 index 00000000000..af9c86bffa7 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.tr.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.tr.png new file mode 100644 index 00000000000..14c4d215ff8 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.uk.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.uk.png new file mode 100644 index 00000000000..2fbdb2c9f76 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.zh_CN.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.zh_CN.png new file mode 100644 index 00000000000..4b875f19998 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.zh_TW.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.zh_TW.png new file mode 100644 index 00000000000..6d71694a68e Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-click-green-flag.zu.png b/src/lib/libraries/decks/steps/imagine-click-green-flag.zu.png new file mode 100644 index 00000000000..1af58296f30 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-click-green-flag.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.am.png b/src/lib/libraries/decks/steps/imagine-fly-around.am.png new file mode 100644 index 00000000000..3797ea0faa4 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.ar.png b/src/lib/libraries/decks/steps/imagine-fly-around.ar.png new file mode 100644 index 00000000000..03a7bb89270 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.en.png b/src/lib/libraries/decks/steps/imagine-fly-around.en.png old mode 100755 new mode 100644 index 5293694ed4d..99677db16ea Binary files a/src/lib/libraries/decks/steps/imagine-fly-around.en.png and b/src/lib/libraries/decks/steps/imagine-fly-around.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.fr.png b/src/lib/libraries/decks/steps/imagine-fly-around.fr.png new file mode 100644 index 00000000000..274dfe2cbc3 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.ja.png b/src/lib/libraries/decks/steps/imagine-fly-around.ja.png new file mode 100644 index 00000000000..9c44e1c6e63 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.pt_BR.png b/src/lib/libraries/decks/steps/imagine-fly-around.pt_BR.png new file mode 100644 index 00000000000..2b08c602f83 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.sw.png b/src/lib/libraries/decks/steps/imagine-fly-around.sw.png new file mode 100644 index 00000000000..88b7edc7711 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.tr.png b/src/lib/libraries/decks/steps/imagine-fly-around.tr.png new file mode 100644 index 00000000000..0d5a573f23e Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.uk.png b/src/lib/libraries/decks/steps/imagine-fly-around.uk.png new file mode 100644 index 00000000000..e2edb00147e Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.zh_CN.png b/src/lib/libraries/decks/steps/imagine-fly-around.zh_CN.png new file mode 100644 index 00000000000..47cd7198e54 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.zh_TW.png b/src/lib/libraries/decks/steps/imagine-fly-around.zh_TW.png new file mode 100644 index 00000000000..e6aca80de3b Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-fly-around.zu.png b/src/lib/libraries/decks/steps/imagine-fly-around.zu.png new file mode 100644 index 00000000000..bc1dc0a7786 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-fly-around.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.am.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.am.png new file mode 100644 index 00000000000..2990a0468de Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.ar.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.ar.png new file mode 100644 index 00000000000..eb354e16d6b Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.en.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.en.png old mode 100755 new mode 100644 index 44b91a0dbef..4a0cda8c425 Binary files a/src/lib/libraries/decks/steps/imagine-glide-to-point.en.png and b/src/lib/libraries/decks/steps/imagine-glide-to-point.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.fr.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.fr.png new file mode 100644 index 00000000000..a7e68777b5b Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.ja.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.ja.png new file mode 100644 index 00000000000..6228292d8e5 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.pt_BR.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.pt_BR.png new file mode 100644 index 00000000000..18c386cab72 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.sw.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.sw.png new file mode 100644 index 00000000000..375fa2c2ded Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.tr.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.tr.png new file mode 100644 index 00000000000..5f791807c4a Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.uk.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.uk.png new file mode 100644 index 00000000000..a64e3f199de Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.zh_CN.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.zh_CN.png new file mode 100644 index 00000000000..87c7fd83cb1 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.zh_TW.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.zh_TW.png new file mode 100644 index 00000000000..5697bf933f6 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide-to-point.zu.png b/src/lib/libraries/decks/steps/imagine-glide-to-point.zu.png new file mode 100644 index 00000000000..66ca28ce45f Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-glide-to-point.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-glide.es.png b/src/lib/libraries/decks/steps/imagine-glide.es.png deleted file mode 100755 index 04717050dc7..00000000000 Binary files a/src/lib/libraries/decks/steps/imagine-glide.es.png and /dev/null differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.am.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.am.png new file mode 100644 index 00000000000..9475087e8d8 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.ar.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.ar.png new file mode 100644 index 00000000000..65c8dc9bc68 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.en.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.en.png old mode 100755 new mode 100644 index 8eb13e4eebc..407569eaba3 Binary files a/src/lib/libraries/decks/steps/imagine-grow-shrink.en.png and b/src/lib/libraries/decks/steps/imagine-grow-shrink.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.fr.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.fr.png new file mode 100644 index 00000000000..77bb89f1cdb Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.ja.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.ja.png new file mode 100644 index 00000000000..6f68997bfec Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.pt_BR.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.pt_BR.png new file mode 100644 index 00000000000..5f393189ab0 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.sw.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.sw.png new file mode 100644 index 00000000000..35b0cdd1c5a Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.tr.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.tr.png new file mode 100644 index 00000000000..724a7620954 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.uk.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.uk.png new file mode 100644 index 00000000000..25fcdb565a3 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.zh_CN.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.zh_CN.png new file mode 100644 index 00000000000..5b4f250b3c1 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.zh_TW.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.zh_TW.png new file mode 100644 index 00000000000..4845c287a02 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-grow-shrink.zu.png b/src/lib/libraries/decks/steps/imagine-grow-shrink.zu.png new file mode 100644 index 00000000000..2e255ee48ca Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-grow-shrink.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.am.png b/src/lib/libraries/decks/steps/imagine-left-right.am.png new file mode 100644 index 00000000000..3da089d0bab Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.ar.png b/src/lib/libraries/decks/steps/imagine-left-right.ar.png new file mode 100644 index 00000000000..7940b747c5d Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.en.png b/src/lib/libraries/decks/steps/imagine-left-right.en.png old mode 100755 new mode 100644 index 6f5794d3e09..4346ea37865 Binary files a/src/lib/libraries/decks/steps/imagine-left-right.en.png and b/src/lib/libraries/decks/steps/imagine-left-right.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.fr.png b/src/lib/libraries/decks/steps/imagine-left-right.fr.png new file mode 100644 index 00000000000..28c5e951486 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.ja.png b/src/lib/libraries/decks/steps/imagine-left-right.ja.png new file mode 100644 index 00000000000..90d20952ade Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.pt_BR.png b/src/lib/libraries/decks/steps/imagine-left-right.pt_BR.png new file mode 100644 index 00000000000..1aead5afce5 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.sw.png b/src/lib/libraries/decks/steps/imagine-left-right.sw.png new file mode 100644 index 00000000000..9ff1538b8d5 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.tr.png b/src/lib/libraries/decks/steps/imagine-left-right.tr.png new file mode 100644 index 00000000000..948e6662727 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.uk.png b/src/lib/libraries/decks/steps/imagine-left-right.uk.png new file mode 100644 index 00000000000..dc36b47d255 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.zh_CN.png b/src/lib/libraries/decks/steps/imagine-left-right.zh_CN.png new file mode 100644 index 00000000000..0161bacc3ed Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.zh_TW.png b/src/lib/libraries/decks/steps/imagine-left-right.zh_TW.png new file mode 100644 index 00000000000..44df025ab02 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-left-right.zu.png b/src/lib/libraries/decks/steps/imagine-left-right.zu.png new file mode 100644 index 00000000000..66db48a28bc Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-left-right.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.am.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.am.gif new file mode 100644 index 00000000000..b208007e9b9 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.am.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.ar.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.ar.gif new file mode 100644 index 00000000000..05f988b042f Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.ar.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.en.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.en.gif index 2d219d6544c..07971b2b131 100644 Binary files a/src/lib/libraries/decks/steps/imagine-record-a-sound.en.gif and b/src/lib/libraries/decks/steps/imagine-record-a-sound.en.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.fr.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.fr.gif new file mode 100644 index 00000000000..ed8b29be373 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.fr.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.ja.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.ja.gif new file mode 100644 index 00000000000..249422bfedf Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.ja.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.pt_BR.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.pt_BR.gif new file mode 100644 index 00000000000..5cd5d427fcf Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.sw.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.sw.gif new file mode 100644 index 00000000000..48380cfe8db Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.sw.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.tr.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.tr.gif new file mode 100644 index 00000000000..07f3f7a2671 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.tr.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.uk.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.uk.gif new file mode 100644 index 00000000000..0806e9686bd Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.uk.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.zh_CN.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.zh_CN.gif new file mode 100644 index 00000000000..c034f7108d6 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.zh_TW.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.zh_TW.gif new file mode 100644 index 00000000000..e63ee811b9e Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-record-a-sound.zu.gif b/src/lib/libraries/decks/steps/imagine-record-a-sound.zu.gif new file mode 100644 index 00000000000..316d92c58a3 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-record-a-sound.zu.gif differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.am.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.am.png new file mode 100644 index 00000000000..af8018248c0 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.ar.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.ar.png new file mode 100644 index 00000000000..4026b7c6f15 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.en.gif b/src/lib/libraries/decks/steps/imagine-switch-backdrops.en.gif deleted file mode 100644 index 0171639b554..00000000000 Binary files a/src/lib/libraries/decks/steps/imagine-switch-backdrops.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.en.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.en.png new file mode 100644 index 00000000000..8dad0dffd39 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.es.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.es.png old mode 100755 new mode 100644 index 4374b0e7426..9773cdb6d5f Binary files a/src/lib/libraries/decks/steps/imagine-switch-backdrops.es.png and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.es.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.fr.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.fr.png new file mode 100644 index 00000000000..779f122f80d Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.ja.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.ja.png new file mode 100644 index 00000000000..f6de29d6ac3 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.pt_BR.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.pt_BR.png new file mode 100644 index 00000000000..73a7d1689b1 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.sw.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.sw.png new file mode 100644 index 00000000000..5751d7a5883 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.tr.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.tr.png new file mode 100644 index 00000000000..1337e33e719 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.uk.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.uk.png new file mode 100644 index 00000000000..1113bfaaeae Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.zh_CN.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.zh_CN.png new file mode 100644 index 00000000000..983f80fc092 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.zh_TW.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.zh_TW.png new file mode 100644 index 00000000000..1e15e02f44e Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-switch-backdrops.zu.png b/src/lib/libraries/decks/steps/imagine-switch-backdrops.zu.png new file mode 100644 index 00000000000..4a6c03536e7 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-switch-backdrops.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.am.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.am.png new file mode 100644 index 00000000000..8f707de51d0 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.ar.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.ar.png new file mode 100644 index 00000000000..f680953eed1 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.en.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.en.png old mode 100755 new mode 100644 index 4194644e096..2a43ba3b559 Binary files a/src/lib/libraries/decks/steps/imagine-type-what-you-want.en.png and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.fr.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.fr.png new file mode 100644 index 00000000000..f0f8fe710e4 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.ja.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.ja.png new file mode 100644 index 00000000000..429849ff4b9 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.pt_BR.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.pt_BR.png new file mode 100644 index 00000000000..ccb1872e86e Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.sw.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.sw.png new file mode 100644 index 00000000000..5dc919186c9 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.tr.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.tr.png new file mode 100644 index 00000000000..94930a79829 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.uk.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.uk.png new file mode 100644 index 00000000000..2ca9c61808d Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.zh_CN.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.zh_CN.png new file mode 100644 index 00000000000..d98eae8b14e Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.zh_TW.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.zh_TW.png new file mode 100644 index 00000000000..b46c7e15e92 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-type-what-you-want.zu.png b/src/lib/libraries/decks/steps/imagine-type-what-you-want.zu.png new file mode 100644 index 00000000000..656b44bc45a Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-type-what-you-want.zu.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.am.png b/src/lib/libraries/decks/steps/imagine-up-down.am.png new file mode 100644 index 00000000000..6da8177ea78 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.am.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.ar.png b/src/lib/libraries/decks/steps/imagine-up-down.ar.png new file mode 100644 index 00000000000..cfe30dc4325 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.ar.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.en.png b/src/lib/libraries/decks/steps/imagine-up-down.en.png index 950a8c4cc3c..6b4b18840cb 100644 Binary files a/src/lib/libraries/decks/steps/imagine-up-down.en.png and b/src/lib/libraries/decks/steps/imagine-up-down.en.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.fr.png b/src/lib/libraries/decks/steps/imagine-up-down.fr.png new file mode 100644 index 00000000000..27033976896 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.fr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.ja.png b/src/lib/libraries/decks/steps/imagine-up-down.ja.png new file mode 100644 index 00000000000..0da70715ff5 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.ja.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.pt_BR.png b/src/lib/libraries/decks/steps/imagine-up-down.pt_BR.png new file mode 100644 index 00000000000..a014d519355 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.sw.png b/src/lib/libraries/decks/steps/imagine-up-down.sw.png new file mode 100644 index 00000000000..8126d3f449f Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.sw.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.tr.png b/src/lib/libraries/decks/steps/imagine-up-down.tr.png new file mode 100644 index 00000000000..dbc296fda34 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.tr.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.uk.png b/src/lib/libraries/decks/steps/imagine-up-down.uk.png new file mode 100644 index 00000000000..8a7b069bedd Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.uk.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.zh_CN.png b/src/lib/libraries/decks/steps/imagine-up-down.zh_CN.png new file mode 100644 index 00000000000..1f150316672 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.zh_TW.png b/src/lib/libraries/decks/steps/imagine-up-down.zh_TW.png new file mode 100644 index 00000000000..bea488d96a3 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/imagine-up-down.zu.png b/src/lib/libraries/decks/steps/imagine-up-down.zu.png new file mode 100644 index 00000000000..fd8faf16526 Binary files /dev/null and b/src/lib/libraries/decks/steps/imagine-up-down.zu.png differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.am.gif b/src/lib/libraries/decks/steps/intro-1-move.am.gif new file mode 100644 index 00000000000..2378343a31f Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.am.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.ar.gif b/src/lib/libraries/decks/steps/intro-1-move.ar.gif new file mode 100644 index 00000000000..428273555b4 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.ar.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.en.gif b/src/lib/libraries/decks/steps/intro-1-move.en.gif new file mode 100644 index 00000000000..b9a50d3e557 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.en.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.es.gif b/src/lib/libraries/decks/steps/intro-1-move.es.gif new file mode 100644 index 00000000000..383cf860e73 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.es.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.fr.gif b/src/lib/libraries/decks/steps/intro-1-move.fr.gif new file mode 100644 index 00000000000..4c364a1ce02 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.fr.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.ja.gif b/src/lib/libraries/decks/steps/intro-1-move.ja.gif new file mode 100644 index 00000000000..deb2d285556 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.ja.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.pt_BR.gif b/src/lib/libraries/decks/steps/intro-1-move.pt_BR.gif new file mode 100644 index 00000000000..cc788716e77 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.sw.gif b/src/lib/libraries/decks/steps/intro-1-move.sw.gif new file mode 100644 index 00000000000..4041e33ddd9 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.sw.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.tr.gif b/src/lib/libraries/decks/steps/intro-1-move.tr.gif new file mode 100644 index 00000000000..5b1171505bb Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.tr.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.uk.gif b/src/lib/libraries/decks/steps/intro-1-move.uk.gif new file mode 100644 index 00000000000..b868ba7e784 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.uk.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.zh_CN.gif b/src/lib/libraries/decks/steps/intro-1-move.zh_CN.gif new file mode 100644 index 00000000000..24b96e82361 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.zh_TW.gif b/src/lib/libraries/decks/steps/intro-1-move.zh_TW.gif new file mode 100644 index 00000000000..34e7cafc362 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/intro-1-move.zu.gif b/src/lib/libraries/decks/steps/intro-1-move.zu.gif new file mode 100644 index 00000000000..84094daf351 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-1-move.zu.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.am.gif b/src/lib/libraries/decks/steps/intro-2-say.am.gif new file mode 100644 index 00000000000..97c1424d502 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.am.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.ar.gif b/src/lib/libraries/decks/steps/intro-2-say.ar.gif new file mode 100644 index 00000000000..16ad44d061c Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.ar.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.en.gif b/src/lib/libraries/decks/steps/intro-2-say.en.gif new file mode 100644 index 00000000000..179c4f07f94 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.en.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.es.gif b/src/lib/libraries/decks/steps/intro-2-say.es.gif new file mode 100644 index 00000000000..e05d7de9bf5 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.es.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.fr.gif b/src/lib/libraries/decks/steps/intro-2-say.fr.gif new file mode 100644 index 00000000000..94427ae1abb Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.fr.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.ja.gif b/src/lib/libraries/decks/steps/intro-2-say.ja.gif new file mode 100644 index 00000000000..04e6ee048da Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.ja.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.pt_BR.gif b/src/lib/libraries/decks/steps/intro-2-say.pt_BR.gif new file mode 100644 index 00000000000..9e3af2bf566 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.sw.gif b/src/lib/libraries/decks/steps/intro-2-say.sw.gif new file mode 100644 index 00000000000..325b3de7610 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.sw.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.tr.gif b/src/lib/libraries/decks/steps/intro-2-say.tr.gif new file mode 100644 index 00000000000..9a985f80f20 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.tr.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.uk.gif b/src/lib/libraries/decks/steps/intro-2-say.uk.gif new file mode 100644 index 00000000000..a3fba0e7f03 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.uk.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.zh_CN.gif b/src/lib/libraries/decks/steps/intro-2-say.zh_CN.gif new file mode 100644 index 00000000000..bcba6def807 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.zh_TW.gif b/src/lib/libraries/decks/steps/intro-2-say.zh_TW.gif new file mode 100644 index 00000000000..74682fa45aa Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/intro-2-say.zu.gif b/src/lib/libraries/decks/steps/intro-2-say.zu.gif new file mode 100644 index 00000000000..f624585cf33 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-2-say.zu.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.am.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.am.gif new file mode 100644 index 00000000000..0d416477543 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.am.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.ar.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.ar.gif new file mode 100644 index 00000000000..c63cbd8039d Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.ar.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.en.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.en.gif new file mode 100644 index 00000000000..167e83a1b46 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.en.gif differ diff --git a/src/lib/libraries/decks/steps/intro-say-hello.es.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.es.gif similarity index 100% rename from src/lib/libraries/decks/steps/intro-say-hello.es.gif rename to src/lib/libraries/decks/steps/intro-3-green-flag.es.gif diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.fr.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.fr.gif new file mode 100644 index 00000000000..50838caab49 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.fr.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.ja.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.ja.gif new file mode 100644 index 00000000000..99dc2bae768 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.ja.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.pt_BR.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.pt_BR.gif new file mode 100644 index 00000000000..b8e4d5c750b Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.sw.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.sw.gif new file mode 100644 index 00000000000..8dfe566c129 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.sw.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.tr.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.tr.gif new file mode 100644 index 00000000000..a2aa5669521 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.tr.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.uk.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.uk.gif new file mode 100644 index 00000000000..1b538ce1169 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.uk.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.zh_CN.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.zh_CN.gif new file mode 100644 index 00000000000..99d78cc6a8d Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.zh_TW.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.zh_TW.gif new file mode 100644 index 00000000000..748e4200d24 Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/intro-3-green-flag.zu.gif b/src/lib/libraries/decks/steps/intro-3-green-flag.zu.gif new file mode 100644 index 00000000000..10f66a824da Binary files /dev/null and b/src/lib/libraries/decks/steps/intro-3-green-flag.zu.gif differ diff --git a/src/lib/libraries/decks/steps/intro-move.en.gif b/src/lib/libraries/decks/steps/intro-move.en.gif deleted file mode 100644 index 95d68889ee2..00000000000 Binary files a/src/lib/libraries/decks/steps/intro-move.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/intro-move.es.gif b/src/lib/libraries/decks/steps/intro-move.es.gif deleted file mode 100644 index 37a9c114b0d..00000000000 Binary files a/src/lib/libraries/decks/steps/intro-move.es.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/intro-say-hello.en.gif b/src/lib/libraries/decks/steps/intro-say-hello.en.gif deleted file mode 100644 index 09a149d6149..00000000000 Binary files a/src/lib/libraries/decks/steps/intro-say-hello.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.am.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.am.png new file mode 100644 index 00000000000..39b3ba7c33d Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.am.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.ar.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.ar.png new file mode 100644 index 00000000000..f979553d600 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.ar.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.en.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.en.png old mode 100755 new mode 100644 index 656eab12db1..08077e3968b Binary files a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.en.png and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.en.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.fr.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.fr.png new file mode 100644 index 00000000000..f84a92616ea Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.fr.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.ja.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.ja.png new file mode 100644 index 00000000000..2cf029a022e Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.ja.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.pt_BR.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.pt_BR.png new file mode 100644 index 00000000000..3062467e71b Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.sw.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.sw.png new file mode 100644 index 00000000000..07945b197c9 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.sw.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.tr.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.tr.png new file mode 100644 index 00000000000..61753f64ffc Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.tr.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.uk.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.uk.png new file mode 100644 index 00000000000..a1ac6830e34 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.uk.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zh_CN.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zh_CN.png new file mode 100644 index 00000000000..97cbf633528 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zh_TW.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zh_TW.png new file mode 100644 index 00000000000..accc5ec8065 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zu.png b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zu.png new file mode 100644 index 00000000000..024c8543d7b Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-left-right.zu.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.am.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.am.png new file mode 100644 index 00000000000..1038bfe59b6 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.am.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.ar.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.ar.png new file mode 100644 index 00000000000..24d626e128b Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.ar.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.en.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.en.png old mode 100755 new mode 100644 index c9fab047272..f88561deac1 Binary files a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.en.png and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.en.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.fr.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.fr.png new file mode 100644 index 00000000000..e6dcf19e3ce Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.fr.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.ja.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.ja.png new file mode 100644 index 00000000000..0bbd7942cb1 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.ja.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.pt_BR.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.pt_BR.png new file mode 100644 index 00000000000..4abb4726306 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.sw.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.sw.png new file mode 100644 index 00000000000..c2398b87d0a Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.sw.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.tr.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.tr.png new file mode 100644 index 00000000000..463ae066e72 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.tr.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.uk.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.uk.png new file mode 100644 index 00000000000..e87a7fe371e Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.uk.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zh_CN.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zh_CN.png new file mode 100644 index 00000000000..05e104fed86 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zh_TW.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zh_TW.png new file mode 100644 index 00000000000..60dcf002a79 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zu.png b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zu.png new file mode 100644 index 00000000000..844ef5fe652 Binary files /dev/null and b/src/lib/libraries/decks/steps/move-arrow-keys-up-down.zu.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.am.png b/src/lib/libraries/decks/steps/music-make-beat.am.png new file mode 100644 index 00000000000..01f74d58323 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.am.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.ar.png b/src/lib/libraries/decks/steps/music-make-beat.ar.png new file mode 100644 index 00000000000..5ed969e1190 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.ar.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.en.gif b/src/lib/libraries/decks/steps/music-make-beat.en.gif deleted file mode 100644 index 685a71b0e97..00000000000 Binary files a/src/lib/libraries/decks/steps/music-make-beat.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.en.png b/src/lib/libraries/decks/steps/music-make-beat.en.png new file mode 100644 index 00000000000..7501ff3e198 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.en.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.fr.png b/src/lib/libraries/decks/steps/music-make-beat.fr.png new file mode 100644 index 00000000000..a5980d4391e Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.fr.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.ja.png b/src/lib/libraries/decks/steps/music-make-beat.ja.png new file mode 100644 index 00000000000..c0e6ef00faf Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.ja.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.pt_BR.png b/src/lib/libraries/decks/steps/music-make-beat.pt_BR.png new file mode 100644 index 00000000000..9a290f0ba86 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.sw.png b/src/lib/libraries/decks/steps/music-make-beat.sw.png new file mode 100644 index 00000000000..113947ddbdb Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.sw.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.tr.png b/src/lib/libraries/decks/steps/music-make-beat.tr.png new file mode 100644 index 00000000000..acd94e261d9 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.tr.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.uk.png b/src/lib/libraries/decks/steps/music-make-beat.uk.png new file mode 100644 index 00000000000..120cd081eef Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.uk.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.zh_CN.png b/src/lib/libraries/decks/steps/music-make-beat.zh_CN.png new file mode 100644 index 00000000000..3fb321e60fd Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.zh_TW.png b/src/lib/libraries/decks/steps/music-make-beat.zh_TW.png new file mode 100644 index 00000000000..fdc61157453 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beat.zu.png b/src/lib/libraries/decks/steps/music-make-beat.zu.png new file mode 100644 index 00000000000..df216ebbcd1 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beat.zu.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.am.png b/src/lib/libraries/decks/steps/music-make-beatbox.am.png new file mode 100644 index 00000000000..cbe39f0c484 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.am.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.ar.png b/src/lib/libraries/decks/steps/music-make-beatbox.ar.png new file mode 100644 index 00000000000..43b02e0e905 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.ar.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.en.gif b/src/lib/libraries/decks/steps/music-make-beatbox.en.gif deleted file mode 100644 index c9a127b39d8..00000000000 Binary files a/src/lib/libraries/decks/steps/music-make-beatbox.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.en.png b/src/lib/libraries/decks/steps/music-make-beatbox.en.png new file mode 100644 index 00000000000..29309230848 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.en.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.fr.png b/src/lib/libraries/decks/steps/music-make-beatbox.fr.png new file mode 100644 index 00000000000..942de40dc1f Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.fr.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.ja.png b/src/lib/libraries/decks/steps/music-make-beatbox.ja.png new file mode 100644 index 00000000000..092cc1232cf Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.ja.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.pt_BR.png b/src/lib/libraries/decks/steps/music-make-beatbox.pt_BR.png new file mode 100644 index 00000000000..53f1d0454a7 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.sw.png b/src/lib/libraries/decks/steps/music-make-beatbox.sw.png new file mode 100644 index 00000000000..59422bd37f8 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.sw.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.tr.png b/src/lib/libraries/decks/steps/music-make-beatbox.tr.png new file mode 100644 index 00000000000..3d4bc6f1a5e Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.tr.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.uk.png b/src/lib/libraries/decks/steps/music-make-beatbox.uk.png new file mode 100644 index 00000000000..1895f125256 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.uk.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.zh_CN.png b/src/lib/libraries/decks/steps/music-make-beatbox.zh_CN.png new file mode 100644 index 00000000000..7486cc7efb4 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.zh_TW.png b/src/lib/libraries/decks/steps/music-make-beatbox.zh_TW.png new file mode 100644 index 00000000000..0601dbb1d3a Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/music-make-beatbox.zu.png b/src/lib/libraries/decks/steps/music-make-beatbox.zu.png new file mode 100644 index 00000000000..f4542cb0a62 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-beatbox.zu.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.am.png b/src/lib/libraries/decks/steps/music-make-song.am.png new file mode 100644 index 00000000000..a54d0b9b52f Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.am.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.ar.png b/src/lib/libraries/decks/steps/music-make-song.ar.png new file mode 100644 index 00000000000..ecce99b5ea8 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.ar.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.en.gif b/src/lib/libraries/decks/steps/music-make-song.en.gif deleted file mode 100644 index 65ae5f3efc6..00000000000 Binary files a/src/lib/libraries/decks/steps/music-make-song.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/music-make-song.en.png b/src/lib/libraries/decks/steps/music-make-song.en.png new file mode 100644 index 00000000000..fa48bd8378d Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.en.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.fr.png b/src/lib/libraries/decks/steps/music-make-song.fr.png new file mode 100644 index 00000000000..21b74175802 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.fr.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.ja.png b/src/lib/libraries/decks/steps/music-make-song.ja.png new file mode 100644 index 00000000000..66d5b1019fe Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.ja.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.pt_BR.png b/src/lib/libraries/decks/steps/music-make-song.pt_BR.png new file mode 100644 index 00000000000..5de246ade02 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.sw.png b/src/lib/libraries/decks/steps/music-make-song.sw.png new file mode 100644 index 00000000000..c4f9f53c660 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.sw.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.tr.png b/src/lib/libraries/decks/steps/music-make-song.tr.png new file mode 100644 index 00000000000..7a59b1f6786 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.tr.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.uk.png b/src/lib/libraries/decks/steps/music-make-song.uk.png new file mode 100644 index 00000000000..c7c95267c8e Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.uk.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.zh_CN.png b/src/lib/libraries/decks/steps/music-make-song.zh_CN.png new file mode 100644 index 00000000000..a71e15ed208 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.zh_TW.png b/src/lib/libraries/decks/steps/music-make-song.zh_TW.png new file mode 100644 index 00000000000..330bf0b5c71 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/music-make-song.zu.png b/src/lib/libraries/decks/steps/music-make-song.zu.png new file mode 100644 index 00000000000..ead37793871 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-make-song.zu.png differ diff --git a/src/lib/libraries/decks/steps/music-pick-instrument.gif b/src/lib/libraries/decks/steps/music-pick-instrument.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/music-pick-instrument.gif rename to src/lib/libraries/decks/steps/music-pick-instrument.LTR.gif diff --git a/src/lib/libraries/decks/steps/music-pick-instrument.RTL.gif b/src/lib/libraries/decks/steps/music-pick-instrument.RTL.gif new file mode 100644 index 00000000000..c2860d38854 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-pick-instrument.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/music-pick-instrument.en.gif b/src/lib/libraries/decks/steps/music-pick-instrument.en.gif deleted file mode 100644 index 5da1825269a..00000000000 Binary files a/src/lib/libraries/decks/steps/music-pick-instrument.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.am.png b/src/lib/libraries/decks/steps/music-play-sound.am.png new file mode 100644 index 00000000000..3d18d12b5ac Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.am.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.ar.png b/src/lib/libraries/decks/steps/music-play-sound.ar.png new file mode 100644 index 00000000000..f17a2e9dbbb Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.ar.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.en.gif b/src/lib/libraries/decks/steps/music-play-sound.en.gif deleted file mode 100644 index 3a8805c9410..00000000000 Binary files a/src/lib/libraries/decks/steps/music-play-sound.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.en.png b/src/lib/libraries/decks/steps/music-play-sound.en.png new file mode 100644 index 00000000000..d019dec9589 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.en.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.fr.png b/src/lib/libraries/decks/steps/music-play-sound.fr.png new file mode 100644 index 00000000000..cd98e67a861 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.fr.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.ja.png b/src/lib/libraries/decks/steps/music-play-sound.ja.png new file mode 100644 index 00000000000..c618d9fadd2 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.ja.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.pt_BR.png b/src/lib/libraries/decks/steps/music-play-sound.pt_BR.png new file mode 100644 index 00000000000..cd28b9f7ae7 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.sw.png b/src/lib/libraries/decks/steps/music-play-sound.sw.png new file mode 100644 index 00000000000..db3ce016455 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.sw.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.tr.png b/src/lib/libraries/decks/steps/music-play-sound.tr.png new file mode 100644 index 00000000000..8d83a737004 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.tr.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.uk.png b/src/lib/libraries/decks/steps/music-play-sound.uk.png new file mode 100644 index 00000000000..6c17014d833 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.uk.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.zh_CN.png b/src/lib/libraries/decks/steps/music-play-sound.zh_CN.png new file mode 100644 index 00000000000..a7a68b67a30 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.zh_TW.png b/src/lib/libraries/decks/steps/music-play-sound.zh_TW.png new file mode 100644 index 00000000000..1de47cf1c99 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/music-play-sound.zu.png b/src/lib/libraries/decks/steps/music-play-sound.zu.png new file mode 100644 index 00000000000..63887a79148 Binary files /dev/null and b/src/lib/libraries/decks/steps/music-play-sound.zu.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.am.png b/src/lib/libraries/decks/steps/name-change-color.am.png new file mode 100644 index 00000000000..283e084ad3a Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.am.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.ar.png b/src/lib/libraries/decks/steps/name-change-color.ar.png new file mode 100644 index 00000000000..cbbeef0e124 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.ar.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.en.gif b/src/lib/libraries/decks/steps/name-change-color.en.gif deleted file mode 100644 index 59c89e901af..00000000000 Binary files a/src/lib/libraries/decks/steps/name-change-color.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/name-change-color.en.png b/src/lib/libraries/decks/steps/name-change-color.en.png new file mode 100644 index 00000000000..0d502c785d6 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.en.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.fr.png b/src/lib/libraries/decks/steps/name-change-color.fr.png new file mode 100644 index 00000000000..026ecec70b6 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.fr.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.ja.png b/src/lib/libraries/decks/steps/name-change-color.ja.png new file mode 100644 index 00000000000..e9c98e1cd2e Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.ja.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.pt_BR.png b/src/lib/libraries/decks/steps/name-change-color.pt_BR.png new file mode 100644 index 00000000000..24d968e1c41 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.sw.png b/src/lib/libraries/decks/steps/name-change-color.sw.png new file mode 100644 index 00000000000..3239fb62de4 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.sw.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.tr.png b/src/lib/libraries/decks/steps/name-change-color.tr.png new file mode 100644 index 00000000000..c9bdcc79d02 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.tr.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.uk.png b/src/lib/libraries/decks/steps/name-change-color.uk.png new file mode 100644 index 00000000000..fc724a8040c Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.uk.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.zh_CN.png b/src/lib/libraries/decks/steps/name-change-color.zh_CN.png new file mode 100644 index 00000000000..3314ef7369d Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.zh_TW.png b/src/lib/libraries/decks/steps/name-change-color.zh_TW.png new file mode 100644 index 00000000000..02bb36c2fff Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/name-change-color.zu.png b/src/lib/libraries/decks/steps/name-change-color.zu.png new file mode 100644 index 00000000000..458f40ef44d Binary files /dev/null and b/src/lib/libraries/decks/steps/name-change-color.zu.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.am.png b/src/lib/libraries/decks/steps/name-grow.am.png new file mode 100644 index 00000000000..d306ae3e528 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.am.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.ar.png b/src/lib/libraries/decks/steps/name-grow.ar.png new file mode 100644 index 00000000000..15f0e74fcfa Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.ar.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.en.gif b/src/lib/libraries/decks/steps/name-grow.en.gif deleted file mode 100644 index d1a4e3da70d..00000000000 Binary files a/src/lib/libraries/decks/steps/name-grow.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/name-grow.en.png b/src/lib/libraries/decks/steps/name-grow.en.png new file mode 100644 index 00000000000..04f975dba07 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.en.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.fr.png b/src/lib/libraries/decks/steps/name-grow.fr.png new file mode 100644 index 00000000000..2b2f4f5cbd2 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.fr.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.ja.png b/src/lib/libraries/decks/steps/name-grow.ja.png new file mode 100644 index 00000000000..3c471dba9d3 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.ja.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.pt_BR.png b/src/lib/libraries/decks/steps/name-grow.pt_BR.png new file mode 100644 index 00000000000..bc6956dee6c Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.sw.png b/src/lib/libraries/decks/steps/name-grow.sw.png new file mode 100644 index 00000000000..6abe1de3f62 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.sw.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.tr.png b/src/lib/libraries/decks/steps/name-grow.tr.png new file mode 100644 index 00000000000..c7465c0e0ea Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.tr.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.uk.png b/src/lib/libraries/decks/steps/name-grow.uk.png new file mode 100644 index 00000000000..c533e7bb771 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.uk.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.zh_CN.png b/src/lib/libraries/decks/steps/name-grow.zh_CN.png new file mode 100644 index 00000000000..fb351b1f45c Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.zh_TW.png b/src/lib/libraries/decks/steps/name-grow.zh_TW.png new file mode 100644 index 00000000000..7275dfec0e9 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/name-grow.zu.png b/src/lib/libraries/decks/steps/name-grow.zu.png new file mode 100644 index 00000000000..798d5bf6dd8 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-grow.zu.png differ diff --git a/src/lib/libraries/decks/steps/name-pick-letter.gif b/src/lib/libraries/decks/steps/name-pick-letter.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/name-pick-letter.gif rename to src/lib/libraries/decks/steps/name-pick-letter.LTR.gif diff --git a/src/lib/libraries/decks/steps/name-pick-letter.RTL.gif b/src/lib/libraries/decks/steps/name-pick-letter.RTL.gif new file mode 100644 index 00000000000..58623c7b956 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-pick-letter.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/name-pick-letter.en.gif b/src/lib/libraries/decks/steps/name-pick-letter.en.gif deleted file mode 100644 index 72d49c5fadf..00000000000 Binary files a/src/lib/libraries/decks/steps/name-pick-letter.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/name-pick-letter2.gif b/src/lib/libraries/decks/steps/name-pick-letter2.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/name-pick-letter2.gif rename to src/lib/libraries/decks/steps/name-pick-letter2.LTR.gif diff --git a/src/lib/libraries/decks/steps/name-pick-letter2.RTL.gif b/src/lib/libraries/decks/steps/name-pick-letter2.RTL.gif new file mode 100644 index 00000000000..3b1ad087bb2 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-pick-letter2.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/name-pick-letter2.en.gif b/src/lib/libraries/decks/steps/name-pick-letter2.en.gif deleted file mode 100644 index 3c74fec7cda..00000000000 Binary files a/src/lib/libraries/decks/steps/name-pick-letter2.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.am.png b/src/lib/libraries/decks/steps/name-play-sound.am.png new file mode 100644 index 00000000000..f21b666a7a6 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.am.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.ar.png b/src/lib/libraries/decks/steps/name-play-sound.ar.png new file mode 100644 index 00000000000..729cc244d50 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.ar.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.en.gif b/src/lib/libraries/decks/steps/name-play-sound.en.gif deleted file mode 100644 index 917b7215f74..00000000000 Binary files a/src/lib/libraries/decks/steps/name-play-sound.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.en.png b/src/lib/libraries/decks/steps/name-play-sound.en.png new file mode 100644 index 00000000000..d0ab94db922 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.en.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.fr.png b/src/lib/libraries/decks/steps/name-play-sound.fr.png new file mode 100644 index 00000000000..217c58958d4 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.fr.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.ja.png b/src/lib/libraries/decks/steps/name-play-sound.ja.png new file mode 100644 index 00000000000..705cceee633 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.ja.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.pt_BR.png b/src/lib/libraries/decks/steps/name-play-sound.pt_BR.png new file mode 100644 index 00000000000..359f0fde1df Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.sw.png b/src/lib/libraries/decks/steps/name-play-sound.sw.png new file mode 100644 index 00000000000..bfe58cd4555 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.sw.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.tr.png b/src/lib/libraries/decks/steps/name-play-sound.tr.png new file mode 100644 index 00000000000..8f00ea77909 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.tr.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.uk.png b/src/lib/libraries/decks/steps/name-play-sound.uk.png new file mode 100644 index 00000000000..27b0990b341 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.uk.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.zh_CN.png b/src/lib/libraries/decks/steps/name-play-sound.zh_CN.png new file mode 100644 index 00000000000..474f6cc6647 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.zh_TW.png b/src/lib/libraries/decks/steps/name-play-sound.zh_TW.png new file mode 100644 index 00000000000..e0b0f367f93 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/name-play-sound.zu.png b/src/lib/libraries/decks/steps/name-play-sound.zu.png new file mode 100644 index 00000000000..58a36f75e67 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-play-sound.zu.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.am.png b/src/lib/libraries/decks/steps/name-spin.am.png new file mode 100644 index 00000000000..036154dbad7 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.am.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.ar.png b/src/lib/libraries/decks/steps/name-spin.ar.png new file mode 100644 index 00000000000..99d018d9622 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.ar.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.en.gif b/src/lib/libraries/decks/steps/name-spin.en.gif deleted file mode 100644 index fc783e043a3..00000000000 Binary files a/src/lib/libraries/decks/steps/name-spin.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/name-spin.en.png b/src/lib/libraries/decks/steps/name-spin.en.png new file mode 100644 index 00000000000..16c070a3205 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.en.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.fr.png b/src/lib/libraries/decks/steps/name-spin.fr.png new file mode 100644 index 00000000000..3c12e0d397b Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.fr.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.ja.png b/src/lib/libraries/decks/steps/name-spin.ja.png new file mode 100644 index 00000000000..8bf9e7146c6 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.ja.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.pt_BR.png b/src/lib/libraries/decks/steps/name-spin.pt_BR.png new file mode 100644 index 00000000000..4ed332e33d0 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.sw.png b/src/lib/libraries/decks/steps/name-spin.sw.png new file mode 100644 index 00000000000..d1d6607b93a Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.sw.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.tr.png b/src/lib/libraries/decks/steps/name-spin.tr.png new file mode 100644 index 00000000000..41584a72840 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.tr.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.uk.png b/src/lib/libraries/decks/steps/name-spin.uk.png new file mode 100644 index 00000000000..fb283b7e5b7 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.uk.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.zh_CN.png b/src/lib/libraries/decks/steps/name-spin.zh_CN.png new file mode 100644 index 00000000000..db7fab11f3b Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.zh_TW.png b/src/lib/libraries/decks/steps/name-spin.zh_TW.png new file mode 100644 index 00000000000..e66e5d02dab Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/name-spin.zu.png b/src/lib/libraries/decks/steps/name-spin.zu.png new file mode 100644 index 00000000000..8accccc9f93 Binary files /dev/null and b/src/lib/libraries/decks/steps/name-spin.zu.png differ diff --git a/src/lib/libraries/decks/steps/animate-char-pick-backdrop.gif b/src/lib/libraries/decks/steps/pick-backdrop.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/animate-char-pick-backdrop.gif rename to src/lib/libraries/decks/steps/pick-backdrop.LTR.gif diff --git a/src/lib/libraries/decks/steps/pong-add-a-paddle.gif b/src/lib/libraries/decks/steps/pong-add-a-paddle.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/pong-add-a-paddle.gif rename to src/lib/libraries/decks/steps/pong-add-a-paddle.LTR.gif diff --git a/src/lib/libraries/decks/steps/pong-add-a-paddle.RTL.gif b/src/lib/libraries/decks/steps/pong-add-a-paddle.RTL.gif new file mode 100644 index 00000000000..0c24bc1271d Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-a-paddle.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/pong-add-a-paddle.en.gif b/src/lib/libraries/decks/steps/pong-add-a-paddle.en.gif deleted file mode 100755 index ec1f90ebe9f..00000000000 Binary files a/src/lib/libraries/decks/steps/pong-add-a-paddle.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pong-add-backdrop.png b/src/lib/libraries/decks/steps/pong-add-backdrop.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/pong-add-backdrop.png rename to src/lib/libraries/decks/steps/pong-add-backdrop.LTR.png diff --git a/src/lib/libraries/decks/steps/pong-add-backdrop.RTL.png b/src/lib/libraries/decks/steps/pong-add-backdrop.RTL.png new file mode 100644 index 00000000000..c95e31f1d26 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-backdrop.RTL.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-backdrop.en.png b/src/lib/libraries/decks/steps/pong-add-backdrop.en.png deleted file mode 100755 index 8698dd38bf2..00000000000 Binary files a/src/lib/libraries/decks/steps/pong-add-backdrop.en.png and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pong-add-ball-sprite.png b/src/lib/libraries/decks/steps/pong-add-ball-sprite.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/pong-add-ball-sprite.png rename to src/lib/libraries/decks/steps/pong-add-ball-sprite.LTR.png diff --git a/src/lib/libraries/decks/steps/pong-add-ball-sprite.RTL.png b/src/lib/libraries/decks/steps/pong-add-ball-sprite.RTL.png new file mode 100644 index 00000000000..248afbc90f4 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-ball-sprite.RTL.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.am.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.am.png new file mode 100644 index 00000000000..e5faf4655f9 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.am.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.ar.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.ar.png new file mode 100644 index 00000000000..6c0d1e04163 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.ar.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.en.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.en.png old mode 100755 new mode 100644 index 9001af6a736..afa4267060c Binary files a/src/lib/libraries/decks/steps/pong-add-code-to-ball.en.png and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.en.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.fr.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.fr.png new file mode 100644 index 00000000000..b90b861c42c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.fr.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.ja.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.ja.png new file mode 100644 index 00000000000..b4d1b400e04 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.ja.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.pt_BR.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.pt_BR.png new file mode 100644 index 00000000000..bb143a7a292 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.sw.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.sw.png new file mode 100644 index 00000000000..1b3619b4f19 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.sw.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.tr.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.tr.png new file mode 100644 index 00000000000..e41927cfc27 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.tr.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.uk.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.uk.png new file mode 100644 index 00000000000..64371af8f25 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.uk.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.zh_CN.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.zh_CN.png new file mode 100644 index 00000000000..e472bdaf208 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.zh_TW.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.zh_TW.png new file mode 100644 index 00000000000..688b0de78e7 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-code-to-ball.zu.png b/src/lib/libraries/decks/steps/pong-add-code-to-ball.zu.png new file mode 100644 index 00000000000..f94d5edee7d Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-code-to-ball.zu.png differ diff --git a/src/lib/libraries/decks/steps/pong-add-line.LTR.gif b/src/lib/libraries/decks/steps/pong-add-line.LTR.gif new file mode 100644 index 00000000000..db477d3a390 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-line.LTR.gif differ diff --git a/src/lib/libraries/decks/steps/pong-add-line.RTL.gif b/src/lib/libraries/decks/steps/pong-add-line.RTL.gif new file mode 100644 index 00000000000..4dbc2ea3146 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-add-line.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/pong-add-line.en.gif b/src/lib/libraries/decks/steps/pong-add-line.en.gif deleted file mode 100644 index dbe073be98b..00000000000 Binary files a/src/lib/libraries/decks/steps/pong-add-line.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pong-add-line.gif b/src/lib/libraries/decks/steps/pong-add-line.gif deleted file mode 100644 index 7e6841d89e0..00000000000 Binary files a/src/lib/libraries/decks/steps/pong-add-line.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.am.png b/src/lib/libraries/decks/steps/pong-bounce-around.am.png new file mode 100644 index 00000000000..b99a406e11c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.am.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.ar.png b/src/lib/libraries/decks/steps/pong-bounce-around.ar.png new file mode 100644 index 00000000000..a4126966bd8 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.ar.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.en.gif b/src/lib/libraries/decks/steps/pong-bounce-around.en.gif deleted file mode 100755 index 61ad989f5b5..00000000000 Binary files a/src/lib/libraries/decks/steps/pong-bounce-around.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.en.png b/src/lib/libraries/decks/steps/pong-bounce-around.en.png new file mode 100644 index 00000000000..89cb9af97cc Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.en.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.fr.png b/src/lib/libraries/decks/steps/pong-bounce-around.fr.png new file mode 100644 index 00000000000..b6d69383bcd Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.fr.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.ja.png b/src/lib/libraries/decks/steps/pong-bounce-around.ja.png new file mode 100644 index 00000000000..76c22c25d8f Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.ja.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.pt_BR.png b/src/lib/libraries/decks/steps/pong-bounce-around.pt_BR.png new file mode 100644 index 00000000000..6afa8dc738b Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.sw.png b/src/lib/libraries/decks/steps/pong-bounce-around.sw.png new file mode 100644 index 00000000000..005b13aee6c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.sw.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.tr.png b/src/lib/libraries/decks/steps/pong-bounce-around.tr.png new file mode 100644 index 00000000000..4a336b4ef54 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.tr.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.uk.png b/src/lib/libraries/decks/steps/pong-bounce-around.uk.png new file mode 100644 index 00000000000..6efec6629ef Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.uk.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.zh_CN.png b/src/lib/libraries/decks/steps/pong-bounce-around.zh_CN.png new file mode 100644 index 00000000000..582300e6a17 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.zh_TW.png b/src/lib/libraries/decks/steps/pong-bounce-around.zh_TW.png new file mode 100644 index 00000000000..980501a6acc Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pong-bounce-around.zu.png b/src/lib/libraries/decks/steps/pong-bounce-around.zu.png new file mode 100644 index 00000000000..8c9bb024313 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-bounce-around.zu.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.am.png b/src/lib/libraries/decks/steps/pong-choose-score.am.png new file mode 100644 index 00000000000..3b4b4e6970b Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.am.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.ar.png b/src/lib/libraries/decks/steps/pong-choose-score.ar.png new file mode 100644 index 00000000000..ab6f4163212 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.ar.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.en.png b/src/lib/libraries/decks/steps/pong-choose-score.en.png old mode 100755 new mode 100644 index cb02a6343b5..cedfd16fcde Binary files a/src/lib/libraries/decks/steps/pong-choose-score.en.png and b/src/lib/libraries/decks/steps/pong-choose-score.en.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.fr.png b/src/lib/libraries/decks/steps/pong-choose-score.fr.png new file mode 100644 index 00000000000..9298ca60260 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.fr.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.ja.png b/src/lib/libraries/decks/steps/pong-choose-score.ja.png new file mode 100644 index 00000000000..400c02361c3 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.ja.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.pt_BR.png b/src/lib/libraries/decks/steps/pong-choose-score.pt_BR.png new file mode 100644 index 00000000000..c86a67906cc Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.sw.png b/src/lib/libraries/decks/steps/pong-choose-score.sw.png new file mode 100644 index 00000000000..2c34918d6f5 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.sw.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.tr.png b/src/lib/libraries/decks/steps/pong-choose-score.tr.png new file mode 100644 index 00000000000..f0232c30e1e Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.tr.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.uk.png b/src/lib/libraries/decks/steps/pong-choose-score.uk.png new file mode 100644 index 00000000000..cb3c1f06517 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.uk.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.zh_CN.png b/src/lib/libraries/decks/steps/pong-choose-score.zh_CN.png new file mode 100644 index 00000000000..feb643bc228 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.zh_TW.png b/src/lib/libraries/decks/steps/pong-choose-score.zh_TW.png new file mode 100644 index 00000000000..7e4812b267a Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pong-choose-score.zu.png b/src/lib/libraries/decks/steps/pong-choose-score.zu.png new file mode 100644 index 00000000000..5589f052e1e Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-choose-score.zu.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.am.png b/src/lib/libraries/decks/steps/pong-game-over.am.png new file mode 100644 index 00000000000..e9b196fee38 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.am.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.ar.png b/src/lib/libraries/decks/steps/pong-game-over.ar.png new file mode 100644 index 00000000000..8a24d4c2697 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.ar.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.en.png b/src/lib/libraries/decks/steps/pong-game-over.en.png old mode 100755 new mode 100644 diff --git a/src/lib/libraries/decks/steps/pong-game-over.fr.png b/src/lib/libraries/decks/steps/pong-game-over.fr.png new file mode 100644 index 00000000000..f80ec23e123 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.fr.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.ja.png b/src/lib/libraries/decks/steps/pong-game-over.ja.png new file mode 100644 index 00000000000..d6e0b27287d Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.ja.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.pt_BR.png b/src/lib/libraries/decks/steps/pong-game-over.pt_BR.png new file mode 100644 index 00000000000..35a93494095 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.sw.png b/src/lib/libraries/decks/steps/pong-game-over.sw.png new file mode 100644 index 00000000000..df53e929c2d Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.sw.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.tr.png b/src/lib/libraries/decks/steps/pong-game-over.tr.png new file mode 100644 index 00000000000..addcbbed2b3 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.tr.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.uk.png b/src/lib/libraries/decks/steps/pong-game-over.uk.png new file mode 100644 index 00000000000..8c3c9006a64 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.uk.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.zh_CN.png b/src/lib/libraries/decks/steps/pong-game-over.zh_CN.png new file mode 100644 index 00000000000..57b308b02ca Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.zh_TW.png b/src/lib/libraries/decks/steps/pong-game-over.zh_TW.png new file mode 100644 index 00000000000..bfcdd66fdda Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pong-game-over.zu.png b/src/lib/libraries/decks/steps/pong-game-over.zu.png new file mode 100644 index 00000000000..9409b731894 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-game-over.zu.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.am.png b/src/lib/libraries/decks/steps/pong-insert-change-score.am.png new file mode 100644 index 00000000000..132b3a369aa Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.am.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.ar.png b/src/lib/libraries/decks/steps/pong-insert-change-score.ar.png new file mode 100644 index 00000000000..0c70e1c0c06 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.ar.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.en.png b/src/lib/libraries/decks/steps/pong-insert-change-score.en.png old mode 100755 new mode 100644 index ffdea65e428..4ff36e3e7cb Binary files a/src/lib/libraries/decks/steps/pong-insert-change-score.en.png and b/src/lib/libraries/decks/steps/pong-insert-change-score.en.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.fr.png b/src/lib/libraries/decks/steps/pong-insert-change-score.fr.png new file mode 100644 index 00000000000..049cc2dc480 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.fr.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.ja.png b/src/lib/libraries/decks/steps/pong-insert-change-score.ja.png new file mode 100644 index 00000000000..dddfc8499c9 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.ja.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.pt_BR.png b/src/lib/libraries/decks/steps/pong-insert-change-score.pt_BR.png new file mode 100644 index 00000000000..8ab127ea963 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.sw.png b/src/lib/libraries/decks/steps/pong-insert-change-score.sw.png new file mode 100644 index 00000000000..fd10df0a994 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.sw.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.tr.png b/src/lib/libraries/decks/steps/pong-insert-change-score.tr.png new file mode 100644 index 00000000000..b94073d9916 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.tr.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.uk.png b/src/lib/libraries/decks/steps/pong-insert-change-score.uk.png new file mode 100644 index 00000000000..2d406103b3a Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.uk.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.zh_CN.png b/src/lib/libraries/decks/steps/pong-insert-change-score.zh_CN.png new file mode 100644 index 00000000000..090316a3715 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.zh_TW.png b/src/lib/libraries/decks/steps/pong-insert-change-score.zh_TW.png new file mode 100644 index 00000000000..ab04d68c4e6 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pong-insert-change-score.zu.png b/src/lib/libraries/decks/steps/pong-insert-change-score.zu.png new file mode 100644 index 00000000000..aee13905d4d Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-insert-change-score.zu.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.am.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.am.png new file mode 100644 index 00000000000..e8a1cffed3c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.am.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.ar.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.ar.png new file mode 100644 index 00000000000..9081949a53c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.ar.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.en.gif b/src/lib/libraries/decks/steps/pong-move-the-paddle.en.gif deleted file mode 100644 index 21052cb6e6a..00000000000 Binary files a/src/lib/libraries/decks/steps/pong-move-the-paddle.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.en.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.en.png new file mode 100644 index 00000000000..5e8f23026cc Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.en.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.fr.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.fr.png new file mode 100644 index 00000000000..a7dbc9e598c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.fr.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.ja.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.ja.png new file mode 100644 index 00000000000..55878868031 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.ja.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.pt_BR.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.pt_BR.png new file mode 100644 index 00000000000..3b7c55a2a05 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.sw.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.sw.png new file mode 100644 index 00000000000..f6585b6a6ab Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.sw.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.tr.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.tr.png new file mode 100644 index 00000000000..86c3adfd16d Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.tr.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.uk.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.uk.png new file mode 100644 index 00000000000..ecb8afed1df Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.uk.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.zh_CN.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.zh_CN.png new file mode 100644 index 00000000000..7512b563f6c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.zh_TW.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.zh_TW.png new file mode 100644 index 00000000000..14646a80560 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pong-move-the-paddle.zu.png b/src/lib/libraries/decks/steps/pong-move-the-paddle.zu.png new file mode 100644 index 00000000000..1fa4db51197 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-move-the-paddle.zu.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.am.png b/src/lib/libraries/decks/steps/pong-reset-score.am.png new file mode 100644 index 00000000000..0b42e677401 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.am.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.ar.png b/src/lib/libraries/decks/steps/pong-reset-score.ar.png new file mode 100644 index 00000000000..0251e98a5a1 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.ar.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.en.png b/src/lib/libraries/decks/steps/pong-reset-score.en.png old mode 100755 new mode 100644 index 13219c4cf33..bbded3e3e0b Binary files a/src/lib/libraries/decks/steps/pong-reset-score.en.png and b/src/lib/libraries/decks/steps/pong-reset-score.en.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.fr.png b/src/lib/libraries/decks/steps/pong-reset-score.fr.png new file mode 100644 index 00000000000..ba53baeec4f Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.fr.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.ja.png b/src/lib/libraries/decks/steps/pong-reset-score.ja.png new file mode 100644 index 00000000000..256c3d0e1c0 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.ja.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.pt_BR.png b/src/lib/libraries/decks/steps/pong-reset-score.pt_BR.png new file mode 100644 index 00000000000..bcbda06f7e0 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.sw.png b/src/lib/libraries/decks/steps/pong-reset-score.sw.png new file mode 100644 index 00000000000..e2be8f637ac Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.sw.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.tr.png b/src/lib/libraries/decks/steps/pong-reset-score.tr.png new file mode 100644 index 00000000000..dfb27fd3163 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.tr.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.uk.png b/src/lib/libraries/decks/steps/pong-reset-score.uk.png new file mode 100644 index 00000000000..c2471d3ce5c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.uk.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.zh_CN.png b/src/lib/libraries/decks/steps/pong-reset-score.zh_CN.png new file mode 100644 index 00000000000..46d10468526 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.zh_TW.png b/src/lib/libraries/decks/steps/pong-reset-score.zh_TW.png new file mode 100644 index 00000000000..9a6293995c8 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pong-reset-score.zu.png b/src/lib/libraries/decks/steps/pong-reset-score.zu.png new file mode 100644 index 00000000000..7f3f43bb87c Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-reset-score.zu.png differ diff --git a/src/lib/libraries/decks/steps/pong-select-ball.png b/src/lib/libraries/decks/steps/pong-select-ball.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/pong-select-ball.png rename to src/lib/libraries/decks/steps/pong-select-ball.LTR.png diff --git a/src/lib/libraries/decks/steps/pong-select-ball.RTL.png b/src/lib/libraries/decks/steps/pong-select-ball.RTL.png new file mode 100644 index 00000000000..ac479008755 Binary files /dev/null and b/src/lib/libraries/decks/steps/pong-select-ball.RTL.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.am.png b/src/lib/libraries/decks/steps/pop-game-change-color.am.png new file mode 100644 index 00000000000..02d7439b51c Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.am.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.ar.png b/src/lib/libraries/decks/steps/pop-game-change-color.ar.png new file mode 100644 index 00000000000..911b0d1f475 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.ar.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.en.gif b/src/lib/libraries/decks/steps/pop-game-change-color.en.gif deleted file mode 100644 index 32a8ea7af97..00000000000 Binary files a/src/lib/libraries/decks/steps/pop-game-change-color.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.en.png b/src/lib/libraries/decks/steps/pop-game-change-color.en.png new file mode 100644 index 00000000000..73499cb7fb6 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.en.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.fr.png b/src/lib/libraries/decks/steps/pop-game-change-color.fr.png new file mode 100644 index 00000000000..9adaac234a2 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.fr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.ja.png b/src/lib/libraries/decks/steps/pop-game-change-color.ja.png new file mode 100644 index 00000000000..d63d9a43c5b Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.ja.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.pt_BR.png b/src/lib/libraries/decks/steps/pop-game-change-color.pt_BR.png new file mode 100644 index 00000000000..c96e09b135b Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.sw.png b/src/lib/libraries/decks/steps/pop-game-change-color.sw.png new file mode 100644 index 00000000000..50417728bd3 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.sw.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.tr.png b/src/lib/libraries/decks/steps/pop-game-change-color.tr.png new file mode 100644 index 00000000000..5608fd85274 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.tr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.uk.png b/src/lib/libraries/decks/steps/pop-game-change-color.uk.png new file mode 100644 index 00000000000..46f043e8e1e Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.uk.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.zh_CN.png b/src/lib/libraries/decks/steps/pop-game-change-color.zh_CN.png new file mode 100644 index 00000000000..18a0bff567e Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.zh_TW.png b/src/lib/libraries/decks/steps/pop-game-change-color.zh_TW.png new file mode 100644 index 00000000000..48ccc8b0b81 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-color.zu.png b/src/lib/libraries/decks/steps/pop-game-change-color.zu.png new file mode 100644 index 00000000000..067082b413b Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-color.zu.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.am.png b/src/lib/libraries/decks/steps/pop-game-change-score.am.png new file mode 100644 index 00000000000..65e65e8c6ab Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.am.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.ar.png b/src/lib/libraries/decks/steps/pop-game-change-score.ar.png new file mode 100644 index 00000000000..a2a9e7920d3 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.ar.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.en.gif b/src/lib/libraries/decks/steps/pop-game-change-score.en.gif deleted file mode 100644 index b3b1b10042a..00000000000 Binary files a/src/lib/libraries/decks/steps/pop-game-change-score.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.en.png b/src/lib/libraries/decks/steps/pop-game-change-score.en.png new file mode 100644 index 00000000000..c62379c998d Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.en.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.fr.png b/src/lib/libraries/decks/steps/pop-game-change-score.fr.png new file mode 100644 index 00000000000..122679e8db4 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.fr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.ja.png b/src/lib/libraries/decks/steps/pop-game-change-score.ja.png new file mode 100644 index 00000000000..4c79565b73f Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.ja.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.pt_BR.png b/src/lib/libraries/decks/steps/pop-game-change-score.pt_BR.png new file mode 100644 index 00000000000..7c978080557 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.sw.png b/src/lib/libraries/decks/steps/pop-game-change-score.sw.png new file mode 100644 index 00000000000..8b27a23fbaf Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.sw.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.tr.png b/src/lib/libraries/decks/steps/pop-game-change-score.tr.png new file mode 100644 index 00000000000..8517a7f4c28 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.tr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.uk.png b/src/lib/libraries/decks/steps/pop-game-change-score.uk.png new file mode 100644 index 00000000000..92b54fcdd85 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.uk.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.zh_CN.png b/src/lib/libraries/decks/steps/pop-game-change-score.zh_CN.png new file mode 100644 index 00000000000..1242e49f9d7 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.zh_TW.png b/src/lib/libraries/decks/steps/pop-game-change-score.zh_TW.png new file mode 100644 index 00000000000..450b0fb6d5f Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-change-score.zu.png b/src/lib/libraries/decks/steps/pop-game-change-score.zu.png new file mode 100644 index 00000000000..e5433d626e3 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-change-score.zu.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-pick-sprite.gif b/src/lib/libraries/decks/steps/pop-game-pick-sprite.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/pop-game-pick-sprite.gif rename to src/lib/libraries/decks/steps/pop-game-pick-sprite.LTR.gif diff --git a/src/lib/libraries/decks/steps/pop-game-pick-sprite.RTL.gif b/src/lib/libraries/decks/steps/pop-game-pick-sprite.RTL.gif new file mode 100644 index 00000000000..78d17efe7e1 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-pick-sprite.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/pop-game-pick-sprite.en.gif b/src/lib/libraries/decks/steps/pop-game-pick-sprite.en.gif deleted file mode 100644 index b1e96b2dc00..00000000000 Binary files a/src/lib/libraries/decks/steps/pop-game-pick-sprite.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.am.png b/src/lib/libraries/decks/steps/pop-game-play-sound.am.png new file mode 100644 index 00000000000..9989ee3b48c Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.am.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.ar.png b/src/lib/libraries/decks/steps/pop-game-play-sound.ar.png new file mode 100644 index 00000000000..4dbdbffc829 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.ar.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.en.gif b/src/lib/libraries/decks/steps/pop-game-play-sound.en.gif deleted file mode 100644 index 52376b591b4..00000000000 Binary files a/src/lib/libraries/decks/steps/pop-game-play-sound.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.en.png b/src/lib/libraries/decks/steps/pop-game-play-sound.en.png new file mode 100644 index 00000000000..b2817787259 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.en.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.fr.png b/src/lib/libraries/decks/steps/pop-game-play-sound.fr.png new file mode 100644 index 00000000000..a032914c90d Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.fr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.ja.png b/src/lib/libraries/decks/steps/pop-game-play-sound.ja.png new file mode 100644 index 00000000000..a873fe533d7 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.ja.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.pt_BR.png b/src/lib/libraries/decks/steps/pop-game-play-sound.pt_BR.png new file mode 100644 index 00000000000..0bb6eb50c4f Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.sw.png b/src/lib/libraries/decks/steps/pop-game-play-sound.sw.png new file mode 100644 index 00000000000..51bb2752d78 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.sw.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.tr.png b/src/lib/libraries/decks/steps/pop-game-play-sound.tr.png new file mode 100644 index 00000000000..3715ce28af3 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.tr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.uk.png b/src/lib/libraries/decks/steps/pop-game-play-sound.uk.png new file mode 100644 index 00000000000..88b75fdb6d4 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.uk.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.zh_CN.png b/src/lib/libraries/decks/steps/pop-game-play-sound.zh_CN.png new file mode 100644 index 00000000000..8420ac776df Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.zh_TW.png b/src/lib/libraries/decks/steps/pop-game-play-sound.zh_TW.png new file mode 100644 index 00000000000..c36d7700b4e Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-play-sound.zu.png b/src/lib/libraries/decks/steps/pop-game-play-sound.zu.png new file mode 100644 index 00000000000..c041a985126 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-play-sound.zu.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.am.png b/src/lib/libraries/decks/steps/pop-game-random-position.am.png new file mode 100644 index 00000000000..09844b0247d Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.am.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.ar.png b/src/lib/libraries/decks/steps/pop-game-random-position.ar.png new file mode 100644 index 00000000000..12f7e972dfa Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.ar.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.en.gif b/src/lib/libraries/decks/steps/pop-game-random-position.en.gif deleted file mode 100644 index 783d7477f58..00000000000 Binary files a/src/lib/libraries/decks/steps/pop-game-random-position.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.en.png b/src/lib/libraries/decks/steps/pop-game-random-position.en.png new file mode 100644 index 00000000000..70d1a7b27a4 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.en.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.fr.png b/src/lib/libraries/decks/steps/pop-game-random-position.fr.png new file mode 100644 index 00000000000..9ac85fc1545 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.fr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.ja.png b/src/lib/libraries/decks/steps/pop-game-random-position.ja.png new file mode 100644 index 00000000000..a076d5e4f48 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.ja.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.pt_BR.png b/src/lib/libraries/decks/steps/pop-game-random-position.pt_BR.png new file mode 100644 index 00000000000..ec909eea301 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.sw.png b/src/lib/libraries/decks/steps/pop-game-random-position.sw.png new file mode 100644 index 00000000000..4a9c7417979 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.sw.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.tr.png b/src/lib/libraries/decks/steps/pop-game-random-position.tr.png new file mode 100644 index 00000000000..377e83cb1f1 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.tr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.uk.png b/src/lib/libraries/decks/steps/pop-game-random-position.uk.png new file mode 100644 index 00000000000..154a7b75ebe Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.uk.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.zh_CN.png b/src/lib/libraries/decks/steps/pop-game-random-position.zh_CN.png new file mode 100644 index 00000000000..4cc6462eda4 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.zh_TW.png b/src/lib/libraries/decks/steps/pop-game-random-position.zh_TW.png new file mode 100644 index 00000000000..9d7517ea4e1 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-random-position.zu.png b/src/lib/libraries/decks/steps/pop-game-random-position.zu.png new file mode 100644 index 00000000000..bfa6e6b6e9d Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-random-position.zu.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.am.png b/src/lib/libraries/decks/steps/pop-game-reset-score.am.png new file mode 100644 index 00000000000..6843e6519ae Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.am.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.ar.png b/src/lib/libraries/decks/steps/pop-game-reset-score.ar.png new file mode 100644 index 00000000000..34f76a8263f Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.ar.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.en.gif b/src/lib/libraries/decks/steps/pop-game-reset-score.en.gif deleted file mode 100644 index 21e5b1b758e..00000000000 Binary files a/src/lib/libraries/decks/steps/pop-game-reset-score.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.en.png b/src/lib/libraries/decks/steps/pop-game-reset-score.en.png new file mode 100644 index 00000000000..0f3cfca8add Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.en.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.fr.png b/src/lib/libraries/decks/steps/pop-game-reset-score.fr.png new file mode 100644 index 00000000000..753ba24d53d Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.fr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.ja.png b/src/lib/libraries/decks/steps/pop-game-reset-score.ja.png new file mode 100644 index 00000000000..f95dc0bdba0 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.ja.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.pt_BR.png b/src/lib/libraries/decks/steps/pop-game-reset-score.pt_BR.png new file mode 100644 index 00000000000..5b3d2cefec3 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.sw.png b/src/lib/libraries/decks/steps/pop-game-reset-score.sw.png new file mode 100644 index 00000000000..b9831143b4c Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.sw.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.tr.png b/src/lib/libraries/decks/steps/pop-game-reset-score.tr.png new file mode 100644 index 00000000000..72ebe165219 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.tr.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.uk.png b/src/lib/libraries/decks/steps/pop-game-reset-score.uk.png new file mode 100644 index 00000000000..89a67cb74c6 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.uk.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.zh_CN.png b/src/lib/libraries/decks/steps/pop-game-reset-score.zh_CN.png new file mode 100644 index 00000000000..2789f74c098 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.zh_TW.png b/src/lib/libraries/decks/steps/pop-game-reset-score.zh_TW.png new file mode 100644 index 00000000000..e000167aeeb Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/pop-game-reset-score.zu.png b/src/lib/libraries/decks/steps/pop-game-reset-score.zu.png new file mode 100644 index 00000000000..6457fae9f35 Binary files /dev/null and b/src/lib/libraries/decks/steps/pop-game-reset-score.zu.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.am.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.am.png new file mode 100644 index 00000000000..2c7d9c263ce Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.am.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.ar.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.ar.png new file mode 100644 index 00000000000..0dd94a3dc78 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.ar.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.en.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.en.png old mode 100755 new mode 100644 index 88cd22525b7..cf3aef6ba15 Binary files a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.en.png and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.en.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.fr.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.fr.png new file mode 100644 index 00000000000..800df6179e7 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.fr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.ja.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.ja.png new file mode 100644 index 00000000000..7c5f6697b11 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.ja.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.pt_BR.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.pt_BR.png new file mode 100644 index 00000000000..b0ba2091806 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.sw.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.sw.png new file mode 100644 index 00000000000..78d4a1e4ded Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.sw.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.tr.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.tr.png new file mode 100644 index 00000000000..fe07eb40b6c Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.tr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.uk.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.uk.png new file mode 100644 index 00000000000..643ccc3be87 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.uk.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zh_CN.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zh_CN.png new file mode 100644 index 00000000000..1fcb6ba5552 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zh_TW.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zh_TW.png new file mode 100644 index 00000000000..cffcafbb672 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zu.png b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zu.png new file mode 100644 index 00000000000..56cb0d1faa7 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-choose-sound.zu.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.am.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.am.png new file mode 100644 index 00000000000..2409c718cb0 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.am.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.ar.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.ar.png new file mode 100644 index 00000000000..75e4cdb4eb0 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.ar.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.en.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.en.png old mode 100755 new mode 100644 index b0870fcf781..02964206b17 Binary files a/src/lib/libraries/decks/steps/record-a-sound-click-record.en.png and b/src/lib/libraries/decks/steps/record-a-sound-click-record.en.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.fr.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.fr.png new file mode 100644 index 00000000000..dbfa8aab47a Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.fr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.ja.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.ja.png new file mode 100644 index 00000000000..bf1afc4c71c Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.ja.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.pt_BR.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.pt_BR.png new file mode 100644 index 00000000000..508470d5daf Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.sw.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.sw.png new file mode 100644 index 00000000000..2a8d3c4e5dc Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.sw.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.tr.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.tr.png new file mode 100644 index 00000000000..5730c96b205 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.tr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.uk.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.uk.png new file mode 100644 index 00000000000..5e095aef8d5 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.uk.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.zh_CN.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.zh_CN.png new file mode 100644 index 00000000000..c9000ddb10a Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.zh_TW.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.zh_TW.png new file mode 100644 index 00000000000..edf92ad1392 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-click-record.zu.png b/src/lib/libraries/decks/steps/record-a-sound-click-record.zu.png new file mode 100644 index 00000000000..2382554199a Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-click-record.zu.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.am.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.am.png new file mode 100644 index 00000000000..7fc542c6b39 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.am.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.ar.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.ar.png new file mode 100644 index 00000000000..b9903c847a6 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.ar.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.en.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.en.png old mode 100755 new mode 100644 index a31315d62f4..b55e6d62176 Binary files a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.en.png and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.en.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.fr.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.fr.png new file mode 100644 index 00000000000..d93ae3b4798 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.fr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.ja.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.ja.png new file mode 100644 index 00000000000..037b3662c7d Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.ja.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.pt_BR.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.pt_BR.png new file mode 100644 index 00000000000..8e0ffee5473 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.sw.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.sw.png new file mode 100644 index 00000000000..46e99d39ffe Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.sw.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.tr.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.tr.png new file mode 100644 index 00000000000..45616969718 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.tr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.uk.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.uk.png new file mode 100644 index 00000000000..a931c41ec7c Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.uk.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zh_CN.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zh_CN.png new file mode 100644 index 00000000000..8eca387dc29 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zh_TW.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zh_TW.png new file mode 100644 index 00000000000..13410b3d074 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zu.png b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zu.png new file mode 100644 index 00000000000..c22665bac55 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-play-your-sound.zu.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.am.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.am.png new file mode 100644 index 00000000000..53e75babf0f Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.am.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.ar.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.ar.png new file mode 100644 index 00000000000..ad235d74d22 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.ar.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.en.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.en.png old mode 100755 new mode 100644 index bac9f826e6e..ada38412b9d Binary files a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.en.png and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.en.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.fr.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.fr.png new file mode 100644 index 00000000000..c44c61f2320 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.fr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.ja.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.ja.png new file mode 100644 index 00000000000..41708fb1c8b Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.ja.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.pt_BR.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.pt_BR.png new file mode 100644 index 00000000000..72ad25175e3 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.sw.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.sw.png new file mode 100644 index 00000000000..a473a7443d1 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.sw.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.tr.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.tr.png new file mode 100644 index 00000000000..bffd1acb81c Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.tr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.uk.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.uk.png new file mode 100644 index 00000000000..825ff42e1fa Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.uk.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zh_CN.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zh_CN.png new file mode 100644 index 00000000000..27839731dc3 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zh_TW.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zh_TW.png new file mode 100644 index 00000000000..b8c6ebb5178 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zu.png b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zu.png new file mode 100644 index 00000000000..31de0c4323b Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-press-record-button.zu.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.am.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.am.png new file mode 100644 index 00000000000..365f0d8e78c Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.am.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.ar.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.ar.png new file mode 100644 index 00000000000..cfb0695f1f0 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.ar.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.en.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.en.png old mode 100755 new mode 100644 index 7a182ebb1ed..66957bf5bcb Binary files a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.en.png and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.en.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.fr.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.fr.png new file mode 100644 index 00000000000..4cc9001fc41 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.fr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.ja.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.ja.png new file mode 100644 index 00000000000..4443d57df44 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.ja.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.pt_BR.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.pt_BR.png new file mode 100644 index 00000000000..1907b6b2a08 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.sw.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.sw.png new file mode 100644 index 00000000000..62703bf2e0c Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.sw.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.tr.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.tr.png new file mode 100644 index 00000000000..3ca03523530 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.tr.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.uk.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.uk.png new file mode 100644 index 00000000000..acf845c8c6a Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.uk.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zh_CN.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zh_CN.png new file mode 100644 index 00000000000..0688e6099d2 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zh_TW.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zh_TW.png new file mode 100644 index 00000000000..8f4ef3d706e Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zu.png b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zu.png new file mode 100644 index 00000000000..a4c530c13c2 Binary files /dev/null and b/src/lib/libraries/decks/steps/record-a-sound-sounds-tab.zu.png differ diff --git a/src/lib/libraries/decks/steps/speech-add-backdrop.en.gif b/src/lib/libraries/decks/steps/speech-add-backdrop.en.gif deleted file mode 100644 index 7c30d7372be..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-add-backdrop.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-add-backdrop.gif b/src/lib/libraries/decks/steps/speech-add-backdrop.gif deleted file mode 100644 index 91e1c86c197..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-add-backdrop.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.am.gif b/src/lib/libraries/decks/steps/speech-add-extension.am.gif new file mode 100644 index 00000000000..2dea13f1219 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.am.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.ar.gif b/src/lib/libraries/decks/steps/speech-add-extension.ar.gif new file mode 100644 index 00000000000..988a17499df Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.ar.gif differ diff --git a/src/lib/libraries/decks/steps/talking-1-add-extension.en.gif b/src/lib/libraries/decks/steps/speech-add-extension.en.gif similarity index 100% rename from src/lib/libraries/decks/steps/talking-1-add-extension.en.gif rename to src/lib/libraries/decks/steps/speech-add-extension.en.gif diff --git a/src/lib/libraries/decks/steps/speech-add-extension.fr.gif b/src/lib/libraries/decks/steps/speech-add-extension.fr.gif new file mode 100644 index 00000000000..7fb37bf79e4 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.fr.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.ja.gif b/src/lib/libraries/decks/steps/speech-add-extension.ja.gif new file mode 100644 index 00000000000..c733ca871f8 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.ja.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.pt_BR.gif b/src/lib/libraries/decks/steps/speech-add-extension.pt_BR.gif new file mode 100644 index 00000000000..fa06e9b2850 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.sw.gif b/src/lib/libraries/decks/steps/speech-add-extension.sw.gif new file mode 100644 index 00000000000..dcf71888f54 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.sw.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.tr.gif b/src/lib/libraries/decks/steps/speech-add-extension.tr.gif new file mode 100644 index 00000000000..9e0dabb9234 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.tr.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.uk.gif b/src/lib/libraries/decks/steps/speech-add-extension.uk.gif new file mode 100644 index 00000000000..f822b07ad01 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.uk.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.zh_CN.gif b/src/lib/libraries/decks/steps/speech-add-extension.zh_CN.gif new file mode 100644 index 00000000000..b9592d3c69d Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.zh_TW.gif b/src/lib/libraries/decks/steps/speech-add-extension.zh_TW.gif new file mode 100644 index 00000000000..f88551acc7c Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-extension.zu.gif b/src/lib/libraries/decks/steps/speech-add-extension.zu.gif new file mode 100644 index 00000000000..03b195fc5f0 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-extension.zu.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-sprite.gif b/src/lib/libraries/decks/steps/speech-add-sprite.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/speech-add-sprite.gif rename to src/lib/libraries/decks/steps/speech-add-sprite.LTR.gif diff --git a/src/lib/libraries/decks/steps/speech-add-sprite.RTL.gif b/src/lib/libraries/decks/steps/speech-add-sprite.RTL.gif new file mode 100644 index 00000000000..86252c4c8f0 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-add-sprite.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/speech-add-sprite.en.gif b/src/lib/libraries/decks/steps/speech-add-sprite.en.gif deleted file mode 100644 index fc363096c65..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-add-sprite.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.am.png b/src/lib/libraries/decks/steps/speech-change-color.am.png new file mode 100644 index 00000000000..934996b7e3f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.am.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.ar.png b/src/lib/libraries/decks/steps/speech-change-color.ar.png new file mode 100644 index 00000000000..e4472cfbd94 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.ar.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.en.gif b/src/lib/libraries/decks/steps/speech-change-color.en.gif deleted file mode 100644 index 56835660752..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-change-color.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.en.png b/src/lib/libraries/decks/steps/speech-change-color.en.png new file mode 100644 index 00000000000..d1c4bb8fef7 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.en.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.fr.png b/src/lib/libraries/decks/steps/speech-change-color.fr.png new file mode 100644 index 00000000000..5a27060080b Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.fr.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.ja.png b/src/lib/libraries/decks/steps/speech-change-color.ja.png new file mode 100644 index 00000000000..1ec87f40e5d Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.ja.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.pt_BR.png b/src/lib/libraries/decks/steps/speech-change-color.pt_BR.png new file mode 100644 index 00000000000..1de5620a74b Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.sw.png b/src/lib/libraries/decks/steps/speech-change-color.sw.png new file mode 100644 index 00000000000..ae3c27f51f8 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.sw.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.tr.png b/src/lib/libraries/decks/steps/speech-change-color.tr.png new file mode 100644 index 00000000000..c54b257ba33 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.tr.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.uk.png b/src/lib/libraries/decks/steps/speech-change-color.uk.png new file mode 100644 index 00000000000..63bee908a97 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.uk.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.zh_CN.png b/src/lib/libraries/decks/steps/speech-change-color.zh_CN.png new file mode 100644 index 00000000000..ce39ee047c2 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.zh_TW.png b/src/lib/libraries/decks/steps/speech-change-color.zh_TW.png new file mode 100644 index 00000000000..b19a18f1b2b Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/speech-change-color.zu.png b/src/lib/libraries/decks/steps/speech-change-color.zu.png new file mode 100644 index 00000000000..d433493d67e Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-change-color.zu.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.am.png b/src/lib/libraries/decks/steps/speech-grow-shrink.am.png new file mode 100644 index 00000000000..56a125a8828 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.am.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.ar.png b/src/lib/libraries/decks/steps/speech-grow-shrink.ar.png new file mode 100644 index 00000000000..7250ead3a3d Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.ar.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.en.gif b/src/lib/libraries/decks/steps/speech-grow-shrink.en.gif deleted file mode 100644 index 929cade3429..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-grow-shrink.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.en.png b/src/lib/libraries/decks/steps/speech-grow-shrink.en.png new file mode 100644 index 00000000000..3fe480df2b3 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.en.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.fr.png b/src/lib/libraries/decks/steps/speech-grow-shrink.fr.png new file mode 100644 index 00000000000..5519d1a4dca Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.fr.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.ja.png b/src/lib/libraries/decks/steps/speech-grow-shrink.ja.png new file mode 100644 index 00000000000..ef40024c835 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.ja.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.pt_BR.png b/src/lib/libraries/decks/steps/speech-grow-shrink.pt_BR.png new file mode 100644 index 00000000000..778528950c5 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.sw.png b/src/lib/libraries/decks/steps/speech-grow-shrink.sw.png new file mode 100644 index 00000000000..5460a78d90d Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.sw.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.tr.png b/src/lib/libraries/decks/steps/speech-grow-shrink.tr.png new file mode 100644 index 00000000000..431e342aed8 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.tr.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.uk.png b/src/lib/libraries/decks/steps/speech-grow-shrink.uk.png new file mode 100644 index 00000000000..96488a07787 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.uk.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.zh_CN.png b/src/lib/libraries/decks/steps/speech-grow-shrink.zh_CN.png new file mode 100644 index 00000000000..3d75ef4a02e Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.zh_TW.png b/src/lib/libraries/decks/steps/speech-grow-shrink.zh_TW.png new file mode 100644 index 00000000000..81cc76eb7c7 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/speech-grow-shrink.zu.png b/src/lib/libraries/decks/steps/speech-grow-shrink.zu.png new file mode 100644 index 00000000000..e4b119f6290 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-grow-shrink.zu.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.am.png b/src/lib/libraries/decks/steps/speech-move-around.am.png new file mode 100644 index 00000000000..93d1a0476e0 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.am.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.ar.png b/src/lib/libraries/decks/steps/speech-move-around.ar.png new file mode 100644 index 00000000000..b7aa9b1b994 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.ar.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.en.gif b/src/lib/libraries/decks/steps/speech-move-around.en.gif deleted file mode 100644 index da4630b08c0..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-move-around.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.en.png b/src/lib/libraries/decks/steps/speech-move-around.en.png new file mode 100644 index 00000000000..08a8e1b1376 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.en.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.fr.png b/src/lib/libraries/decks/steps/speech-move-around.fr.png new file mode 100644 index 00000000000..1dffdbd04bd Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.fr.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.ja.png b/src/lib/libraries/decks/steps/speech-move-around.ja.png new file mode 100644 index 00000000000..9096cfcc837 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.ja.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.pt_BR.png b/src/lib/libraries/decks/steps/speech-move-around.pt_BR.png new file mode 100644 index 00000000000..1b933f78e0f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.sw.png b/src/lib/libraries/decks/steps/speech-move-around.sw.png new file mode 100644 index 00000000000..184322dde22 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.sw.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.tr.png b/src/lib/libraries/decks/steps/speech-move-around.tr.png new file mode 100644 index 00000000000..97b51e93bbe Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.tr.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.uk.png b/src/lib/libraries/decks/steps/speech-move-around.uk.png new file mode 100644 index 00000000000..ad9f471531d Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.uk.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.zh_CN.png b/src/lib/libraries/decks/steps/speech-move-around.zh_CN.png new file mode 100644 index 00000000000..ea154dfdf2c Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.zh_TW.png b/src/lib/libraries/decks/steps/speech-move-around.zh_TW.png new file mode 100644 index 00000000000..b1118c44199 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/speech-move-around.zu.png b/src/lib/libraries/decks/steps/speech-move-around.zu.png new file mode 100644 index 00000000000..9d17d2b3068 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-move-around.zu.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.am.png b/src/lib/libraries/decks/steps/speech-say-something.am.png new file mode 100644 index 00000000000..e12a3e89f81 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.am.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.ar.png b/src/lib/libraries/decks/steps/speech-say-something.ar.png new file mode 100644 index 00000000000..5476c0b7bd4 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.ar.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.en.gif b/src/lib/libraries/decks/steps/speech-say-something.en.gif deleted file mode 100644 index d9af1c9e7dd..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-say-something.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.en.png b/src/lib/libraries/decks/steps/speech-say-something.en.png new file mode 100644 index 00000000000..b4dd579eb98 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.en.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.fr.png b/src/lib/libraries/decks/steps/speech-say-something.fr.png new file mode 100644 index 00000000000..eb3932c670f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.fr.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.ja.png b/src/lib/libraries/decks/steps/speech-say-something.ja.png new file mode 100644 index 00000000000..e3b1a311380 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.ja.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.pt_BR.png b/src/lib/libraries/decks/steps/speech-say-something.pt_BR.png new file mode 100644 index 00000000000..2458eee07d4 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.sw.png b/src/lib/libraries/decks/steps/speech-say-something.sw.png new file mode 100644 index 00000000000..ddc13c7a54e Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.sw.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.tr.png b/src/lib/libraries/decks/steps/speech-say-something.tr.png new file mode 100644 index 00000000000..577dfe3b947 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.tr.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.uk.png b/src/lib/libraries/decks/steps/speech-say-something.uk.png new file mode 100644 index 00000000000..daeff249c66 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.uk.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.zh_CN.png b/src/lib/libraries/decks/steps/speech-say-something.zh_CN.png new file mode 100644 index 00000000000..0217a948021 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.zh_TW.png b/src/lib/libraries/decks/steps/speech-say-something.zh_TW.png new file mode 100644 index 00000000000..ed07469793d Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/speech-say-something.zu.png b/src/lib/libraries/decks/steps/speech-say-something.zu.png new file mode 100644 index 00000000000..4936edab233 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-say-something.zu.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.am.png b/src/lib/libraries/decks/steps/speech-set-voice.am.png new file mode 100644 index 00000000000..09ee096ff9c Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.am.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.ar.png b/src/lib/libraries/decks/steps/speech-set-voice.ar.png new file mode 100644 index 00000000000..61cad6daae6 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.ar.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.en.gif b/src/lib/libraries/decks/steps/speech-set-voice.en.gif deleted file mode 100644 index 152e2ba0aa1..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-set-voice.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.en.png b/src/lib/libraries/decks/steps/speech-set-voice.en.png new file mode 100644 index 00000000000..e9f15dfa213 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.en.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.fr.png b/src/lib/libraries/decks/steps/speech-set-voice.fr.png new file mode 100644 index 00000000000..2fd63bf4b3e Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.fr.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.ja.png b/src/lib/libraries/decks/steps/speech-set-voice.ja.png new file mode 100644 index 00000000000..c6cb263884f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.ja.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.pt_BR.png b/src/lib/libraries/decks/steps/speech-set-voice.pt_BR.png new file mode 100644 index 00000000000..b5968dd7ead Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.sw.png b/src/lib/libraries/decks/steps/speech-set-voice.sw.png new file mode 100644 index 00000000000..a33960648d6 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.sw.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.tr.png b/src/lib/libraries/decks/steps/speech-set-voice.tr.png new file mode 100644 index 00000000000..460b55d02fa Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.tr.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.uk.png b/src/lib/libraries/decks/steps/speech-set-voice.uk.png new file mode 100644 index 00000000000..6f666cb9e92 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.uk.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.zh_CN.png b/src/lib/libraries/decks/steps/speech-set-voice.zh_CN.png new file mode 100644 index 00000000000..e608b2c4374 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.zh_TW.png b/src/lib/libraries/decks/steps/speech-set-voice.zh_TW.png new file mode 100644 index 00000000000..ca210f57799 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/speech-set-voice.zu.png b/src/lib/libraries/decks/steps/speech-set-voice.zu.png new file mode 100644 index 00000000000..f5c4505660c Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-set-voice.zu.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.am.png b/src/lib/libraries/decks/steps/speech-song.am.png new file mode 100644 index 00000000000..1b87bd04f2f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.am.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.ar.png b/src/lib/libraries/decks/steps/speech-song.ar.png new file mode 100644 index 00000000000..573993a7405 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.ar.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.en.gif b/src/lib/libraries/decks/steps/speech-song.en.gif deleted file mode 100644 index 7c72216e715..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-song.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-song.en.png b/src/lib/libraries/decks/steps/speech-song.en.png new file mode 100644 index 00000000000..de49573d0d0 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.en.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.fr.png b/src/lib/libraries/decks/steps/speech-song.fr.png new file mode 100644 index 00000000000..97e0536db57 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.fr.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.ja.png b/src/lib/libraries/decks/steps/speech-song.ja.png new file mode 100644 index 00000000000..79d1ea8d790 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.ja.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.pt_BR.png b/src/lib/libraries/decks/steps/speech-song.pt_BR.png new file mode 100644 index 00000000000..38d2bec639a Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.sw.png b/src/lib/libraries/decks/steps/speech-song.sw.png new file mode 100644 index 00000000000..bf421b02844 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.sw.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.tr.png b/src/lib/libraries/decks/steps/speech-song.tr.png new file mode 100644 index 00000000000..50d4b769ff3 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.tr.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.uk.png b/src/lib/libraries/decks/steps/speech-song.uk.png new file mode 100644 index 00000000000..5d1890b785e Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.uk.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.zh_CN.png b/src/lib/libraries/decks/steps/speech-song.zh_CN.png new file mode 100644 index 00000000000..34dc72f472c Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.zh_TW.png b/src/lib/libraries/decks/steps/speech-song.zh_TW.png new file mode 100644 index 00000000000..6fd89da123f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/speech-song.zu.png b/src/lib/libraries/decks/steps/speech-song.zu.png new file mode 100644 index 00000000000..5e29c518c17 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-song.zu.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.am.png b/src/lib/libraries/decks/steps/speech-spin.am.png new file mode 100644 index 00000000000..805aa1c864c Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.am.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.ar.png b/src/lib/libraries/decks/steps/speech-spin.ar.png new file mode 100644 index 00000000000..b0b18c7e394 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.ar.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.en.gif b/src/lib/libraries/decks/steps/speech-spin.en.gif deleted file mode 100644 index 4a5e8d83352..00000000000 Binary files a/src/lib/libraries/decks/steps/speech-spin.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/speech-spin.en.png b/src/lib/libraries/decks/steps/speech-spin.en.png new file mode 100644 index 00000000000..a23e345b007 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.en.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.fr.png b/src/lib/libraries/decks/steps/speech-spin.fr.png new file mode 100644 index 00000000000..35a93bef14f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.fr.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.ja.png b/src/lib/libraries/decks/steps/speech-spin.ja.png new file mode 100644 index 00000000000..96c91c231b7 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.ja.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.pt_BR.png b/src/lib/libraries/decks/steps/speech-spin.pt_BR.png new file mode 100644 index 00000000000..0efede89765 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.sw.png b/src/lib/libraries/decks/steps/speech-spin.sw.png new file mode 100644 index 00000000000..27e268f3e3f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.sw.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.tr.png b/src/lib/libraries/decks/steps/speech-spin.tr.png new file mode 100644 index 00000000000..602f5e7ba8a Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.tr.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.uk.png b/src/lib/libraries/decks/steps/speech-spin.uk.png new file mode 100644 index 00000000000..34ec0ab4a7c Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.uk.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.zh_CN.png b/src/lib/libraries/decks/steps/speech-spin.zh_CN.png new file mode 100644 index 00000000000..d01ec815246 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.zh_TW.png b/src/lib/libraries/decks/steps/speech-spin.zh_TW.png new file mode 100644 index 00000000000..aef7300c21f Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/speech-spin.zu.png b/src/lib/libraries/decks/steps/speech-spin.zu.png new file mode 100644 index 00000000000..8416f182021 Binary files /dev/null and b/src/lib/libraries/decks/steps/speech-spin.zu.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.am.png b/src/lib/libraries/decks/steps/spin-point-in-direction.am.png new file mode 100644 index 00000000000..8df9ef94bd5 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.am.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.ar.png b/src/lib/libraries/decks/steps/spin-point-in-direction.ar.png new file mode 100644 index 00000000000..f31028a7822 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.ar.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.en.png b/src/lib/libraries/decks/steps/spin-point-in-direction.en.png old mode 100755 new mode 100644 index 27357ac7962..2c929a2e87d Binary files a/src/lib/libraries/decks/steps/spin-point-in-direction.en.png and b/src/lib/libraries/decks/steps/spin-point-in-direction.en.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.fr.png b/src/lib/libraries/decks/steps/spin-point-in-direction.fr.png new file mode 100644 index 00000000000..1fdd9ac35bd Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.fr.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.ja.png b/src/lib/libraries/decks/steps/spin-point-in-direction.ja.png new file mode 100644 index 00000000000..f60bb5032b0 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.ja.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.pt_BR.png b/src/lib/libraries/decks/steps/spin-point-in-direction.pt_BR.png new file mode 100644 index 00000000000..5527b5f5187 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.sw.png b/src/lib/libraries/decks/steps/spin-point-in-direction.sw.png new file mode 100644 index 00000000000..cb225f896d3 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.sw.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.tr.png b/src/lib/libraries/decks/steps/spin-point-in-direction.tr.png new file mode 100644 index 00000000000..7c4fe8d8443 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.tr.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.uk.png b/src/lib/libraries/decks/steps/spin-point-in-direction.uk.png new file mode 100644 index 00000000000..02a30ca663a Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.uk.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.zh_CN.png b/src/lib/libraries/decks/steps/spin-point-in-direction.zh_CN.png new file mode 100644 index 00000000000..32cf7f12361 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.zh_TW.png b/src/lib/libraries/decks/steps/spin-point-in-direction.zh_TW.png new file mode 100644 index 00000000000..ca3edebd62d Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/spin-point-in-direction.zu.png b/src/lib/libraries/decks/steps/spin-point-in-direction.zu.png new file mode 100644 index 00000000000..1b5417c4b79 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-point-in-direction.zu.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.am.png b/src/lib/libraries/decks/steps/spin-turn.am.png new file mode 100644 index 00000000000..aed25e050f1 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.am.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.ar.png b/src/lib/libraries/decks/steps/spin-turn.ar.png new file mode 100644 index 00000000000..01dd7f3ed45 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.ar.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.en.png b/src/lib/libraries/decks/steps/spin-turn.en.png old mode 100755 new mode 100644 index ad7ee766643..4f72ae6703f Binary files a/src/lib/libraries/decks/steps/spin-turn.en.png and b/src/lib/libraries/decks/steps/spin-turn.en.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.fr.png b/src/lib/libraries/decks/steps/spin-turn.fr.png new file mode 100644 index 00000000000..b82090be433 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.fr.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.ja.png b/src/lib/libraries/decks/steps/spin-turn.ja.png new file mode 100644 index 00000000000..03640cc5ca5 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.ja.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.pt_BR.png b/src/lib/libraries/decks/steps/spin-turn.pt_BR.png new file mode 100644 index 00000000000..3406ac7c075 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.sw.png b/src/lib/libraries/decks/steps/spin-turn.sw.png new file mode 100644 index 00000000000..a46c1d947d3 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.sw.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.tr.png b/src/lib/libraries/decks/steps/spin-turn.tr.png new file mode 100644 index 00000000000..d0f8f60647a Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.tr.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.uk.png b/src/lib/libraries/decks/steps/spin-turn.uk.png new file mode 100644 index 00000000000..8db977cfd92 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.uk.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.zh_CN.png b/src/lib/libraries/decks/steps/spin-turn.zh_CN.png new file mode 100644 index 00000000000..65cfef6252a Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.zh_TW.png b/src/lib/libraries/decks/steps/spin-turn.zh_TW.png new file mode 100644 index 00000000000..b0438060c70 Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/spin-turn.zu.png b/src/lib/libraries/decks/steps/spin-turn.zu.png new file mode 100644 index 00000000000..c788341f69a Binary files /dev/null and b/src/lib/libraries/decks/steps/spin-turn.zu.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.am.png b/src/lib/libraries/decks/steps/story-conversation.am.png new file mode 100644 index 00000000000..4b5389095b8 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.am.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.ar.png b/src/lib/libraries/decks/steps/story-conversation.ar.png new file mode 100644 index 00000000000..100f2f97190 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.ar.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.en.gif b/src/lib/libraries/decks/steps/story-conversation.en.gif deleted file mode 100644 index e30cea2a37d..00000000000 Binary files a/src/lib/libraries/decks/steps/story-conversation.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/story-conversation.en.png b/src/lib/libraries/decks/steps/story-conversation.en.png new file mode 100644 index 00000000000..daf1caf1c7a Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.en.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.fr.png b/src/lib/libraries/decks/steps/story-conversation.fr.png new file mode 100644 index 00000000000..5dfd7964913 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.fr.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.ja.png b/src/lib/libraries/decks/steps/story-conversation.ja.png new file mode 100644 index 00000000000..8b14bada98e Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.ja.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.pt_BR.png b/src/lib/libraries/decks/steps/story-conversation.pt_BR.png new file mode 100644 index 00000000000..15cd2561ad5 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.sw.png b/src/lib/libraries/decks/steps/story-conversation.sw.png new file mode 100644 index 00000000000..6f9cec8a697 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.sw.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.tr.png b/src/lib/libraries/decks/steps/story-conversation.tr.png new file mode 100644 index 00000000000..559a406a480 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.tr.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.uk.png b/src/lib/libraries/decks/steps/story-conversation.uk.png new file mode 100644 index 00000000000..7f5b56fedf4 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.uk.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.zh_CN.png b/src/lib/libraries/decks/steps/story-conversation.zh_CN.png new file mode 100644 index 00000000000..e4f55c5edb9 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.zh_TW.png b/src/lib/libraries/decks/steps/story-conversation.zh_TW.png new file mode 100644 index 00000000000..8065c25b485 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/story-conversation.zu.png b/src/lib/libraries/decks/steps/story-conversation.zu.png new file mode 100644 index 00000000000..8e40e24b4df Binary files /dev/null and b/src/lib/libraries/decks/steps/story-conversation.zu.png differ diff --git a/src/lib/libraries/decks/steps/story-flip.am.gif b/src/lib/libraries/decks/steps/story-flip.am.gif new file mode 100644 index 00000000000..9670ea047fc Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.am.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.ar.gif b/src/lib/libraries/decks/steps/story-flip.ar.gif new file mode 100644 index 00000000000..301aa48acc2 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.ar.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.en.gif b/src/lib/libraries/decks/steps/story-flip.en.gif index 1514b474bb0..432c849bbb9 100644 Binary files a/src/lib/libraries/decks/steps/story-flip.en.gif and b/src/lib/libraries/decks/steps/story-flip.en.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.fr.gif b/src/lib/libraries/decks/steps/story-flip.fr.gif new file mode 100644 index 00000000000..bb86e280d99 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.fr.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.ja.gif b/src/lib/libraries/decks/steps/story-flip.ja.gif new file mode 100644 index 00000000000..9d2e207ebe4 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.ja.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.pt_BR.gif b/src/lib/libraries/decks/steps/story-flip.pt_BR.gif new file mode 100644 index 00000000000..67f78143360 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.sw.gif b/src/lib/libraries/decks/steps/story-flip.sw.gif new file mode 100644 index 00000000000..61e2d7b01d9 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.sw.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.tr.gif b/src/lib/libraries/decks/steps/story-flip.tr.gif new file mode 100644 index 00000000000..d3a797dad6c Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.tr.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.uk.gif b/src/lib/libraries/decks/steps/story-flip.uk.gif new file mode 100644 index 00000000000..5eb3596d792 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.uk.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.zh_CN.gif b/src/lib/libraries/decks/steps/story-flip.zh_CN.gif new file mode 100644 index 00000000000..ee16762dc97 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.zh_TW.gif b/src/lib/libraries/decks/steps/story-flip.zh_TW.gif new file mode 100644 index 00000000000..b79ff6dacf5 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/story-flip.zu.gif b/src/lib/libraries/decks/steps/story-flip.zu.gif new file mode 100644 index 00000000000..47a17b1f61c Binary files /dev/null and b/src/lib/libraries/decks/steps/story-flip.zu.gif differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.am.png b/src/lib/libraries/decks/steps/story-hide-character.am.png new file mode 100644 index 00000000000..abe9a7eda7e Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.am.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.ar.png b/src/lib/libraries/decks/steps/story-hide-character.ar.png new file mode 100644 index 00000000000..5d8e2d0ad3e Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.ar.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.en.gif b/src/lib/libraries/decks/steps/story-hide-character.en.gif deleted file mode 100644 index 41033135c22..00000000000 Binary files a/src/lib/libraries/decks/steps/story-hide-character.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.en.png b/src/lib/libraries/decks/steps/story-hide-character.en.png new file mode 100644 index 00000000000..005ad6ebec1 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.en.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.fr.png b/src/lib/libraries/decks/steps/story-hide-character.fr.png new file mode 100644 index 00000000000..5e460a7ef33 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.fr.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.ja.png b/src/lib/libraries/decks/steps/story-hide-character.ja.png new file mode 100644 index 00000000000..cec768a5670 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.ja.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.pt_BR.png b/src/lib/libraries/decks/steps/story-hide-character.pt_BR.png new file mode 100644 index 00000000000..6fb7f83458b Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.sw.png b/src/lib/libraries/decks/steps/story-hide-character.sw.png new file mode 100644 index 00000000000..bcb1864b129 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.sw.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.tr.png b/src/lib/libraries/decks/steps/story-hide-character.tr.png new file mode 100644 index 00000000000..cbff75b0db3 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.tr.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.uk.png b/src/lib/libraries/decks/steps/story-hide-character.uk.png new file mode 100644 index 00000000000..d2428eb9c37 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.uk.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.zh_CN.png b/src/lib/libraries/decks/steps/story-hide-character.zh_CN.png new file mode 100644 index 00000000000..309c4673766 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.zh_TW.png b/src/lib/libraries/decks/steps/story-hide-character.zh_TW.png new file mode 100644 index 00000000000..7a05bb7b87a Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/story-hide-character.zu.png b/src/lib/libraries/decks/steps/story-hide-character.zu.png new file mode 100644 index 00000000000..1f658c5fda6 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-hide-character.zu.png differ diff --git a/src/lib/libraries/decks/steps/story-pick-backdrop.gif b/src/lib/libraries/decks/steps/story-pick-backdrop.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/story-pick-backdrop.gif rename to src/lib/libraries/decks/steps/story-pick-backdrop.LTR.gif diff --git a/src/lib/libraries/decks/steps/story-pick-backdrop.RTL.gif b/src/lib/libraries/decks/steps/story-pick-backdrop.RTL.gif new file mode 100644 index 00000000000..0b8743efa43 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-pick-backdrop.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/story-pick-backdrop2.gif b/src/lib/libraries/decks/steps/story-pick-backdrop2.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/story-pick-backdrop2.gif rename to src/lib/libraries/decks/steps/story-pick-backdrop2.LTR.gif diff --git a/src/lib/libraries/decks/steps/story-pick-backdrop2.RTL.gif b/src/lib/libraries/decks/steps/story-pick-backdrop2.RTL.gif new file mode 100644 index 00000000000..0fa0af143d4 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-pick-backdrop2.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/story-pick-sprite.gif b/src/lib/libraries/decks/steps/story-pick-sprite.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/story-pick-sprite.gif rename to src/lib/libraries/decks/steps/story-pick-sprite.LTR.gif diff --git a/src/lib/libraries/decks/steps/story-pick-sprite.RTL.gif b/src/lib/libraries/decks/steps/story-pick-sprite.RTL.gif new file mode 100644 index 00000000000..6ee72d1c0e3 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-pick-sprite.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/story-pick-sprite2.gif b/src/lib/libraries/decks/steps/story-pick-sprite2.LTR.gif similarity index 100% rename from src/lib/libraries/decks/steps/story-pick-sprite2.gif rename to src/lib/libraries/decks/steps/story-pick-sprite2.LTR.gif diff --git a/src/lib/libraries/decks/steps/story-pick-sprite2.RTL.gif b/src/lib/libraries/decks/steps/story-pick-sprite2.RTL.gif new file mode 100644 index 00000000000..1ad6d41327d Binary files /dev/null and b/src/lib/libraries/decks/steps/story-pick-sprite2.RTL.gif differ diff --git a/src/lib/libraries/decks/steps/story-say-something.am.png b/src/lib/libraries/decks/steps/story-say-something.am.png new file mode 100644 index 00000000000..4c4e80fa8bf Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.am.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.ar.png b/src/lib/libraries/decks/steps/story-say-something.ar.png new file mode 100644 index 00000000000..16a12383791 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.ar.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.en.gif b/src/lib/libraries/decks/steps/story-say-something.en.gif deleted file mode 100644 index b03434b0544..00000000000 Binary files a/src/lib/libraries/decks/steps/story-say-something.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/story-say-something.en.png b/src/lib/libraries/decks/steps/story-say-something.en.png new file mode 100644 index 00000000000..3491c6aa31d Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.en.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.fr.png b/src/lib/libraries/decks/steps/story-say-something.fr.png new file mode 100644 index 00000000000..78dd43efacf Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.fr.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.ja.png b/src/lib/libraries/decks/steps/story-say-something.ja.png new file mode 100644 index 00000000000..849f45e04ba Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.ja.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.pt_BR.png b/src/lib/libraries/decks/steps/story-say-something.pt_BR.png new file mode 100644 index 00000000000..c2eea8ea701 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.sw.png b/src/lib/libraries/decks/steps/story-say-something.sw.png new file mode 100644 index 00000000000..fd862c20f5f Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.sw.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.tr.png b/src/lib/libraries/decks/steps/story-say-something.tr.png new file mode 100644 index 00000000000..f2d548176ce Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.tr.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.uk.png b/src/lib/libraries/decks/steps/story-say-something.uk.png new file mode 100644 index 00000000000..bf71702e11d Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.uk.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.zh_CN.png b/src/lib/libraries/decks/steps/story-say-something.zh_CN.png new file mode 100644 index 00000000000..64df3052ab2 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.zh_TW.png b/src/lib/libraries/decks/steps/story-say-something.zh_TW.png new file mode 100644 index 00000000000..79ff9145b52 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/story-say-something.zu.png b/src/lib/libraries/decks/steps/story-say-something.zu.png new file mode 100644 index 00000000000..c07c401b8e6 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-say-something.zu.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.am.png b/src/lib/libraries/decks/steps/story-show-character.am.png new file mode 100644 index 00000000000..d7f38d03b03 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.am.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.ar.png b/src/lib/libraries/decks/steps/story-show-character.ar.png new file mode 100644 index 00000000000..1111fc67159 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.ar.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.en.gif b/src/lib/libraries/decks/steps/story-show-character.en.gif deleted file mode 100644 index 5932db358e1..00000000000 Binary files a/src/lib/libraries/decks/steps/story-show-character.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/story-show-character.en.png b/src/lib/libraries/decks/steps/story-show-character.en.png new file mode 100644 index 00000000000..f365427f0e7 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.en.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.fr.png b/src/lib/libraries/decks/steps/story-show-character.fr.png new file mode 100644 index 00000000000..3a74513feae Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.fr.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.ja.png b/src/lib/libraries/decks/steps/story-show-character.ja.png new file mode 100644 index 00000000000..0492446a2cb Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.ja.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.pt_BR.png b/src/lib/libraries/decks/steps/story-show-character.pt_BR.png new file mode 100644 index 00000000000..e7e13f7001e Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.sw.png b/src/lib/libraries/decks/steps/story-show-character.sw.png new file mode 100644 index 00000000000..a2abf4ef621 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.sw.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.tr.png b/src/lib/libraries/decks/steps/story-show-character.tr.png new file mode 100644 index 00000000000..47e5a8e530a Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.tr.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.uk.png b/src/lib/libraries/decks/steps/story-show-character.uk.png new file mode 100644 index 00000000000..9e49bbf256a Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.uk.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.zh_CN.png b/src/lib/libraries/decks/steps/story-show-character.zh_CN.png new file mode 100644 index 00000000000..bcfdc745dc7 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.zh_TW.png b/src/lib/libraries/decks/steps/story-show-character.zh_TW.png new file mode 100644 index 00000000000..f4bee3e477f Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/story-show-character.zu.png b/src/lib/libraries/decks/steps/story-show-character.zu.png new file mode 100644 index 00000000000..e809020a24f Binary files /dev/null and b/src/lib/libraries/decks/steps/story-show-character.zu.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.am.png b/src/lib/libraries/decks/steps/story-switch-backdrop.am.png new file mode 100644 index 00000000000..46a146d6c93 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.am.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.ar.png b/src/lib/libraries/decks/steps/story-switch-backdrop.ar.png new file mode 100644 index 00000000000..9ba6fce1722 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.ar.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.en.gif b/src/lib/libraries/decks/steps/story-switch-backdrop.en.gif deleted file mode 100644 index 1f46cd5927c..00000000000 Binary files a/src/lib/libraries/decks/steps/story-switch-backdrop.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.en.png b/src/lib/libraries/decks/steps/story-switch-backdrop.en.png new file mode 100644 index 00000000000..4cbfb278146 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.en.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.fr.png b/src/lib/libraries/decks/steps/story-switch-backdrop.fr.png new file mode 100644 index 00000000000..0b5645e87d5 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.fr.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.ja.png b/src/lib/libraries/decks/steps/story-switch-backdrop.ja.png new file mode 100644 index 00000000000..49d02eb49ab Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.ja.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.pt_BR.png b/src/lib/libraries/decks/steps/story-switch-backdrop.pt_BR.png new file mode 100644 index 00000000000..222ce5057e1 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.sw.png b/src/lib/libraries/decks/steps/story-switch-backdrop.sw.png new file mode 100644 index 00000000000..ab71f32acfa Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.sw.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.tr.png b/src/lib/libraries/decks/steps/story-switch-backdrop.tr.png new file mode 100644 index 00000000000..23cd7ecb758 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.tr.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.uk.png b/src/lib/libraries/decks/steps/story-switch-backdrop.uk.png new file mode 100644 index 00000000000..95c448885e7 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.uk.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.zh_CN.png b/src/lib/libraries/decks/steps/story-switch-backdrop.zh_CN.png new file mode 100644 index 00000000000..14906c4c2cd Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.zh_TW.png b/src/lib/libraries/decks/steps/story-switch-backdrop.zh_TW.png new file mode 100644 index 00000000000..7ff325d9679 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/story-switch-backdrop.zu.png b/src/lib/libraries/decks/steps/story-switch-backdrop.zu.png new file mode 100644 index 00000000000..180cff5d2e8 Binary files /dev/null and b/src/lib/libraries/decks/steps/story-switch-backdrop.zu.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.am.png b/src/lib/libraries/decks/steps/switch-costumes.am.png new file mode 100644 index 00000000000..a8b7291a5eb Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.am.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.ar.png b/src/lib/libraries/decks/steps/switch-costumes.ar.png new file mode 100644 index 00000000000..a6185c7f760 Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.ar.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.en.png b/src/lib/libraries/decks/steps/switch-costumes.en.png old mode 100755 new mode 100644 index ecbc4d41f48..33c57b72091 Binary files a/src/lib/libraries/decks/steps/switch-costumes.en.png and b/src/lib/libraries/decks/steps/switch-costumes.en.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.fr.png b/src/lib/libraries/decks/steps/switch-costumes.fr.png new file mode 100644 index 00000000000..fbb57d1470a Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.fr.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.ja.png b/src/lib/libraries/decks/steps/switch-costumes.ja.png new file mode 100644 index 00000000000..65db0bce90c Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.ja.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.pt_BR.png b/src/lib/libraries/decks/steps/switch-costumes.pt_BR.png new file mode 100644 index 00000000000..73ff9f2910b Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.sw.png b/src/lib/libraries/decks/steps/switch-costumes.sw.png new file mode 100644 index 00000000000..0e43d8ed246 Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.sw.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.tr.png b/src/lib/libraries/decks/steps/switch-costumes.tr.png new file mode 100644 index 00000000000..83df101d12b Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.tr.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.uk.png b/src/lib/libraries/decks/steps/switch-costumes.uk.png new file mode 100644 index 00000000000..3023d6d5dff Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.uk.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.zh_CN.png b/src/lib/libraries/decks/steps/switch-costumes.zh_CN.png new file mode 100644 index 00000000000..38901d9025d Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.zh_TW.png b/src/lib/libraries/decks/steps/switch-costumes.zh_TW.png new file mode 100644 index 00000000000..a00c0e130b0 Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/switch-costumes.zu.png b/src/lib/libraries/decks/steps/switch-costumes.zu.png new file mode 100644 index 00000000000..6bb35fcf65a Binary files /dev/null and b/src/lib/libraries/decks/steps/switch-costumes.zu.png differ diff --git a/src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.png b/src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.png rename to src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.LTR.png diff --git a/src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.RTL.png b/src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.RTL.png new file mode 100644 index 00000000000..6aa493c0316 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.RTL.png differ diff --git a/src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.en.png b/src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.en.png deleted file mode 100755 index e266486bc28..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-10-choose-third-backdrop.en.png and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.am.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.am.gif new file mode 100644 index 00000000000..4f6a2cf9686 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.am.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.ar.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.ar.gif new file mode 100644 index 00000000000..c45a427a046 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.ar.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.es.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.es.gif index 515cd29ccb2..2f5fcb66b4e 100644 Binary files a/src/lib/libraries/decks/steps/talking-11-choose-sound.es.gif and b/src/lib/libraries/decks/steps/talking-11-choose-sound.es.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.fr.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.fr.gif new file mode 100644 index 00000000000..88ce9e52847 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.fr.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.ja.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.ja.gif new file mode 100644 index 00000000000..8dad14467a8 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.ja.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.pt_BR.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.pt_BR.gif new file mode 100644 index 00000000000..15454ac2b35 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.sw.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.sw.gif new file mode 100644 index 00000000000..afeb3f0d328 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.sw.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.tr.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.tr.gif new file mode 100644 index 00000000000..d21b9fc0ee2 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.tr.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.uk.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.uk.gif new file mode 100644 index 00000000000..8846ae89d56 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.uk.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.zh_CN.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.zh_CN.gif new file mode 100644 index 00000000000..2927bc59b14 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.zh_TW.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.zh_TW.gif new file mode 100644 index 00000000000..d33ea0bf2bc Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/talking-11-choose-sound.zu.gif b/src/lib/libraries/decks/steps/talking-11-choose-sound.zu.gif new file mode 100644 index 00000000000..cf02f9a2990 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-11-choose-sound.zu.gif differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.am.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.am.png new file mode 100644 index 00000000000..e2636612f49 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.am.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.ar.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.ar.png new file mode 100644 index 00000000000..6c0d37051ae Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.ar.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.en.gif b/src/lib/libraries/decks/steps/talking-12-dance-moves.en.gif deleted file mode 100644 index 042935be889..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-12-dance-moves.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.en.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.en.png new file mode 100644 index 00000000000..543a9763e30 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.en.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.fr.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.fr.png new file mode 100644 index 00000000000..04abf9c1fa8 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.fr.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.ja.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.ja.png new file mode 100644 index 00000000000..78c608a460e Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.ja.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.pt_BR.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.pt_BR.png new file mode 100644 index 00000000000..ad64d552d5e Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.sw.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.sw.png new file mode 100644 index 00000000000..db4818041bc Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.sw.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.tr.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.tr.png new file mode 100644 index 00000000000..fe5b30aaf31 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.tr.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.uk.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.uk.png new file mode 100644 index 00000000000..8f5081276f7 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.uk.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.zh_CN.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.zh_CN.png new file mode 100644 index 00000000000..0f3c9b94d4f Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.zh_TW.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.zh_TW.png new file mode 100644 index 00000000000..45cdd1e83a0 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/talking-12-dance-moves.zu.png b/src/lib/libraries/decks/steps/talking-12-dance-moves.zu.png new file mode 100644 index 00000000000..2072cb7afc8 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-12-dance-moves.zu.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.am.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.am.png new file mode 100644 index 00000000000..d3418577e6e Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.am.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.ar.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.ar.png new file mode 100644 index 00000000000..02fc716c9a1 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.ar.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.en.gif b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.en.gif deleted file mode 100644 index 3e2505c626c..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.en.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.en.png new file mode 100644 index 00000000000..025e998b096 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.en.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.fr.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.fr.png new file mode 100644 index 00000000000..6ba94e8a8fb Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.fr.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.ja.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.ja.png new file mode 100644 index 00000000000..0dc48970f28 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.ja.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.pt_BR.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.pt_BR.png new file mode 100644 index 00000000000..af1b03786a6 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.sw.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.sw.png new file mode 100644 index 00000000000..8b4087566a7 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.sw.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.tr.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.tr.png new file mode 100644 index 00000000000..67b7eb9d452 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.tr.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.uk.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.uk.png new file mode 100644 index 00000000000..d0448ce50dd Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.uk.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zh_CN.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zh_CN.png new file mode 100644 index 00000000000..3a30024c1ce Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zh_TW.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zh_TW.png new file mode 100644 index 00000000000..089279bb382 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zu.png b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zu.png new file mode 100644 index 00000000000..2d47f1f1e66 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-13-ask-and-answer.zu.png differ diff --git a/src/lib/libraries/decks/steps/talking-2-choose-sprite.png b/src/lib/libraries/decks/steps/talking-2-choose-sprite.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/talking-2-choose-sprite.png rename to src/lib/libraries/decks/steps/talking-2-choose-sprite.LTR.png diff --git a/src/lib/libraries/decks/steps/talking-2-choose-sprite.RTL.png b/src/lib/libraries/decks/steps/talking-2-choose-sprite.RTL.png new file mode 100644 index 00000000000..ea9b57ce12a Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-2-choose-sprite.RTL.png differ diff --git a/src/lib/libraries/decks/steps/talking-2-choose-sprite.en.png b/src/lib/libraries/decks/steps/talking-2-choose-sprite.en.png deleted file mode 100755 index 9eeea61ad6a..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-2-choose-sprite.en.png and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.am.png b/src/lib/libraries/decks/steps/talking-3-say-something.am.png new file mode 100644 index 00000000000..43e381044a5 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.am.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.ar.png b/src/lib/libraries/decks/steps/talking-3-say-something.ar.png new file mode 100644 index 00000000000..0e0cabf70b3 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.ar.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.en.gif b/src/lib/libraries/decks/steps/talking-3-say-something.en.gif deleted file mode 100644 index 19a1735cad2..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-3-say-something.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.en.png b/src/lib/libraries/decks/steps/talking-3-say-something.en.png new file mode 100644 index 00000000000..a5bf4a95753 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.en.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.fr.png b/src/lib/libraries/decks/steps/talking-3-say-something.fr.png new file mode 100644 index 00000000000..831942b78d2 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.fr.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.ja.png b/src/lib/libraries/decks/steps/talking-3-say-something.ja.png new file mode 100644 index 00000000000..885ee1fbbb2 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.ja.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.pt_BR.png b/src/lib/libraries/decks/steps/talking-3-say-something.pt_BR.png new file mode 100644 index 00000000000..3d21e3538f7 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.sw.png b/src/lib/libraries/decks/steps/talking-3-say-something.sw.png new file mode 100644 index 00000000000..2d8debfb732 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.sw.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.tr.png b/src/lib/libraries/decks/steps/talking-3-say-something.tr.png new file mode 100644 index 00000000000..8fd24335f9b Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.tr.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.uk.png b/src/lib/libraries/decks/steps/talking-3-say-something.uk.png new file mode 100644 index 00000000000..c852ef82cab Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.uk.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.zh_CN.png b/src/lib/libraries/decks/steps/talking-3-say-something.zh_CN.png new file mode 100644 index 00000000000..2f206b834c7 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.zh_TW.png b/src/lib/libraries/decks/steps/talking-3-say-something.zh_TW.png new file mode 100644 index 00000000000..5a15c5170f5 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/talking-3-say-something.zu.png b/src/lib/libraries/decks/steps/talking-3-say-something.zu.png new file mode 100644 index 00000000000..157b8999b3c Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-3-say-something.zu.png differ diff --git a/src/lib/libraries/decks/steps/talking-4-choose-backdrop.png b/src/lib/libraries/decks/steps/talking-4-choose-backdrop.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/talking-4-choose-backdrop.png rename to src/lib/libraries/decks/steps/talking-4-choose-backdrop.LTR.png diff --git a/src/lib/libraries/decks/steps/talking-4-choose-backdrop.RTL.png b/src/lib/libraries/decks/steps/talking-4-choose-backdrop.RTL.png new file mode 100644 index 00000000000..0a53ca925f3 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-4-choose-backdrop.RTL.png differ diff --git a/src/lib/libraries/decks/steps/talking-4-choose-backdrop.en.png b/src/lib/libraries/decks/steps/talking-4-choose-backdrop.en.png deleted file mode 100755 index 6a2c8d72220..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-4-choose-backdrop.en.png and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.am.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.am.png new file mode 100644 index 00000000000..817b9582c6b Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.am.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.ar.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.ar.png new file mode 100644 index 00000000000..c9e6b71c294 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.ar.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.en.gif b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.en.gif deleted file mode 100644 index 6012a730323..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.en.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.en.png new file mode 100644 index 00000000000..740764e158e Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.en.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.fr.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.fr.png new file mode 100644 index 00000000000..c687fe090f1 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.fr.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.ja.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.ja.png new file mode 100644 index 00000000000..12908467b56 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.ja.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.pt_BR.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.pt_BR.png new file mode 100644 index 00000000000..f0cc5822003 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.sw.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.sw.png new file mode 100644 index 00000000000..29e3f47b5b1 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.sw.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.tr.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.tr.png new file mode 100644 index 00000000000..c3065d05173 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.tr.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.uk.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.uk.png new file mode 100644 index 00000000000..65602f8ca33 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.uk.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zh_CN.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zh_CN.png new file mode 100644 index 00000000000..743efbe9cca Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zh_TW.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zh_TW.png new file mode 100644 index 00000000000..70e8164dd31 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zu.png b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zu.png new file mode 100644 index 00000000000..fde3c04aba9 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-5-switch-backdrop.zu.png differ diff --git a/src/lib/libraries/decks/steps/talking-6-choose-another-sprite.png b/src/lib/libraries/decks/steps/talking-6-choose-another-sprite.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/talking-6-choose-another-sprite.png rename to src/lib/libraries/decks/steps/talking-6-choose-another-sprite.LTR.png diff --git a/src/lib/libraries/decks/steps/talking-6-choose-another-sprite.RTL.png b/src/lib/libraries/decks/steps/talking-6-choose-another-sprite.RTL.png new file mode 100644 index 00000000000..69cefe90fba Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-6-choose-another-sprite.RTL.png differ diff --git a/src/lib/libraries/decks/steps/talking-6-choose-another-sprite.en.png b/src/lib/libraries/decks/steps/talking-6-choose-another-sprite.en.png deleted file mode 100755 index cf01d27558a..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-6-choose-another-sprite.en.png and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.am.png b/src/lib/libraries/decks/steps/talking-7-move-around.am.png new file mode 100644 index 00000000000..a16b1383345 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.am.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.ar.png b/src/lib/libraries/decks/steps/talking-7-move-around.ar.png new file mode 100644 index 00000000000..3a222b09c83 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.ar.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.en.gif b/src/lib/libraries/decks/steps/talking-7-move-around.en.gif deleted file mode 100644 index 9d23c96b7ec..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-7-move-around.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.en.png b/src/lib/libraries/decks/steps/talking-7-move-around.en.png new file mode 100644 index 00000000000..1435796f94b Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.en.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.fr.png b/src/lib/libraries/decks/steps/talking-7-move-around.fr.png new file mode 100644 index 00000000000..111a9b5fdff Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.fr.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.ja.png b/src/lib/libraries/decks/steps/talking-7-move-around.ja.png new file mode 100644 index 00000000000..573d5d2882c Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.ja.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.pt_BR.png b/src/lib/libraries/decks/steps/talking-7-move-around.pt_BR.png new file mode 100644 index 00000000000..4ffacb8d259 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.sw.png b/src/lib/libraries/decks/steps/talking-7-move-around.sw.png new file mode 100644 index 00000000000..18ab37ac090 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.sw.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.tr.png b/src/lib/libraries/decks/steps/talking-7-move-around.tr.png new file mode 100644 index 00000000000..5c2bc751211 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.tr.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.uk.png b/src/lib/libraries/decks/steps/talking-7-move-around.uk.png new file mode 100644 index 00000000000..2688fa41ff4 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.uk.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.zh_CN.png b/src/lib/libraries/decks/steps/talking-7-move-around.zh_CN.png new file mode 100644 index 00000000000..9aae545755d Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.zh_TW.png b/src/lib/libraries/decks/steps/talking-7-move-around.zh_TW.png new file mode 100644 index 00000000000..aaea650b186 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/talking-7-move-around.zu.png b/src/lib/libraries/decks/steps/talking-7-move-around.zu.png new file mode 100644 index 00000000000..eb5c86d0254 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-7-move-around.zu.png differ diff --git a/src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.png b/src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.LTR.png similarity index 100% rename from src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.png rename to src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.LTR.png diff --git a/src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.RTL.png b/src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.RTL.png new file mode 100644 index 00000000000..fcb2d74c8a2 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.RTL.png differ diff --git a/src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.en.png b/src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.en.png deleted file mode 100755 index 607d8672c6b..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-8-choose-another-backdrop.en.png and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.am.png b/src/lib/libraries/decks/steps/talking-9-animate.am.png new file mode 100644 index 00000000000..cac7a829fd9 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.am.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.ar.png b/src/lib/libraries/decks/steps/talking-9-animate.ar.png new file mode 100644 index 00000000000..12e08831a80 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.ar.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.en.gif b/src/lib/libraries/decks/steps/talking-9-animate.en.gif deleted file mode 100644 index 5e937abd757..00000000000 Binary files a/src/lib/libraries/decks/steps/talking-9-animate.en.gif and /dev/null differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.en.png b/src/lib/libraries/decks/steps/talking-9-animate.en.png new file mode 100644 index 00000000000..a092777da27 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.en.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.fr.png b/src/lib/libraries/decks/steps/talking-9-animate.fr.png new file mode 100644 index 00000000000..ce34fc88290 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.fr.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.ja.png b/src/lib/libraries/decks/steps/talking-9-animate.ja.png new file mode 100644 index 00000000000..0bbecdc6f51 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.ja.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.pt_BR.png b/src/lib/libraries/decks/steps/talking-9-animate.pt_BR.png new file mode 100644 index 00000000000..7001ec3c343 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.sw.png b/src/lib/libraries/decks/steps/talking-9-animate.sw.png new file mode 100644 index 00000000000..f338b50a5e0 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.sw.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.tr.png b/src/lib/libraries/decks/steps/talking-9-animate.tr.png new file mode 100644 index 00000000000..eef0159763a Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.tr.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.uk.png b/src/lib/libraries/decks/steps/talking-9-animate.uk.png new file mode 100644 index 00000000000..489338cbede Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.uk.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.zh_CN.png b/src/lib/libraries/decks/steps/talking-9-animate.zh_CN.png new file mode 100644 index 00000000000..f29f7de8d74 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.zh_TW.png b/src/lib/libraries/decks/steps/talking-9-animate.zh_TW.png new file mode 100644 index 00000000000..30b80ea5323 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/talking-9-animate.zu.png b/src/lib/libraries/decks/steps/talking-9-animate.zu.png new file mode 100644 index 00000000000..dc6f9cb16b3 Binary files /dev/null and b/src/lib/libraries/decks/steps/talking-9-animate.zu.png differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.am.gif b/src/lib/libraries/decks/steps/video-add-extension.am.gif new file mode 100644 index 00000000000..ca6b85e0481 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.am.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.ar.gif b/src/lib/libraries/decks/steps/video-add-extension.ar.gif new file mode 100644 index 00000000000..c519b7f6201 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.ar.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.fr.gif b/src/lib/libraries/decks/steps/video-add-extension.fr.gif new file mode 100644 index 00000000000..483994e4147 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.fr.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.ja.gif b/src/lib/libraries/decks/steps/video-add-extension.ja.gif new file mode 100644 index 00000000000..48a4f06492a Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.ja.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.pt_BR.gif b/src/lib/libraries/decks/steps/video-add-extension.pt_BR.gif new file mode 100644 index 00000000000..b695d7c2012 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.pt_BR.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.sw.gif b/src/lib/libraries/decks/steps/video-add-extension.sw.gif new file mode 100644 index 00000000000..5cc9b5ee06a Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.sw.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.tr.gif b/src/lib/libraries/decks/steps/video-add-extension.tr.gif new file mode 100644 index 00000000000..353348299a2 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.tr.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.uk.gif b/src/lib/libraries/decks/steps/video-add-extension.uk.gif new file mode 100644 index 00000000000..40e345c4ae0 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.uk.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.zh_CN.gif b/src/lib/libraries/decks/steps/video-add-extension.zh_CN.gif new file mode 100644 index 00000000000..119576b4133 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.zh_CN.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.zh_TW.gif b/src/lib/libraries/decks/steps/video-add-extension.zh_TW.gif new file mode 100644 index 00000000000..50991da1114 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.zh_TW.gif differ diff --git a/src/lib/libraries/decks/steps/video-add-extension.zu.gif b/src/lib/libraries/decks/steps/video-add-extension.zu.gif new file mode 100644 index 00000000000..cee1375f58d Binary files /dev/null and b/src/lib/libraries/decks/steps/video-add-extension.zu.gif differ diff --git a/src/lib/libraries/decks/steps/video-animate.am.png b/src/lib/libraries/decks/steps/video-animate.am.png new file mode 100644 index 00000000000..ae2d4861cef Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.am.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.ar.png b/src/lib/libraries/decks/steps/video-animate.ar.png new file mode 100644 index 00000000000..b3dbe983bde Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.ar.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.en.png b/src/lib/libraries/decks/steps/video-animate.en.png old mode 100755 new mode 100644 index 017836ebc5a..0be07d761bf Binary files a/src/lib/libraries/decks/steps/video-animate.en.png and b/src/lib/libraries/decks/steps/video-animate.en.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.fr.png b/src/lib/libraries/decks/steps/video-animate.fr.png new file mode 100644 index 00000000000..82422f8aa81 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.fr.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.ja.png b/src/lib/libraries/decks/steps/video-animate.ja.png new file mode 100644 index 00000000000..491cffa0317 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.ja.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.pt_BR.png b/src/lib/libraries/decks/steps/video-animate.pt_BR.png new file mode 100644 index 00000000000..c058e052727 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.sw.png b/src/lib/libraries/decks/steps/video-animate.sw.png new file mode 100644 index 00000000000..409992943f5 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.sw.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.tr.png b/src/lib/libraries/decks/steps/video-animate.tr.png new file mode 100644 index 00000000000..26bd047c7b9 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.tr.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.uk.png b/src/lib/libraries/decks/steps/video-animate.uk.png new file mode 100644 index 00000000000..768c4e976aa Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.uk.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.zh_CN.png b/src/lib/libraries/decks/steps/video-animate.zh_CN.png new file mode 100644 index 00000000000..208b87933c7 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.zh_TW.png b/src/lib/libraries/decks/steps/video-animate.zh_TW.png new file mode 100644 index 00000000000..c79ba6af042 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/video-animate.zu.png b/src/lib/libraries/decks/steps/video-animate.zu.png new file mode 100644 index 00000000000..7a9627cf18a Binary files /dev/null and b/src/lib/libraries/decks/steps/video-animate.zu.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.am.png b/src/lib/libraries/decks/steps/video-pet.am.png new file mode 100644 index 00000000000..d06b41ad1dd Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.am.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.ar.png b/src/lib/libraries/decks/steps/video-pet.ar.png new file mode 100644 index 00000000000..4460f60b5d1 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.ar.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.en.png b/src/lib/libraries/decks/steps/video-pet.en.png old mode 100755 new mode 100644 index 82aba8e95b1..4ace622b136 Binary files a/src/lib/libraries/decks/steps/video-pet.en.png and b/src/lib/libraries/decks/steps/video-pet.en.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.fr.png b/src/lib/libraries/decks/steps/video-pet.fr.png new file mode 100644 index 00000000000..cde5fe37d6a Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.fr.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.ja.png b/src/lib/libraries/decks/steps/video-pet.ja.png new file mode 100644 index 00000000000..13c34804489 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.ja.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.pt_BR.png b/src/lib/libraries/decks/steps/video-pet.pt_BR.png new file mode 100644 index 00000000000..ea9fb9fae40 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.sw.png b/src/lib/libraries/decks/steps/video-pet.sw.png new file mode 100644 index 00000000000..76b1718395b Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.sw.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.tr.png b/src/lib/libraries/decks/steps/video-pet.tr.png new file mode 100644 index 00000000000..f9579e4a8a9 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.tr.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.uk.png b/src/lib/libraries/decks/steps/video-pet.uk.png new file mode 100644 index 00000000000..bbedfd10104 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.uk.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.zh_CN.png b/src/lib/libraries/decks/steps/video-pet.zh_CN.png new file mode 100644 index 00000000000..d888cebec6f Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.zh_TW.png b/src/lib/libraries/decks/steps/video-pet.zh_TW.png new file mode 100644 index 00000000000..5b19837cb4f Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/video-pet.zu.png b/src/lib/libraries/decks/steps/video-pet.zu.png new file mode 100644 index 00000000000..0c2e154a789 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pet.zu.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.am.png b/src/lib/libraries/decks/steps/video-pop.am.png new file mode 100644 index 00000000000..22d029edc3f Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.am.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.ar.png b/src/lib/libraries/decks/steps/video-pop.ar.png new file mode 100644 index 00000000000..c31a68bb070 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.ar.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.en.png b/src/lib/libraries/decks/steps/video-pop.en.png old mode 100755 new mode 100644 index 3e6b041f273..151edb876bf Binary files a/src/lib/libraries/decks/steps/video-pop.en.png and b/src/lib/libraries/decks/steps/video-pop.en.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.fr.png b/src/lib/libraries/decks/steps/video-pop.fr.png new file mode 100644 index 00000000000..6914e242820 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.fr.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.ja.png b/src/lib/libraries/decks/steps/video-pop.ja.png new file mode 100644 index 00000000000..d1016870b48 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.ja.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.pt_BR.png b/src/lib/libraries/decks/steps/video-pop.pt_BR.png new file mode 100644 index 00000000000..d8c7e5565c0 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.pt_BR.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.sw.png b/src/lib/libraries/decks/steps/video-pop.sw.png new file mode 100644 index 00000000000..3bec3666318 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.sw.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.tr.png b/src/lib/libraries/decks/steps/video-pop.tr.png new file mode 100644 index 00000000000..de672774ffd Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.tr.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.uk.png b/src/lib/libraries/decks/steps/video-pop.uk.png new file mode 100644 index 00000000000..471bd1eab64 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.uk.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.zh_CN.png b/src/lib/libraries/decks/steps/video-pop.zh_CN.png new file mode 100644 index 00000000000..95aee699de4 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.zh_CN.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.zh_TW.png b/src/lib/libraries/decks/steps/video-pop.zh_TW.png new file mode 100644 index 00000000000..4ab8232d379 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.zh_TW.png differ diff --git a/src/lib/libraries/decks/steps/video-pop.zu.png b/src/lib/libraries/decks/steps/video-pop.zu.png new file mode 100644 index 00000000000..73d3fb865b9 Binary files /dev/null and b/src/lib/libraries/decks/steps/video-pop.zu.png differ diff --git a/src/lib/libraries/decks/sw-steps.js b/src/lib/libraries/decks/sw-steps.js new file mode 100644 index 00000000000..6def7e3be49 --- /dev/null +++ b/src/lib/libraries/decks/sw-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.sw.gif'; +import introSay from './steps/intro-2-say.sw.gif'; +import introGreenFlag from './steps/intro-3-green-flag.sw.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.sw.gif'; +import speechSaySomething from './steps/speech-say-something.sw.png'; +import speechSetVoice from './steps/speech-set-voice.sw.png'; +import speechMoveAround from './steps/speech-move-around.sw.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.sw.png'; +import speechChangeColor from './steps/speech-change-color.sw.png'; +import speechSpin from './steps/speech-spin.sw.png'; +import speechGrowShrink from './steps/speech-grow-shrink.sw.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.sw.png'; +import cnGlide from './steps/cn-glide.sw.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.sw.png'; +import cnVariable from './steps/add-variable.sw.gif'; +import cnScore from './steps/cn-score.sw.png'; +import cnBackdrop from './steps/cn-backdrop.sw.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.sw.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.sw.png'; +import nameSpin from './steps/name-spin.sw.png'; +import nameGrow from './steps/name-grow.sw.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.sw.png'; +import musicMakeSong from './steps/music-make-song.sw.png'; +import musicMakeBeat from './steps/music-make-beat.sw.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.sw.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.sw.png'; +import chaseGameUpDown from './steps/chase-game-up-down.sw.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.sw.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.sw.png'; +import chaseGameAddVariable from './steps/add-variable.sw.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.sw.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.sw.png'; +import popGameAddScore from './steps/add-variable.sw.gif'; +import popGameChangeScore from './steps/pop-game-change-score.sw.png'; +import popGameRandomPosition from './steps/pop-game-random-position.sw.png'; +import popGameChangeColor from './steps/pop-game-change-color.sw.png'; +import popGameResetScore from './steps/pop-game-reset-score.sw.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.sw.png'; +import animateCharAddSound from './steps/animate-char-add-sound.sw.png'; +import animateCharTalk from './steps/animate-char-talk.sw.png'; +import animateCharMove from './steps/animate-char-move.sw.png'; +import animateCharJump from './steps/animate-char-jump.sw.png'; +import animateCharChangeColor from './steps/animate-char-change-color.sw.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.sw.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.sw.gif'; +import storyConversation from './steps/story-conversation.sw.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.sw.png'; +import storyHideCharacter from './steps/story-hide-character.sw.png'; +import storyShowCharacter from './steps/story-show-character.sw.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.sw.gif'; +import videoPet from './steps/video-pet.sw.png'; +import videoAnimate from './steps/video-animate.sw.png'; +import videoPop from './steps/video-pop.sw.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.sw.png'; +import flyMoveArrows from './steps/fly-make-interactive.sw.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.sw.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.sw.gif'; +import flyKeepScore from './steps/fly-keep-score.sw.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.sw.png'; +import flySwitchLooks from './steps/fly-switch-costume.sw.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.sw.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.sw.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.sw.png'; +import pongAddAScore from './steps/add-variable.sw.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.sw.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.sw.png'; +import pongResetScore from './steps/pong-reset-score.sw.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.sw.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.sw.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.sw.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.sw.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.sw.png'; +import imagineUpDown from './steps/imagine-up-down.sw.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.sw.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.sw.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.sw.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.sw.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.sw.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.sw.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.sw.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.sw.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.sw.png'; + +// Change Size +import changeSize from './steps/change-size.sw.png'; + +// Spin +import spinTurn from './steps/spin-turn.sw.png'; +import spinPointInDirection from './steps/spin-point-in-direction.sw.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.sw.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.sw.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.sw.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.sw.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.sw.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.sw.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.sw.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.sw.png'; +import glideAroundPoint from './steps/glide-around-point.sw.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.sw.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.sw.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.sw.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.sw.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.sw.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.sw.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.sw.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.sw.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.sw.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.sw.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.sw.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.sw.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.sw.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.sw.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.sw.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.sw.png'; + +const swImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {swImages}; diff --git a/src/lib/libraries/decks/thumbnails/getting-started-asl.png b/src/lib/libraries/decks/thumbnails/getting-started-asl.png new file mode 100644 index 00000000000..c6503e92dcd Binary files /dev/null and b/src/lib/libraries/decks/thumbnails/getting-started-asl.png differ diff --git a/src/lib/libraries/decks/tr-steps.js b/src/lib/libraries/decks/tr-steps.js new file mode 100644 index 00000000000..ee62612fd32 --- /dev/null +++ b/src/lib/libraries/decks/tr-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.tr.gif'; +import introSay from './steps/intro-2-say.tr.gif'; +import introGreenFlag from './steps/intro-3-green-flag.tr.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.tr.gif'; +import speechSaySomething from './steps/speech-say-something.tr.png'; +import speechSetVoice from './steps/speech-set-voice.tr.png'; +import speechMoveAround from './steps/speech-move-around.tr.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.tr.png'; +import speechChangeColor from './steps/speech-change-color.tr.png'; +import speechSpin from './steps/speech-spin.tr.png'; +import speechGrowShrink from './steps/speech-grow-shrink.tr.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.tr.png'; +import cnGlide from './steps/cn-glide.tr.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.tr.png'; +import cnVariable from './steps/add-variable.tr.gif'; +import cnScore from './steps/cn-score.tr.png'; +import cnBackdrop from './steps/cn-backdrop.tr.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.tr.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.tr.png'; +import nameSpin from './steps/name-spin.tr.png'; +import nameGrow from './steps/name-grow.tr.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.tr.png'; +import musicMakeSong from './steps/music-make-song.tr.png'; +import musicMakeBeat from './steps/music-make-beat.tr.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.tr.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.tr.png'; +import chaseGameUpDown from './steps/chase-game-up-down.tr.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.tr.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.tr.png'; +import chaseGameAddVariable from './steps/add-variable.tr.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.tr.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.tr.png'; +import popGameAddScore from './steps/add-variable.tr.gif'; +import popGameChangeScore from './steps/pop-game-change-score.tr.png'; +import popGameRandomPosition from './steps/pop-game-random-position.tr.png'; +import popGameChangeColor from './steps/pop-game-change-color.tr.png'; +import popGameResetScore from './steps/pop-game-reset-score.tr.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.tr.png'; +import animateCharAddSound from './steps/animate-char-add-sound.tr.png'; +import animateCharTalk from './steps/animate-char-talk.tr.png'; +import animateCharMove from './steps/animate-char-move.tr.png'; +import animateCharJump from './steps/animate-char-jump.tr.png'; +import animateCharChangeColor from './steps/animate-char-change-color.tr.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.tr.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.tr.gif'; +import storyConversation from './steps/story-conversation.tr.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.tr.png'; +import storyHideCharacter from './steps/story-hide-character.tr.png'; +import storyShowCharacter from './steps/story-show-character.tr.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.tr.gif'; +import videoPet from './steps/video-pet.tr.png'; +import videoAnimate from './steps/video-animate.tr.png'; +import videoPop from './steps/video-pop.tr.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.tr.png'; +import flyMoveArrows from './steps/fly-make-interactive.tr.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.tr.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.tr.gif'; +import flyKeepScore from './steps/fly-keep-score.tr.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.tr.png'; +import flySwitchLooks from './steps/fly-switch-costume.tr.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.tr.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.tr.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.tr.png'; +import pongAddAScore from './steps/add-variable.tr.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.tr.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.tr.png'; +import pongResetScore from './steps/pong-reset-score.tr.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.tr.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.tr.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.tr.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.tr.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.tr.png'; +import imagineUpDown from './steps/imagine-up-down.tr.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.tr.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.tr.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.tr.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.tr.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.tr.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.tr.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.tr.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.tr.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.tr.png'; + +// Change Size +import changeSize from './steps/change-size.tr.png'; + +// Spin +import spinTurn from './steps/spin-turn.tr.png'; +import spinPointInDirection from './steps/spin-point-in-direction.tr.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.tr.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.tr.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.tr.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.tr.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.tr.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.tr.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.tr.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.tr.png'; +import glideAroundPoint from './steps/glide-around-point.tr.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.tr.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.tr.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.tr.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.tr.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.tr.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.tr.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.tr.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.tr.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.tr.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.tr.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.tr.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.tr.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.tr.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.tr.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.tr.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.tr.png'; + +const trImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {trImages}; diff --git a/src/lib/libraries/decks/translate-image.js b/src/lib/libraries/decks/translate-image.js index 44a5ec343e3..e8775620b47 100644 --- a/src/lib/libraries/decks/translate-image.js +++ b/src/lib/libraries/decks/translate-image.js @@ -12,13 +12,70 @@ const loadSpanish = () => import(/* webpackChunkName: "es-steps" */ './es-steps.js') .then(({esImages: imageData}) => imageData); +const loadSimplifiedChinese = () => + import(/* webpackChunkName: "zh_CN-steps" */ './zh_CN-steps.js') + .then(({zhCnImages: imageData}) => imageData); + +const loadTraditionalChinese = () => + import(/* webpackChunkName: "zh_TW-steps" */ './zh_TW-steps.js') + .then(({zhTwImages: imageData}) => imageData); + +const loadTurkish = () => + import(/* webpackChunkName: "tr-steps" */ './tr-steps.js') + .then(({trImages: imageData}) => imageData); + +const loadFrench = () => + import(/* webpackChunkName: "fr-steps" */ './fr-steps.js') + .then(({frImages: imageData}) => imageData); + +const loadPortugueseBrazilian = () => + import(/* webpackChunkName: "pt_BR-steps" */ './pt_BR-steps.js') + .then(({ptBrImages: imageData}) => imageData); + +const loadArabic = () => + import(/* webpackChunkName: "ar-steps" */ './ar-steps.js') + .then(({arImages: imageData}) => imageData); + +const loadAmharic = () => + import(/* webpackChunkName: "am-steps" */ './am-steps.js') + .then(({amImages: imageData}) => imageData); + +const loadKiswahili = () => + import(/* webpackChunkName: "sw-steps" */ './sw-steps.js') + .then(({swImages: imageData}) => imageData); + +const loadIsiZulu = () => + import(/* webpackChunkName: "zu-steps" */ './zu-steps.js') + .then(({zuImages: imageData}) => imageData); + +const loadUkrainian = () => + import(/* webpackChunkName: "uk-steps" */ './uk-steps.js') + .then(({ukImages: imageData}) => imageData); + +const loadJapanese = () => + import(/* webpackChunkName: "ja-steps" */ './ja-steps.js') + .then(({jaImages: imageData}) => imageData); + const translations = { 'es': () => loadSpanish(), - 'es-419': () => loadSpanish() + 'es-419': () => loadSpanish(), + 'zh-cn': () => loadSimplifiedChinese(), + 'zh-tw': () => loadTraditionalChinese(), + 'tr': () => loadTurkish(), + 'fr': () => loadFrench(), + 'pt-br': () => loadPortugueseBrazilian(), + 'pt': () => loadPortugueseBrazilian(), + 'ar': () => loadArabic(), + 'am': () => loadAmharic(), + 'sw': () => loadKiswahili(), + 'zu': () => loadIsiZulu(), + 'uk': () => loadUkrainian(), + 'ja': () => loadJapanese(), + 'ja-Hira': () => loadJapanese() }; const loadImageData = locale => { - if (translations.hasOwnProperty(locale)) { + if (Object.prototype.hasOwnProperty.call(translations, locale)) { translations[locale]() .then(newImages => { savedImages = newImages; @@ -34,7 +91,7 @@ const loadImageData = locale => { * @return {string} image */ const translateImage = (imageId, locale) => { - if (locale !== savedLocale || !savedImages.hasOwnProperty(imageId)) { + if (locale !== savedLocale || !Object.prototype.hasOwnProperty.call(savedImages, imageId)) { return defaultImages[imageId]; } return savedImages[imageId]; diff --git a/src/lib/libraries/decks/translate-video.js b/src/lib/libraries/decks/translate-video.js index 8b58c08da7d..15068ee71c4 100644 --- a/src/lib/libraries/decks/translate-video.js +++ b/src/lib/libraries/decks/translate-video.js @@ -11,10 +11,41 @@ const videos = { 'pt': 'ngdfp8xg4x', 'pt-br': 'ngdfp8xg4x', 'ja': 'v2c2f3y2sc', - 'ja-Hira': 'v2c2f3y2sc' + 'ja-Hira': 'v2c2f3y2sc', + 'es': 'htk2m9o65l', + 'es-419': 'htk2m9o65l', + 'sw': 'fd4bn2nli5', + 'fr': 'dt015ouls8', + 'am': 'e06wlsebqy', + 'zu': 'st2x0emdx7', + 'uk': '1ith4m4f8u', + 'ar': 's53zuo93o7', + 'ca': '4tb26s73x7', + 'zh-cn': '9i01bspmyx', + 'zh-tw': 'hr374tlx9t', + 'da': 'z9bns5dgiy', + 'nl': '9wleha9s1e', + 'de': '9lljmutx8m', + 'ht': '7pyjz25tvf', + 'he': '5rusa2qb6q', + 'id': 'zpzl7nqcyf', + 'km': 'zhq0596ewo', + 'ko': '9u7cr4pwsc', + 'ku': 'jzwwqih2im', + 'fa': 'c15wlv18tt', + 'pl': 'ijhn36nicy', + 'ru': '437odiewml', + 'th': 'zy7suscqn2', + 'tr': 'p3g8ek3cuh', + 'vi': 'fetjky76s4' + }, + 'intro-getting-started-ASL': { + en: 'i2g46ikddf' }, 'animate-a-name': { 'en': 'pyur30ho05', + 'ar': 'bz5vgtroxs', + 'fr': 'lwb0ro4oly', 'it': 'c8zcrk6w09', 'pt': 't49tfrukyf', 'pt-br': 't49tfrukyf', @@ -23,6 +54,8 @@ const videos = { }, 'Make-Music': { 'en': 'ir0j8ljsgm', + 'ar': 'gqlmfqx1g4', + 'fr': 't4dw6fn2an', 'it': '8nm1v1m9zx', 'pt': '9v4zl8504z', 'pt-br': '9v4zl8504z', @@ -31,6 +64,8 @@ const videos = { }, 'Make-A-Game': { 'en': '5rp47ys13g', + 'ar': 'dx5pqpaqsy', + 'fr': 'pntfdyyqqk', 'it': 'vrs1e38944', 'pt': 'rjst5ng61s', 'pt-br': 'rjst5ng61s', @@ -39,6 +74,8 @@ const videos = { }, 'Chase-Game': { 'en': 'kusyx9thl5', + 'ar': 'qapon34gsw', + 'fr': '0nszrbo4dt', 'it': '899b2jmjlu', 'pt': 'rw6kr9e37n', 'pt-br': 'rw6kr9e37n', @@ -47,6 +84,8 @@ const videos = { }, 'add-a-backdrop': { 'en': 'nict6zdzlx', + 'ar': 'ompj13t33k', + 'fr': 'nwyngs74xw', 'it': 'vrrfpm5grh', 'pt': 'wq7sm038pq', 'pt-br': 'wq7sm038pq', @@ -55,6 +94,8 @@ const videos = { }, 'change-size': { 'en': 'p8va85hh61', + 'ar': 'acceih3x6k', + 'fr': 'rrowyylh2i', 'it': '1xb1jztsvr', 'pt': '1ad1ip3ly7', 'pt-br': '1ad1ip3ly7', @@ -63,12 +104,16 @@ const videos = { }, 'glide-around': { 'en': 'sh9j978rg8', + 'ar': '8c4b4jb2se', + 'fr': 'f73cjf5zzf', 'it': 'nvdhpgiebe', 'ja': 'jsat4vhu48', 'ja-Hira': 'jsat4vhu48' }, 'record-a-sound': { 'en': 'ulzl1fbzny', + 'ar': 'vx60cuwzo9', + 'fr': 'ep92lqlp7p', 'it': 'ncr9lqk7bt', 'pt': 'aavagpvh5w', 'pt-br': 'aavagpvh5w', @@ -77,6 +122,8 @@ const videos = { }, 'spin-video': { 'en': '07fed5hhpv', + 'ar': '5hl1dq3byk', + 'fr': 'cqzi6cr872', 'it': 'obmrphhobt', 'pt': 'jxqksu6zcw', 'pt-br': 'jxqksu6zcw', @@ -85,6 +132,8 @@ const videos = { }, 'hide-and-show': { 'en': 'g479ahobo9', + 'ar': 'r25otzahzi', + 'fr': 'o1h6llwd0e', 'it': 'v0vbx3l5uk', 'pt': 'ibtmwb58y8', 'pt-br': 'ibtmwb58y8', @@ -93,6 +142,8 @@ const videos = { }, 'switch-costume': { 'en': '1ocp6a1ejn', + 'ar': '2tz31cmeaq', + 'fr': '2s9sagktio', 'it': 'nty4xjtqcj', 'pt': 'pnlmmv2hs7', 'pt-br': 'pnlmmv2hs7', @@ -101,6 +152,8 @@ const videos = { }, 'move-around-with-arrow-keys': { 'en': 'yetrmk4iuu', + 'ar': '270xh1zb1s', + 'fr': '69tc5nvykx', 'it': 'jse0g0uddw', 'pt': 'erv6eff78p', 'pt-br': 'erv6eff78p', @@ -109,6 +162,8 @@ const videos = { }, 'add-effects': { 'en': '3jvl8zgjo2', + 'ar': 'fp4y3aumie', + 'fr': 'nyutlj812e', 'it': 'q3cjjyfju9', 'pt': 'dz6jzpf7hm', 'pt-br': 'dz6jzpf7hm', @@ -140,8 +195,8 @@ const videos = { */ const translateVideo = (videoId, locale) => { // if the videoId is not recognized in the videos object, assume it's already a video id on wistia - if (!videos.hasOwnProperty(videoId)) return videoId; - if (videos[videoId].hasOwnProperty(locale)) { + if (!Object.prototype.hasOwnProperty.call(videos, videoId)) return videoId; + if (Object.prototype.hasOwnProperty.call(videos[videoId], locale)) { return videos[videoId][locale]; } return videos[videoId].en; diff --git a/src/lib/libraries/decks/uk-steps.js b/src/lib/libraries/decks/uk-steps.js new file mode 100644 index 00000000000..914973689d1 --- /dev/null +++ b/src/lib/libraries/decks/uk-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.uk.gif'; +import introSay from './steps/intro-2-say.uk.gif'; +import introGreenFlag from './steps/intro-3-green-flag.uk.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.uk.gif'; +import speechSaySomething from './steps/speech-say-something.uk.png'; +import speechSetVoice from './steps/speech-set-voice.uk.png'; +import speechMoveAround from './steps/speech-move-around.uk.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.uk.png'; +import speechChangeColor from './steps/speech-change-color.uk.png'; +import speechSpin from './steps/speech-spin.uk.png'; +import speechGrowShrink from './steps/speech-grow-shrink.uk.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.uk.png'; +import cnGlide from './steps/cn-glide.uk.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.uk.png'; +import cnVariable from './steps/add-variable.uk.gif'; +import cnScore from './steps/cn-score.uk.png'; +import cnBackdrop from './steps/cn-backdrop.uk.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.uk.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.uk.png'; +import nameSpin from './steps/name-spin.uk.png'; +import nameGrow from './steps/name-grow.uk.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.uk.png'; +import musicMakeSong from './steps/music-make-song.uk.png'; +import musicMakeBeat from './steps/music-make-beat.uk.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.uk.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.uk.png'; +import chaseGameUpDown from './steps/chase-game-up-down.uk.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.uk.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.uk.png'; +import chaseGameAddVariable from './steps/add-variable.uk.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.uk.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.uk.png'; +import popGameAddScore from './steps/add-variable.uk.gif'; +import popGameChangeScore from './steps/pop-game-change-score.uk.png'; +import popGameRandomPosition from './steps/pop-game-random-position.uk.png'; +import popGameChangeColor from './steps/pop-game-change-color.uk.png'; +import popGameResetScore from './steps/pop-game-reset-score.uk.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.uk.png'; +import animateCharAddSound from './steps/animate-char-add-sound.uk.png'; +import animateCharTalk from './steps/animate-char-talk.uk.png'; +import animateCharMove from './steps/animate-char-move.uk.png'; +import animateCharJump from './steps/animate-char-jump.uk.png'; +import animateCharChangeColor from './steps/animate-char-change-color.uk.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.uk.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.uk.gif'; +import storyConversation from './steps/story-conversation.uk.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.uk.png'; +import storyHideCharacter from './steps/story-hide-character.uk.png'; +import storyShowCharacter from './steps/story-show-character.uk.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.uk.gif'; +import videoPet from './steps/video-pet.uk.png'; +import videoAnimate from './steps/video-animate.uk.png'; +import videoPop from './steps/video-pop.uk.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.uk.png'; +import flyMoveArrows from './steps/fly-make-interactive.uk.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.uk.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.uk.gif'; +import flyKeepScore from './steps/fly-keep-score.uk.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.uk.png'; +import flySwitchLooks from './steps/fly-switch-costume.uk.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.uk.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.uk.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.uk.png'; +import pongAddAScore from './steps/add-variable.uk.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.uk.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.uk.png'; +import pongResetScore from './steps/pong-reset-score.uk.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.uk.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.uk.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.uk.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.uk.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.uk.png'; +import imagineUpDown from './steps/imagine-up-down.uk.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.uk.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.uk.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.uk.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.uk.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.uk.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.uk.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.uk.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.uk.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.uk.png'; + +// Change Size +import changeSize from './steps/change-size.uk.png'; + +// Spin +import spinTurn from './steps/spin-turn.uk.png'; +import spinPointInDirection from './steps/spin-point-in-direction.uk.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.uk.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.uk.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.uk.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.uk.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.uk.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.uk.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.uk.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.uk.png'; +import glideAroundPoint from './steps/glide-around-point.uk.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.uk.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.uk.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.uk.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.uk.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.uk.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.uk.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.uk.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.uk.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.uk.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.uk.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.uk.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.uk.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.uk.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.uk.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.uk.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.uk.png'; + +const ukImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {ukImages}; diff --git a/src/lib/libraries/decks/zh_CN-steps.js b/src/lib/libraries/decks/zh_CN-steps.js new file mode 100644 index 00000000000..309f8d448fe --- /dev/null +++ b/src/lib/libraries/decks/zh_CN-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.zh_CN.gif'; +import introSay from './steps/intro-2-say.zh_CN.gif'; +import introGreenFlag from './steps/intro-3-green-flag.zh_CN.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.zh_CN.gif'; +import speechSaySomething from './steps/speech-say-something.zh_CN.png'; +import speechSetVoice from './steps/speech-set-voice.zh_CN.png'; +import speechMoveAround from './steps/speech-move-around.zh_CN.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.zh_CN.png'; +import speechChangeColor from './steps/speech-change-color.zh_CN.png'; +import speechSpin from './steps/speech-spin.zh_CN.png'; +import speechGrowShrink from './steps/speech-grow-shrink.zh_CN.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.zh_CN.png'; +import cnGlide from './steps/cn-glide.zh_CN.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.zh_CN.png'; +import cnVariable from './steps/add-variable.zh_CN.gif'; +import cnScore from './steps/cn-score.zh_CN.png'; +import cnBackdrop from './steps/cn-backdrop.zh_CN.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.zh_CN.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.zh_CN.png'; +import nameSpin from './steps/name-spin.zh_CN.png'; +import nameGrow from './steps/name-grow.zh_CN.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.zh_CN.png'; +import musicMakeSong from './steps/music-make-song.zh_CN.png'; +import musicMakeBeat from './steps/music-make-beat.zh_CN.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.zh_CN.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.zh_CN.png'; +import chaseGameUpDown from './steps/chase-game-up-down.zh_CN.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.zh_CN.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.zh_CN.png'; +import chaseGameAddVariable from './steps/add-variable.zh_CN.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.zh_CN.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.zh_CN.png'; +import popGameAddScore from './steps/add-variable.zh_CN.gif'; +import popGameChangeScore from './steps/pop-game-change-score.zh_CN.png'; +import popGameRandomPosition from './steps/pop-game-random-position.zh_CN.png'; +import popGameChangeColor from './steps/pop-game-change-color.zh_CN.png'; +import popGameResetScore from './steps/pop-game-reset-score.zh_CN.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.zh_CN.png'; +import animateCharAddSound from './steps/animate-char-add-sound.zh_CN.png'; +import animateCharTalk from './steps/animate-char-talk.zh_CN.png'; +import animateCharMove from './steps/animate-char-move.zh_CN.png'; +import animateCharJump from './steps/animate-char-jump.zh_CN.png'; +import animateCharChangeColor from './steps/animate-char-change-color.zh_CN.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.zh_CN.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.zh_CN.gif'; +import storyConversation from './steps/story-conversation.zh_CN.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.zh_CN.png'; +import storyHideCharacter from './steps/story-hide-character.zh_CN.png'; +import storyShowCharacter from './steps/story-show-character.zh_CN.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.zh_CN.gif'; +import videoPet from './steps/video-pet.zh_CN.png'; +import videoAnimate from './steps/video-animate.zh_CN.png'; +import videoPop from './steps/video-pop.zh_CN.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.zh_CN.png'; +import flyMoveArrows from './steps/fly-make-interactive.zh_CN.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.zh_CN.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.zh_CN.gif'; +import flyKeepScore from './steps/fly-keep-score.zh_CN.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.zh_CN.png'; +import flySwitchLooks from './steps/fly-switch-costume.zh_CN.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.zh_CN.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.zh_CN.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.zh_CN.png'; +import pongAddAScore from './steps/add-variable.zh_CN.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.zh_CN.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.zh_CN.png'; +import pongResetScore from './steps/pong-reset-score.zh_CN.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.zh_CN.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.zh_CN.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.zh_CN.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.zh_CN.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.zh_CN.png'; +import imagineUpDown from './steps/imagine-up-down.zh_CN.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.zh_CN.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.zh_CN.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.zh_CN.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.zh_CN.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.zh_CN.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.zh_CN.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.zh_CN.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.zh_CN.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.zh_CN.png'; + +// Change Size +import changeSize from './steps/change-size.zh_CN.png'; + +// Spin +import spinTurn from './steps/spin-turn.zh_CN.png'; +import spinPointInDirection from './steps/spin-point-in-direction.zh_CN.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.zh_CN.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.zh_CN.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.zh_CN.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.zh_CN.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.zh_CN.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.zh_CN.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.zh_CN.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.zh_CN.png'; +import glideAroundPoint from './steps/glide-around-point.zh_CN.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.zh_CN.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.zh_CN.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.zh_CN.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.zh_CN.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.zh_CN.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.zh_CN.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.zh_CN.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.zh_CN.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.zh_CN.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.zh_CN.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.zh_CN.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.zh_CN.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.zh_CN.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.zh_CN.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.zh_CN.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.zh_CN.png'; + +const zhCnImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {zhCnImages}; diff --git a/src/lib/libraries/decks/zh_TW-steps.js b/src/lib/libraries/decks/zh_TW-steps.js new file mode 100644 index 00000000000..df57d697217 --- /dev/null +++ b/src/lib/libraries/decks/zh_TW-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.zh_TW.gif'; +import introSay from './steps/intro-2-say.zh_TW.gif'; +import introGreenFlag from './steps/intro-3-green-flag.zh_TW.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.zh_TW.gif'; +import speechSaySomething from './steps/speech-say-something.zh_TW.png'; +import speechSetVoice from './steps/speech-set-voice.zh_TW.png'; +import speechMoveAround from './steps/speech-move-around.zh_TW.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.zh_TW.png'; +import speechChangeColor from './steps/speech-change-color.zh_TW.png'; +import speechSpin from './steps/speech-spin.zh_TW.png'; +import speechGrowShrink from './steps/speech-grow-shrink.zh_TW.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.zh_TW.png'; +import cnGlide from './steps/cn-glide.zh_TW.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.zh_TW.png'; +import cnVariable from './steps/add-variable.zh_TW.gif'; +import cnScore from './steps/cn-score.zh_TW.png'; +import cnBackdrop from './steps/cn-backdrop.zh_TW.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.zh_TW.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.zh_TW.png'; +import nameSpin from './steps/name-spin.zh_TW.png'; +import nameGrow from './steps/name-grow.zh_TW.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.zh_TW.png'; +import musicMakeSong from './steps/music-make-song.zh_TW.png'; +import musicMakeBeat from './steps/music-make-beat.zh_TW.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.zh_TW.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.zh_TW.png'; +import chaseGameUpDown from './steps/chase-game-up-down.zh_TW.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.zh_TW.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.zh_TW.png'; +import chaseGameAddVariable from './steps/add-variable.zh_TW.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.zh_TW.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.zh_TW.png'; +import popGameAddScore from './steps/add-variable.zh_TW.gif'; +import popGameChangeScore from './steps/pop-game-change-score.zh_TW.png'; +import popGameRandomPosition from './steps/pop-game-random-position.zh_TW.png'; +import popGameChangeColor from './steps/pop-game-change-color.zh_TW.png'; +import popGameResetScore from './steps/pop-game-reset-score.zh_TW.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.zh_TW.png'; +import animateCharAddSound from './steps/animate-char-add-sound.zh_TW.png'; +import animateCharTalk from './steps/animate-char-talk.zh_TW.png'; +import animateCharMove from './steps/animate-char-move.zh_TW.png'; +import animateCharJump from './steps/animate-char-jump.zh_TW.png'; +import animateCharChangeColor from './steps/animate-char-change-color.zh_TW.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.zh_TW.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.zh_TW.gif'; +import storyConversation from './steps/story-conversation.zh_TW.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.zh_TW.png'; +import storyHideCharacter from './steps/story-hide-character.zh_TW.png'; +import storyShowCharacter from './steps/story-show-character.zh_TW.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.zh_TW.gif'; +import videoPet from './steps/video-pet.zh_TW.png'; +import videoAnimate from './steps/video-animate.zh_TW.png'; +import videoPop from './steps/video-pop.zh_TW.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.zh_TW.png'; +import flyMoveArrows from './steps/fly-make-interactive.zh_TW.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.zh_TW.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.zh_TW.gif'; +import flyKeepScore from './steps/fly-keep-score.zh_TW.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.zh_TW.png'; +import flySwitchLooks from './steps/fly-switch-costume.zh_TW.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.zh_TW.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.zh_TW.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.zh_TW.png'; +import pongAddAScore from './steps/add-variable.zh_TW.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.zh_TW.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.zh_TW.png'; +import pongResetScore from './steps/pong-reset-score.zh_TW.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.zh_TW.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.zh_TW.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.zh_TW.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.zh_TW.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.zh_TW.png'; +import imagineUpDown from './steps/imagine-up-down.zh_TW.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.zh_TW.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.zh_TW.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.zh_TW.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.zh_TW.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.zh_TW.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.zh_TW.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.zh_TW.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.zh_TW.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.zh_TW.png'; + +// Change Size +import changeSize from './steps/change-size.zh_TW.png'; + +// Spin +import spinTurn from './steps/spin-turn.zh_TW.png'; +import spinPointInDirection from './steps/spin-point-in-direction.zh_TW.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.zh_TW.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.zh_TW.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.zh_TW.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.zh_TW.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.zh_TW.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.zh_TW.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.zh_TW.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.zh_TW.png'; +import glideAroundPoint from './steps/glide-around-point.zh_TW.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.zh_TW.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.zh_TW.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.zh_TW.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.zh_TW.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.zh_TW.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.zh_TW.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.zh_TW.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.zh_TW.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.zh_TW.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.zh_TW.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.zh_TW.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.zh_TW.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.zh_TW.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.zh_TW.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.zh_TW.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.zh_TW.png'; + +const zhTwImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {zhTwImages}; diff --git a/src/lib/libraries/decks/zu-steps.js b/src/lib/libraries/decks/zu-steps.js new file mode 100644 index 00000000000..b912b2058a8 --- /dev/null +++ b/src/lib/libraries/decks/zu-steps.js @@ -0,0 +1,405 @@ +// Intro +import introMove from './steps/intro-1-move.zu.gif'; +import introSay from './steps/intro-2-say.zu.gif'; +import introGreenFlag from './steps/intro-3-green-flag.zu.gif'; + +// Text to Speech +import speechAddExtension from './steps/speech-add-extension.zu.gif'; +import speechSaySomething from './steps/speech-say-something.zu.png'; +import speechSetVoice from './steps/speech-set-voice.zu.png'; +import speechMoveAround from './steps/speech-move-around.zu.png'; +import speechAddBackdrop from './steps/pick-backdrop.LTR.gif'; +import speechAddSprite from './steps/speech-add-sprite.LTR.gif'; +import speechSong from './steps/speech-song.zu.png'; +import speechChangeColor from './steps/speech-change-color.zu.png'; +import speechSpin from './steps/speech-spin.zu.png'; +import speechGrowShrink from './steps/speech-grow-shrink.zu.png'; + +// Cartoon Network +import cnShowCharacter from './steps/cn-show-character.LTR.gif'; +import cnSay from './steps/cn-say.zu.png'; +import cnGlide from './steps/cn-glide.zu.png'; +import cnPickSprite from './steps/cn-pick-sprite.LTR.gif'; +import cnCollect from './steps/cn-collect.zu.png'; +import cnVariable from './steps/add-variable.zu.gif'; +import cnScore from './steps/cn-score.zu.png'; +import cnBackdrop from './steps/cn-backdrop.zu.png'; + +// Add sprite +import addSprite from './steps/add-sprite.LTR.gif'; + +// Animate a name +import namePickLetter from './steps/name-pick-letter.LTR.gif'; +import namePlaySound from './steps/name-play-sound.zu.png'; +import namePickLetter2 from './steps/name-pick-letter2.LTR.gif'; +import nameChangeColor from './steps/name-change-color.zu.png'; +import nameSpin from './steps/name-spin.zu.png'; +import nameGrow from './steps/name-grow.zu.png'; + +// Make Music +import musicPickInstrument from './steps/music-pick-instrument.LTR.gif'; +import musicPlaySound from './steps/music-play-sound.zu.png'; +import musicMakeSong from './steps/music-make-song.zu.png'; +import musicMakeBeat from './steps/music-make-beat.zu.png'; +import musicMakeBeatbox from './steps/music-make-beatbox.zu.png'; + +// Chase-Game +import chaseGameAddBackdrop from './steps/chase-game-add-backdrop.LTR.gif'; +import chaseGameAddSprite1 from './steps/chase-game-add-sprite1.LTR.gif'; +import chaseGameRightLeft from './steps/chase-game-right-left.zu.png'; +import chaseGameUpDown from './steps/chase-game-up-down.zu.png'; +import chaseGameAddSprite2 from './steps/chase-game-add-sprite2.LTR.gif'; +import chaseGameMoveRandomly from './steps/chase-game-move-randomly.zu.png'; +import chaseGamePlaySound from './steps/chase-game-play-sound.zu.png'; +import chaseGameAddVariable from './steps/add-variable.zu.gif'; +import chaseGameChangeScore from './steps/chase-game-change-score.zu.png'; + +// Clicker-Game (Pop Game) +import popGamePickSprite from './steps/pop-game-pick-sprite.LTR.gif'; +import popGamePlaySound from './steps/pop-game-play-sound.zu.png'; +import popGameAddScore from './steps/add-variable.zu.gif'; +import popGameChangeScore from './steps/pop-game-change-score.zu.png'; +import popGameRandomPosition from './steps/pop-game-random-position.zu.png'; +import popGameChangeColor from './steps/pop-game-change-color.zu.png'; +import popGameResetScore from './steps/pop-game-reset-score.zu.png'; + +// Animate A Character +import animateCharPickBackdrop from './steps/pick-backdrop.LTR.gif'; +import animateCharPickSprite from './steps/animate-char-pick-sprite.LTR.gif'; +import animateCharSaySomething from './steps/animate-char-say-something.zu.png'; +import animateCharAddSound from './steps/animate-char-add-sound.zu.png'; +import animateCharTalk from './steps/animate-char-talk.zu.png'; +import animateCharMove from './steps/animate-char-move.zu.png'; +import animateCharJump from './steps/animate-char-jump.zu.png'; +import animateCharChangeColor from './steps/animate-char-change-color.zu.png'; + +// Tell A Story +import storyPickBackdrop from './steps/story-pick-backdrop.LTR.gif'; +import storyPickSprite from './steps/story-pick-sprite.LTR.gif'; +import storySaySomething from './steps/story-say-something.zu.png'; +import storyPickSprite2 from './steps/story-pick-sprite2.LTR.gif'; +import storyFlip from './steps/story-flip.zu.gif'; +import storyConversation from './steps/story-conversation.zu.png'; +import storyPickBackdrop2 from './steps/story-pick-backdrop2.LTR.gif'; +import storySwitchBackdrop from './steps/story-switch-backdrop.zu.png'; +import storyHideCharacter from './steps/story-hide-character.zu.png'; +import storyShowCharacter from './steps/story-show-character.zu.png'; + +// Video Sensing +import videoAddExtension from './steps/video-add-extension.zu.gif'; +import videoPet from './steps/video-pet.zu.png'; +import videoAnimate from './steps/video-animate.zu.png'; +import videoPop from './steps/video-pop.zu.png'; + +// Make it Fly +import flyChooseBackdrop from './steps/fly-choose-backdrop.LTR.gif'; +import flyChooseCharacter from './steps/fly-choose-character.LTR.png'; +import flySaySomething from './steps/fly-say-something.zu.png'; +import flyMoveArrows from './steps/fly-make-interactive.zu.png'; +import flyChooseObject from './steps/fly-object-to-collect.LTR.png'; +import flyFlyingObject from './steps/fly-flying-heart.zu.png'; +import flySelectFlyingSprite from './steps/fly-select-flyer.LTR.png'; +import flyAddScore from './steps/add-variable.zu.gif'; +import flyKeepScore from './steps/fly-keep-score.zu.png'; +import flyAddScenery from './steps/fly-choose-scenery.LTR.gif'; +import flyMoveScenery from './steps/fly-move-scenery.zu.png'; +import flySwitchLooks from './steps/fly-switch-costume.zu.png'; + +// Pong +import pongAddBackdrop from './steps/pong-add-backdrop.LTR.png'; +import pongAddBallSprite from './steps/pong-add-ball-sprite.LTR.png'; +import pongBounceAround from './steps/pong-bounce-around.zu.png'; +import pongAddPaddle from './steps/pong-add-a-paddle.LTR.gif'; +import pongMoveThePaddle from './steps/pong-move-the-paddle.zu.png'; +import pongSelectBallSprite from './steps/pong-select-ball.LTR.png'; +import pongAddMoreCodeToBall from './steps/pong-add-code-to-ball.zu.png'; +import pongAddAScore from './steps/add-variable.zu.gif'; +import pongChooseScoreFromMenu from './steps/pong-choose-score.zu.png'; +import pongInsertChangeScoreBlock from './steps/pong-insert-change-score.zu.png'; +import pongResetScore from './steps/pong-reset-score.zu.png'; +import pongAddLineSprite from './steps/pong-add-line.LTR.gif'; +import pongGameOver from './steps/pong-game-over.zu.png'; + +// Imagine a World +import imagineTypeWhatYouWant from './steps/imagine-type-what-you-want.zu.png'; +import imagineClickGreenFlag from './steps/imagine-click-green-flag.zu.png'; +import imagineChooseBackdrop from './steps/imagine-choose-backdrop.LTR.png'; +import imagineChooseSprite from './steps/imagine-choose-any-sprite.LTR.png'; +import imagineFlyAround from './steps/imagine-fly-around.zu.png'; +import imagineChooseAnotherSprite from './steps/imagine-choose-another-sprite.LTR.png'; +import imagineLeftRight from './steps/imagine-left-right.zu.png'; +import imagineUpDown from './steps/imagine-up-down.zu.png'; +import imagineChangeCostumes from './steps/imagine-change-costumes.zu.png'; +import imagineGlideToPoint from './steps/imagine-glide-to-point.zu.png'; +import imagineGrowShrink from './steps/imagine-grow-shrink.zu.png'; +import imagineChooseAnotherBackdrop from './steps/imagine-choose-another-backdrop.LTR.png'; +import imagineSwitchBackdrops from './steps/imagine-switch-backdrops.zu.png'; +import imagineRecordASound from './steps/imagine-record-a-sound.zu.gif'; +import imagineChooseSound from './steps/imagine-choose-sound.zu.png'; + +// Add a Backdrop +import addBackdrop from './steps/add-backdrop.LTR.png'; + +// Add Effects +import addEffects from './steps/add-effects.zu.png'; + +// Hide and Show +import hideAndShow from './steps/hide-show.zu.png'; + +// Switch Costumes +import switchCostumes from './steps/switch-costumes.zu.png'; + +// Change Size +import changeSize from './steps/change-size.zu.png'; + +// Spin +import spinTurn from './steps/spin-turn.zu.png'; +import spinPointInDirection from './steps/spin-point-in-direction.zu.png'; + +// Record a Sound +import recordASoundSoundsTab from './steps/record-a-sound-sounds-tab.zu.png'; +import recordASoundClickRecord from './steps/record-a-sound-click-record.zu.png'; +import recordASoundPressRecordButton from './steps/record-a-sound-press-record-button.zu.png'; +import recordASoundChooseSound from './steps/record-a-sound-choose-sound.zu.png'; +import recordASoundPlayYourSound from './steps/record-a-sound-play-your-sound.zu.png'; + +// Use Arrow Keys +import moveArrowKeysLeftRight from './steps/move-arrow-keys-left-right.zu.png'; +import moveArrowKeysUpDown from './steps/move-arrow-keys-up-down.zu.png'; + +// Glide Around +import glideAroundBackAndForth from './steps/glide-around-back-and-forth.zu.png'; +import glideAroundPoint from './steps/glide-around-point.zu.png'; + +// Code a Cartoon +import codeCartoonSaySomething from './steps/code-cartoon-01-say-something.zu.png'; +import codeCartoonAnimate from './steps/code-cartoon-02-animate.zu.png'; +import codeCartoonSelectDifferentCharacter from './steps/code-cartoon-03-select-different-character.LTR.png'; +import codeCartoonUseMinusSign from './steps/code-cartoon-04-use-minus-sign.zu.png'; +import codeCartoonGrowShrink from './steps/code-cartoon-05-grow-shrink.zu.png'; +import codeCartoonSelectDifferentCharacter2 from './steps/code-cartoon-06-select-another-different-character.LTR.png'; +import codeCartoonJump from './steps/code-cartoon-07-jump.zu.png'; +import codeCartoonChangeScenes from './steps/code-cartoon-08-change-scenes.zu.png'; +import codeCartoonGlideAround from './steps/code-cartoon-09-glide-around.zu.png'; +import codeCartoonChangeCostumes from './steps/code-cartoon-10-change-costumes.zu.png'; +import codeCartoonChooseMoreCharacters from './steps/code-cartoon-11-choose-more-characters.LTR.png'; + +// Talking Tales +import talesAddExtension from './steps/speech-add-extension.zu.gif'; +import talesChooseSprite from './steps/talking-2-choose-sprite.LTR.png'; +import talesSaySomething from './steps/talking-3-say-something.zu.png'; +import talesChooseBackdrop from './steps/talking-4-choose-backdrop.LTR.png'; +import talesSwitchBackdrop from './steps/talking-5-switch-backdrop.zu.png'; +import talesChooseAnotherSprite from './steps/talking-6-choose-another-sprite.LTR.png'; +import talesMoveAround from './steps/talking-7-move-around.zu.png'; +import talesChooseAnotherBackdrop from './steps/talking-8-choose-another-backdrop.LTR.png'; +import talesAnimateTalking from './steps/talking-9-animate.zu.png'; +import talesChooseThirdBackdrop from './steps/talking-10-choose-third-backdrop.LTR.png'; +import talesChooseSound from './steps/talking-11-choose-sound.zu.gif'; +import talesDanceMoves from './steps/talking-12-dance-moves.zu.png'; +import talesAskAnswer from './steps/talking-13-ask-and-answer.zu.png'; + +const zuImages = { + // Intro + introMove: introMove, + introSay: introSay, + introGreenFlag: introGreenFlag, + + // Text to Speech + speechAddExtension: speechAddExtension, + speechSaySomething: speechSaySomething, + speechSetVoice: speechSetVoice, + speechMoveAround: speechMoveAround, + speechAddBackdrop: speechAddBackdrop, + speechAddSprite: speechAddSprite, + speechSong: speechSong, + speechChangeColor: speechChangeColor, + speechSpin: speechSpin, + speechGrowShrink: speechGrowShrink, + + // Cartoon Network + cnShowCharacter: cnShowCharacter, + cnSay: cnSay, + cnGlide: cnGlide, + cnPickSprite: cnPickSprite, + cnCollect: cnCollect, + cnVariable: cnVariable, + cnScore: cnScore, + cnBackdrop: cnBackdrop, + + // Add sprite + addSprite: addSprite, + + // Animate a name + namePickLetter: namePickLetter, + namePlaySound: namePlaySound, + namePickLetter2: namePickLetter2, + nameChangeColor: nameChangeColor, + nameSpin: nameSpin, + nameGrow: nameGrow, + + // Make-Music + musicPickInstrument: musicPickInstrument, + musicPlaySound: musicPlaySound, + musicMakeSong: musicMakeSong, + musicMakeBeat: musicMakeBeat, + musicMakeBeatbox: musicMakeBeatbox, + + // Chase-Game + chaseGameAddBackdrop: chaseGameAddBackdrop, + chaseGameAddSprite1: chaseGameAddSprite1, + chaseGameRightLeft: chaseGameRightLeft, + chaseGameUpDown: chaseGameUpDown, + chaseGameAddSprite2: chaseGameAddSprite2, + chaseGameMoveRandomly: chaseGameMoveRandomly, + chaseGamePlaySound: chaseGamePlaySound, + chaseGameAddVariable: chaseGameAddVariable, + chaseGameChangeScore: chaseGameChangeScore, + + // Make-A-Pop/Clicker Game + popGamePickSprite: popGamePickSprite, + popGamePlaySound: popGamePlaySound, + popGameAddScore: popGameAddScore, + popGameChangeScore: popGameChangeScore, + popGameRandomPosition: popGameRandomPosition, + popGameChangeColor: popGameChangeColor, + popGameResetScore: popGameResetScore, + + // Animate A Character + animateCharPickBackdrop: animateCharPickBackdrop, + animateCharPickSprite: animateCharPickSprite, + animateCharSaySomething: animateCharSaySomething, + animateCharAddSound: animateCharAddSound, + animateCharTalk: animateCharTalk, + animateCharMove: animateCharMove, + animateCharJump: animateCharJump, + animateCharChangeColor: animateCharChangeColor, + + // Tell A Story + storyPickBackdrop: storyPickBackdrop, + storyPickSprite: storyPickSprite, + storySaySomething: storySaySomething, + storyPickSprite2: storyPickSprite2, + storyFlip: storyFlip, + storyConversation: storyConversation, + storyPickBackdrop2: storyPickBackdrop2, + storySwitchBackdrop: storySwitchBackdrop, + storyHideCharacter: storyHideCharacter, + storyShowCharacter: storyShowCharacter, + + // Video Sensing + videoAddExtension: videoAddExtension, + videoPet: videoPet, + videoAnimate: videoAnimate, + videoPop: videoPop, + + // Make it Fly + flyChooseBackdrop: flyChooseBackdrop, + flyChooseCharacter: flyChooseCharacter, + flySaySomething: flySaySomething, + flyMoveArrows: flyMoveArrows, + flyChooseObject: flyChooseObject, + flyFlyingObject: flyFlyingObject, + flySelectFlyingSprite: flySelectFlyingSprite, + flyAddScore: flyAddScore, + flyKeepScore: flyKeepScore, + flyAddScenery: flyAddScenery, + flyMoveScenery: flyMoveScenery, + flySwitchLooks: flySwitchLooks, + + // Pong + pongAddBackdrop: pongAddBackdrop, + pongAddBallSprite: pongAddBallSprite, + pongBounceAround: pongBounceAround, + pongAddPaddle: pongAddPaddle, + pongMoveThePaddle: pongMoveThePaddle, + pongSelectBallSprite: pongSelectBallSprite, + pongAddMoreCodeToBall: pongAddMoreCodeToBall, + pongAddAScore: pongAddAScore, + pongChooseScoreFromMenu: pongChooseScoreFromMenu, + pongInsertChangeScoreBlock: pongInsertChangeScoreBlock, + pongResetScore: pongResetScore, + pongAddLineSprite: pongAddLineSprite, + pongGameOver: pongGameOver, + + // Imagine a World + imagineTypeWhatYouWant: imagineTypeWhatYouWant, + imagineClickGreenFlag: imagineClickGreenFlag, + imagineChooseBackdrop: imagineChooseBackdrop, + imagineChooseSprite: imagineChooseSprite, + imagineFlyAround: imagineFlyAround, + imagineChooseAnotherSprite: imagineChooseAnotherSprite, + imagineLeftRight: imagineLeftRight, + imagineUpDown: imagineUpDown, + imagineChangeCostumes: imagineChangeCostumes, + imagineGlideToPoint: imagineGlideToPoint, + imagineGrowShrink: imagineGrowShrink, + imagineChooseAnotherBackdrop: imagineChooseAnotherBackdrop, + imagineSwitchBackdrops: imagineSwitchBackdrops, + imagineRecordASound: imagineRecordASound, + imagineChooseSound: imagineChooseSound, + + // Add a Backdrop + addBackdrop: addBackdrop, + + // Add Effects + addEffects: addEffects, + + // Hide and Show + hideAndShow: hideAndShow, + + // Switch Costumes + switchCostumes: switchCostumes, + + // Change Size + changeSize: changeSize, + + // Spin + spinTurn: spinTurn, + spinPointInDirection: spinPointInDirection, + + // Record a Sound + recordASoundSoundsTab: recordASoundSoundsTab, + recordASoundClickRecord: recordASoundClickRecord, + recordASoundPressRecordButton: recordASoundPressRecordButton, + recordASoundChooseSound: recordASoundChooseSound, + recordASoundPlayYourSound: recordASoundPlayYourSound, + + // Use Arrow Keys + moveArrowKeysLeftRight: moveArrowKeysLeftRight, + moveArrowKeysUpDown: moveArrowKeysUpDown, + + // Glide Around + glideAroundBackAndForth: glideAroundBackAndForth, + glideAroundPoint: glideAroundPoint, + + // Code a Cartoon + codeCartoonSaySomething: codeCartoonSaySomething, + codeCartoonAnimate: codeCartoonAnimate, + codeCartoonSelectDifferentCharacter: codeCartoonSelectDifferentCharacter, + codeCartoonUseMinusSign: codeCartoonUseMinusSign, + codeCartoonGrowShrink: codeCartoonGrowShrink, + codeCartoonSelectDifferentCharacter2: codeCartoonSelectDifferentCharacter2, + codeCartoonJump: codeCartoonJump, + codeCartoonChangeScenes: codeCartoonChangeScenes, + codeCartoonGlideAround: codeCartoonGlideAround, + codeCartoonChangeCostumes: codeCartoonChangeCostumes, + codeCartoonChooseMoreCharacters: codeCartoonChooseMoreCharacters, + + // Talking Tales + talesAddExtension: talesAddExtension, + talesChooseSprite: talesChooseSprite, + talesSaySomething: talesSaySomething, + talesAskAnswer: talesAskAnswer, + talesChooseBackdrop: talesChooseBackdrop, + talesSwitchBackdrop: talesSwitchBackdrop, + talesChooseAnotherSprite: talesChooseAnotherSprite, + talesMoveAround: talesMoveAround, + talesChooseAnotherBackdrop: talesChooseAnotherBackdrop, + talesAnimateTalking: talesAnimateTalking, + talesChooseThirdBackdrop: talesChooseThirdBackdrop, + talesChooseSound: talesChooseSound, + talesDanceMoves: talesDanceMoves +}; + +export {zuImages}; diff --git a/src/lib/libraries/sounds.json b/src/lib/libraries/sounds.json index 077b85bf821..2fb59d4fdb1 100644 --- a/src/lib/libraries/sounds.json +++ b/src/lib/libraries/sounds.json @@ -1,4030 +1,4375 @@ [ { "name": "A Bass", - "md5": "c04ebf21e5e19342fa1535e4efcdb43b.wav", - "sampleCount": 28160, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "c04ebf21e5e19342fa1535e4efcdb43b", + "dataFormat": "", + "md5ext": "c04ebf21e5e19342fa1535e4efcdb43b.wav", + "sampleCount": 56320, + "rate": 44100 }, { "name": "A Elec Bass", - "md5": "5cb46ddd903fc2c9976ff881df9273c9.wav", - "sampleCount": 5920, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "5cb46ddd903fc2c9976ff881df9273c9", + "dataFormat": "", + "md5ext": "5cb46ddd903fc2c9976ff881df9273c9.wav", + "sampleCount": 11840, + "rate": 44100 }, { "name": "A Elec Guitar", - "md5": "fa5f7fea601e9368dd68449d9a54c995.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "fa5f7fea601e9368dd68449d9a54c995", + "dataFormat": "", + "md5ext": "fa5f7fea601e9368dd68449d9a54c995.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "A Elec Piano", - "md5": "0cfa8e84d6a5cd63afa31d541625a9ef.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "note", "piano", "keyboard" - ] + ], + "assetId": "0cfa8e84d6a5cd63afa31d541625a9ef", + "dataFormat": "", + "md5ext": "0cfa8e84d6a5cd63afa31d541625a9ef.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "A Guitar", - "md5": "ee753e87d212d4b2fb650ca660f1e839.wav", - "sampleCount": 31872, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "ee753e87d212d4b2fb650ca660f1e839", + "dataFormat": "", + "md5ext": "ee753e87d212d4b2fb650ca660f1e839.wav", + "sampleCount": 63744, + "rate": 44100 }, { "name": "A Minor Ukulele", - "md5": "69d25af0fd065da39c71439174efc589.wav", - "sampleCount": 18267, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes", "chords" - ] + ], + "assetId": "69d25af0fd065da39c71439174efc589", + "dataFormat": "", + "md5ext": "69d25af0fd065da39c71439174efc589.wav", + "sampleCount": 36534, + "rate": 44100 }, { "name": "A Piano", - "md5": "0727959edb2ea0525feed9b0c816991c.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "0727959edb2ea0525feed9b0c816991c", + "dataFormat": "", + "md5ext": "0727959edb2ea0525feed9b0c816991c.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "A Sax", - "md5": "420991e0d6d99292c6d736963842536a.wav", - "sampleCount": 6472, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "420991e0d6d99292c6d736963842536a", + "dataFormat": "", + "md5ext": "420991e0d6d99292c6d736963842536a.wav", + "sampleCount": 12944, + "rate": 44100 }, { "name": "A Trombone", - "md5": "863ccc8ba66e6dabbce2a1261c22be0f.wav", - "sampleCount": 17227, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "863ccc8ba66e6dabbce2a1261c22be0f", + "dataFormat": "adpcm", + "md5ext": "863ccc8ba66e6dabbce2a1261c22be0f.wav", + "sampleCount": 17273, + "rate": 22050 }, { "name": "A Trumpet", - "md5": "d2dd6b4372ca17411965dc92d52b2172.wav", - "sampleCount": 13911, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "d2dd6b4372ca17411965dc92d52b2172", + "dataFormat": "", + "md5ext": "d2dd6b4372ca17411965dc92d52b2172.wav", + "sampleCount": 27822, + "rate": 44100 }, { "name": "Afro String", - "md5": "3477ccfde26047eeb93ff43a21ac7d3d.wav", - "sampleCount": 9807, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "3477ccfde26047eeb93ff43a21ac7d3d", + "dataFormat": "", + "md5ext": "3477ccfde26047eeb93ff43a21ac7d3d.wav", + "sampleCount": 39228, + "rate": 44100 }, { "name": "Alert", - "md5": "f62e3bfccab9c23eee781473c94a009c.wav", - "sampleCount": 21362, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games", "space" - ] + ], + "assetId": "f62e3bfccab9c23eee781473c94a009c", + "dataFormat": "adpcm", + "md5ext": "f62e3bfccab9c23eee781473c94a009c.wav", + "sampleCount": 22353, + "rate": 22050 }, { "name": "Alien Creak1", - "md5": "0377a7476136e5e8c780c64a4828922d.wav", - "sampleCount": 8045, - "rate": 11025, - "format": "", "tags": [ "effects", "space" - ] + ], + "assetId": "0377a7476136e5e8c780c64a4828922d", + "dataFormat": "", + "md5ext": "0377a7476136e5e8c780c64a4828922d.wav", + "sampleCount": 32180, + "rate": 44100 }, { "name": "Alien Creak2", - "md5": "21f82b7f1a83c501539c5031aea4fa8c.wav", - "sampleCount": 8300, - "rate": 11025, - "format": "", "tags": [ "effects", "space" - ] + ], + "assetId": "21f82b7f1a83c501539c5031aea4fa8c", + "dataFormat": "", + "md5ext": "21f82b7f1a83c501539c5031aea4fa8c.wav", + "sampleCount": 33200, + "rate": 44100 }, { "name": "B Bass", - "md5": "e31dcaf7bcdf58ac2a26533c48936c45.wav", - "sampleCount": 25792, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "e31dcaf7bcdf58ac2a26533c48936c45", + "dataFormat": "", + "md5ext": "e31dcaf7bcdf58ac2a26533c48936c45.wav", + "sampleCount": 51584, + "rate": 44100 }, { "name": "B Elec Bass", - "md5": "5a0701d0a914223b5288300ac94e90e4.wav", - "sampleCount": 6208, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "5a0701d0a914223b5288300ac94e90e4", + "dataFormat": "", + "md5ext": "5a0701d0a914223b5288300ac94e90e4.wav", + "sampleCount": 12416, + "rate": 44100 }, { "name": "B Elec Guitar", - "md5": "81f142d0b00189703d7fe9b1f13f6f87.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "81f142d0b00189703d7fe9b1f13f6f87", + "dataFormat": "", + "md5ext": "81f142d0b00189703d7fe9b1f13f6f87.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "B Elec Piano", - "md5": "9cc77167419f228503dd57fddaa5b2a6.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "note", "piano", "keyboard" - ] + ], + "assetId": "9cc77167419f228503dd57fddaa5b2a6", + "dataFormat": "", + "md5ext": "9cc77167419f228503dd57fddaa5b2a6.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "B Guitar", - "md5": "2ae2d67de62df8ca54d638b4ad2466c3.wav", - "sampleCount": 29504, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "2ae2d67de62df8ca54d638b4ad2466c3", + "dataFormat": "", + "md5ext": "2ae2d67de62df8ca54d638b4ad2466c3.wav", + "sampleCount": 59008, + "rate": 44100 }, { "name": "B Piano", - "md5": "86826c6022a46370ed1afae69f1ab1b9.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "86826c6022a46370ed1afae69f1ab1b9", + "dataFormat": "", + "md5ext": "86826c6022a46370ed1afae69f1ab1b9.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "B Sax", - "md5": "653ebe92d491b49ad5d8101d629f567b.wav", - "sampleCount": 9555, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "653ebe92d491b49ad5d8101d629f567b", + "dataFormat": "", + "md5ext": "653ebe92d491b49ad5d8101d629f567b.wav", + "sampleCount": 19110, + "rate": 44100 }, { "name": "B Trombone", - "md5": "85b663229525b73d9f6647f78eb23e0a.wav", - "sampleCount": 15522, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "85b663229525b73d9f6647f78eb23e0a", + "dataFormat": "", + "md5ext": "85b663229525b73d9f6647f78eb23e0a.wav", + "sampleCount": 31044, + "rate": 44100 }, { "name": "B Trumpet", - "md5": "cad2bc57729942ed9b605145fc9ea65d.wav", - "sampleCount": 14704, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "cad2bc57729942ed9b605145fc9ea65d", + "dataFormat": "", + "md5ext": "cad2bc57729942ed9b605145fc9ea65d.wav", + "sampleCount": 29408, + "rate": 44100 }, { "name": "Baa", - "md5": "ca694053020e42704bcf1fc01a70f1c3.wav", - "sampleCount": 41822, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "sheep" - ] + ], + "assetId": "ca694053020e42704bcf1fc01a70f1c3", + "dataFormat": "adpcm", + "md5ext": "ca694053020e42704bcf1fc01a70f1c3.wav", + "sampleCount": 42673, + "rate": 22050 }, { "name": "Bark", - "md5": "cd8fa8390b0efdd281882533fbfcfcfb.wav", - "sampleCount": 3168, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "cd8fa8390b0efdd281882533fbfcfcfb", + "dataFormat": "", + "md5ext": "cd8fa8390b0efdd281882533fbfcfcfb.wav", + "sampleCount": 6336, + "rate": 44100 }, { "name": "Basketball Bounce", - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm", "tags": [ "sports", "effects" - ] + ], + "assetId": "1727f65b5f22d151685b8e5917456a60", + "dataFormat": "adpcm", + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav", + "sampleCount": 8129, + "rate": 22050 }, { "name": "Bass Beatbox", - "md5": "28153621d293c86da0b246d314458faf.wav", - "sampleCount": 6720, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "28153621d293c86da0b246d314458faf", + "dataFormat": "", + "md5ext": "28153621d293c86da0b246d314458faf.wav", + "sampleCount": 13440, + "rate": 44100 }, { "name": "Beat Box1", - "md5": "663270af0235bf14c890ba184631675f.wav", - "sampleCount": 5729, - "rate": 11025, - "format": "", "tags": [ "music", "human", "voice", "hiphop" - ] + ], + "assetId": "663270af0235bf14c890ba184631675f", + "dataFormat": "", + "md5ext": "663270af0235bf14c890ba184631675f.wav", + "sampleCount": 22916, + "rate": 44100 }, { "name": "Beat Box2", - "md5": "b9b8073f6aa9a60085ad11b0341a4af2.wav", - "sampleCount": 5729, - "rate": 11025, - "format": "", "tags": [ "music", "human", "voice", "hiphop" - ] + ], + "assetId": "b9b8073f6aa9a60085ad11b0341a4af2", + "dataFormat": "", + "md5ext": "b9b8073f6aa9a60085ad11b0341a4af2.wav", + "sampleCount": 22916, + "rate": 44100 }, { "name": "Bell Cymbal", - "md5": "efddec047de95492f775a1b5b2e8d19e.wav", - "sampleCount": 19328, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "efddec047de95492f775a1b5b2e8d19e", + "dataFormat": "", + "md5ext": "efddec047de95492f775a1b5b2e8d19e.wav", + "sampleCount": 38656, + "rate": 44100 }, { "name": "Bell Toll", - "md5": "25d61e79cbeba4041eebeaebd7bf9598.wav", - "sampleCount": 45168, - "rate": 11025, - "format": "", "tags": [ "effects", "dramatic" - ] + ], + "assetId": "25d61e79cbeba4041eebeaebd7bf9598", + "dataFormat": "", + "md5ext": "25d61e79cbeba4041eebeaebd7bf9598.wav", + "sampleCount": 180672, + "rate": 44100 }, { "name": "Big Boing", - "md5": "00d6e72ef8bf7088233e98fbcee0ec6d.wav", - "sampleCount": 18174, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "00d6e72ef8bf7088233e98fbcee0ec6d", + "dataFormat": "adpcm", + "md5ext": "00d6e72ef8bf7088233e98fbcee0ec6d.wav", + "sampleCount": 18289, + "rate": 22050 }, { "name": "Bird", - "md5": "18bd4b634a3f992a16b30344c7d810e0.wav", - "sampleCount": 3840, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "18bd4b634a3f992a16b30344c7d810e0", + "dataFormat": "", + "md5ext": "18bd4b634a3f992a16b30344c7d810e0.wav", + "sampleCount": 15360, + "rate": 44100 }, { "name": "Birthday", - "md5": "89691587a169d935a58c48c3d4e78534.wav", - "sampleCount": 161408, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "89691587a169d935a58c48c3d4e78534", + "dataFormat": "", + "md5ext": "89691587a169d935a58c48c3d4e78534.wav", + "sampleCount": 322816, + "rate": 44100 }, { "name": "Bite", - "md5": "0039635b1d6853face36581784558454.wav", - "sampleCount": 7672, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "human" - ] + ], + "assetId": "0039635b1d6853face36581784558454", + "dataFormat": "adpcm", + "md5ext": "0039635b1d6853face36581784558454.wav", + "sampleCount": 8129, + "rate": 22050 }, { "name": "Boing", - "md5": "53a3c2e27d1fb5fdb14aaf0cb41e7889.wav", - "sampleCount": 6804, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "53a3c2e27d1fb5fdb14aaf0cb41e7889", + "dataFormat": "adpcm", + "md5ext": "53a3c2e27d1fb5fdb14aaf0cb41e7889.wav", + "sampleCount": 7113, + "rate": 22050 }, { "name": "Bonk", - "md5": "dd93f7835a407d4de5b2512ec4a6a806.wav", - "sampleCount": 13908, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "dd93f7835a407d4de5b2512ec4a6a806", + "dataFormat": "adpcm", + "md5ext": "dd93f7835a407d4de5b2512ec4a6a806.wav", + "sampleCount": 14225, + "rate": 22050 }, { "name": "Boom Cloud", - "md5": "62d87dfb0f873735e59669d965bdbd7d.wav", - "sampleCount": 88200, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "games", "space", "dramatic" - ] + ], + "assetId": "62d87dfb0f873735e59669d965bdbd7d", + "dataFormat": "adpcm", + "md5ext": "62d87dfb0f873735e59669d965bdbd7d.wav", + "sampleCount": 88393, + "rate": 22050 }, { "name": "Boop Bing Bop", - "md5": "66968153be7dce9e5abf62d627ffe40f.wav", - "sampleCount": 54957, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "66968153be7dce9e5abf62d627ffe40f", + "dataFormat": "adpcm", + "md5ext": "66968153be7dce9e5abf62d627ffe40f.wav", + "sampleCount": 55881, + "rate": 22050 }, { "name": "Bossa Nova", - "md5": "04ccc72f32e909292adcaf40348be5f3.wav", - "sampleCount": 136645, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "latin" - ] + ], + "assetId": "04ccc72f32e909292adcaf40348be5f3", + "dataFormat": "adpcm", + "md5ext": "04ccc72f32e909292adcaf40348be5f3.wav", + "sampleCount": 137161, + "rate": 22050 }, { "name": "Bowling Strike", - "md5": "32f3af03ddfbd9cc89c8565678a26813.wav", - "sampleCount": 26629, - "rate": 22050, - "format": "adpcm", "tags": [ "sports", "effects" - ] + ], + "assetId": "32f3af03ddfbd9cc89c8565678a26813", + "dataFormat": "adpcm", + "md5ext": "32f3af03ddfbd9cc89c8565678a26813.wav", + "sampleCount": 27433, + "rate": 22050 }, { "name": "Bubbles", - "md5": "78b0be9c9c2f664158b886bc7e794095.wav", - "sampleCount": 45056, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "78b0be9c9c2f664158b886bc7e794095", + "dataFormat": "", + "md5ext": "78b0be9c9c2f664158b886bc7e794095.wav", + "sampleCount": 180224, + "rate": 44100 }, { "name": "Buzz Whir", - "md5": "d4f76ded6bccd765958d15b63804de55.wav", - "sampleCount": 9037, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "d4f76ded6bccd765958d15b63804de55", + "dataFormat": "", + "md5ext": "d4f76ded6bccd765958d15b63804de55.wav", + "sampleCount": 36148, + "rate": 44100 }, { "name": "C Bass", - "md5": "c3566ec797b483acde28f790994cc409.wav", - "sampleCount": 44608, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "c3566ec797b483acde28f790994cc409", + "dataFormat": "", + "md5ext": "c3566ec797b483acde28f790994cc409.wav", + "sampleCount": 89216, + "rate": 44100 }, { "name": "C Elec Bass", - "md5": "69eee3d038ea0f1c34ec9156a789236d.wav", - "sampleCount": 5216, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "69eee3d038ea0f1c34ec9156a789236d", + "dataFormat": "", + "md5ext": "69eee3d038ea0f1c34ec9156a789236d.wav", + "sampleCount": 10432, + "rate": 44100 }, { "name": "C Elec Guitar", - "md5": "0d340de02e14bebaf8dfa0e43eb3f1f9.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "0d340de02e14bebaf8dfa0e43eb3f1f9", + "dataFormat": "", + "md5ext": "0d340de02e14bebaf8dfa0e43eb3f1f9.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "C Elec Piano", - "md5": "8366ee963cc57ad24a8a35a26f722c2b.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "note", "piano", "keyboard" - ] + ], + "assetId": "8366ee963cc57ad24a8a35a26f722c2b", + "dataFormat": "", + "md5ext": "8366ee963cc57ad24a8a35a26f722c2b.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "C Guitar", - "md5": "22baa07795a9a524614075cdea543793.wav", - "sampleCount": 44864, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "22baa07795a9a524614075cdea543793", + "dataFormat": "", + "md5ext": "22baa07795a9a524614075cdea543793.wav", + "sampleCount": 89728, + "rate": 44100 }, { "name": "C Major Ukulele", - "md5": "aa2ca112507b59b5337f341aaa75fb08.wav", - "sampleCount": 18203, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes", "chords" - ] + ], + "assetId": "aa2ca112507b59b5337f341aaa75fb08", + "dataFormat": "", + "md5ext": "aa2ca112507b59b5337f341aaa75fb08.wav", + "sampleCount": 36406, + "rate": 44100 }, { "name": "C Piano", - "md5": "d27ed8d953fe8f03c00f4d733d31d2cc.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "d27ed8d953fe8f03c00f4d733d31d2cc", + "dataFormat": "", + "md5ext": "d27ed8d953fe8f03c00f4d733d31d2cc.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "C Sax", - "md5": "4d2c939d6953b5f241a27a62cf72de64.wav", - "sampleCount": 9491, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "4d2c939d6953b5f241a27a62cf72de64", + "dataFormat": "", + "md5ext": "4d2c939d6953b5f241a27a62cf72de64.wav", + "sampleCount": 18982, + "rate": 44100 }, { "name": "C Trombone", - "md5": "821b23a489201a0f21f47ba8528ba47f.wav", - "sampleCount": 19053, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "821b23a489201a0f21f47ba8528ba47f", + "dataFormat": "", + "md5ext": "821b23a489201a0f21f47ba8528ba47f.wav", + "sampleCount": 38106, + "rate": 44100 }, { "name": "C Trumpet", - "md5": "8970afcdc4e47bb54959a81fe27522bd.wav", - "sampleCount": 13118, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "8970afcdc4e47bb54959a81fe27522bd", + "dataFormat": "", + "md5ext": "8970afcdc4e47bb54959a81fe27522bd.wav", + "sampleCount": 26236, + "rate": 44100 }, { "name": "C2 Bass", - "md5": "667d6c527b79321d398e85b526f15b99.wav", - "sampleCount": 24128, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "667d6c527b79321d398e85b526f15b99", + "dataFormat": "", + "md5ext": "667d6c527b79321d398e85b526f15b99.wav", + "sampleCount": 48256, + "rate": 44100 }, { "name": "C2 Elec Bass", - "md5": "56fc995b8860e713c5948ecd1c2ae572.wav", - "sampleCount": 5792, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "56fc995b8860e713c5948ecd1c2ae572", + "dataFormat": "", + "md5ext": "56fc995b8860e713c5948ecd1c2ae572.wav", + "sampleCount": 11584, + "rate": 44100 }, { "name": "C2 Elec Guitar", - "md5": "3a8ed3129f22cba5b0810bc030d16b5f.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "3a8ed3129f22cba5b0810bc030d16b5f", + "dataFormat": "", + "md5ext": "3a8ed3129f22cba5b0810bc030d16b5f.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "C2 Elec Piano", - "md5": "366c7edbd4dd5cca68bf62902999bd66.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "note", "piano", "keyboard" - ] + ], + "assetId": "366c7edbd4dd5cca68bf62902999bd66", + "dataFormat": "", + "md5ext": "366c7edbd4dd5cca68bf62902999bd66.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "C2 Guitar", - "md5": "c8d2851bd99d8e0ce6c1f05e4acc7f34.wav", - "sampleCount": 27712, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "c8d2851bd99d8e0ce6c1f05e4acc7f34", + "dataFormat": "", + "md5ext": "c8d2851bd99d8e0ce6c1f05e4acc7f34.wav", + "sampleCount": 55424, + "rate": 44100 }, { "name": "C2 Piano", - "md5": "75d7d2c9b5d40dd4e1cb268111abf1a2.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "75d7d2c9b5d40dd4e1cb268111abf1a2", + "dataFormat": "", + "md5ext": "75d7d2c9b5d40dd4e1cb268111abf1a2.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "C2 Sax", - "md5": "ea8d34b18c3d8fe328cea201666458bf.wav", - "sampleCount": 7349, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "ea8d34b18c3d8fe328cea201666458bf", + "dataFormat": "adpcm", + "md5ext": "ea8d34b18c3d8fe328cea201666458bf.wav", + "sampleCount": 8129, + "rate": 22050 }, { "name": "C2 Trombone", - "md5": "68aec107bd3633b2ee40c532eedc3897.wav", - "sampleCount": 13904, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "68aec107bd3633b2ee40c532eedc3897", + "dataFormat": "", + "md5ext": "68aec107bd3633b2ee40c532eedc3897.wav", + "sampleCount": 27808, + "rate": 44100 }, { "name": "C2 Trumpet", - "md5": "df08249ed5446cc5e10b7ac62faac89b.wav", - "sampleCount": 15849, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "df08249ed5446cc5e10b7ac62faac89b", + "dataFormat": "", + "md5ext": "df08249ed5446cc5e10b7ac62faac89b.wav", + "sampleCount": 31698, + "rate": 44100 }, { "name": "Car Horn", - "md5": "7c887f6a2ecd1cdb85d5527898d7f7a0.wav", - "sampleCount": 42443, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "transportation" - ] + ], + "assetId": "7c887f6a2ecd1cdb85d5527898d7f7a0", + "dataFormat": "adpcm", + "md5ext": "7c887f6a2ecd1cdb85d5527898d7f7a0.wav", + "sampleCount": 42673, + "rate": 22050 }, { "name": "Car Passing", - "md5": "c21a5ad00b40b5ce923e56c905c94a9f.wav", - "sampleCount": 84992, - "rate": 11025, - "format": "", "tags": [ "transportation", "ambience", "background" - ] + ], + "assetId": "c21a5ad00b40b5ce923e56c905c94a9f", + "dataFormat": "", + "md5ext": "c21a5ad00b40b5ce923e56c905c94a9f.wav", + "sampleCount": 339968, + "rate": 44100 }, { "name": "Car Vroom", - "md5": "ead1da4a87ff6cb53441142f7ac37b8f.wav", - "sampleCount": 43358, - "rate": 22050, - "format": "adpcm", "tags": [ "sports", "transportation" - ] + ], + "assetId": "ead1da4a87ff6cb53441142f7ac37b8f", + "dataFormat": "adpcm", + "md5ext": "ead1da4a87ff6cb53441142f7ac37b8f.wav", + "sampleCount": 43689, + "rate": 22050 }, { "name": "Cave", - "md5": "881f1bf5f301a36efcce4204a44af9ab.wav", - "sampleCount": 163584, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops" - ] + ], + "assetId": "881f1bf5f301a36efcce4204a44af9ab", + "dataFormat": "adpcm", + "md5ext": "881f1bf5f301a36efcce4204a44af9ab.wav", + "sampleCount": 163577, + "rate": 22050 }, { "name": "Chatter", - "md5": "fd8543abeeba255072da239223d2d342.wav", - "sampleCount": 25843, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "squirrel", "chipmunk" - ] + ], + "assetId": "fd8543abeeba255072da239223d2d342", + "dataFormat": "adpcm", + "md5ext": "fd8543abeeba255072da239223d2d342.wav", + "sampleCount": 26417, + "rate": 22050 }, { "name": "Chee Chee", - "md5": "25f4826cdd61e0a1c623ec2324c16ca0.wav", - "sampleCount": 34560, - "rate": 22050, - "format": "", "tags": [ "animals", "monkey" - ] + ], + "assetId": "25f4826cdd61e0a1c623ec2324c16ca0", + "dataFormat": "", + "md5ext": "25f4826cdd61e0a1c623ec2324c16ca0.wav", + "sampleCount": 69120, + "rate": 44100 }, { "name": "Cheer", - "md5": "170e05c29d50918ae0b482c2955768c0.wav", - "sampleCount": 108864, - "rate": 22050, - "format": "adpcm", "tags": [ "sports", "human", "voice" - ] + ], + "assetId": "170e05c29d50918ae0b482c2955768c0", + "dataFormat": "adpcm", + "md5ext": "170e05c29d50918ae0b482c2955768c0.wav", + "sampleCount": 109729, + "rate": 22050 }, { "name": "Chill", - "md5": "c4e9e84fd9244ca43986c2bdb6669ae8.wav", - "sampleCount": 176400, - "rate": 22050, - "format": "", "tags": [ "loops", "music", "electronic", "chill" - ] + ], + "assetId": "c4e9e84fd9244ca43986c2bdb6669ae8", + "dataFormat": "", + "md5ext": "c4e9e84fd9244ca43986c2bdb6669ae8.wav", + "sampleCount": 352800, + "rate": 44100 }, { "name": "Chirp", - "md5": "3b8236bbb288019d93ae38362e865972.wav", - "sampleCount": 5301, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "bird" - ] + ], + "assetId": "3b8236bbb288019d93ae38362e865972", + "dataFormat": "adpcm", + "md5ext": "3b8236bbb288019d93ae38362e865972.wav", + "sampleCount": 6097, + "rate": 22050 }, { "name": "Chomp", - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "", "tags": [ "effects", "human" - ] + ], + "assetId": "0b1e3033140d094563248e61de4039e5", + "dataFormat": "", + "md5ext": "0b1e3033140d094563248e61de4039e5.wav", + "sampleCount": 11648, + "rate": 44100 }, { "name": "Chord", - "md5": "7ffe91cce06c5415df53610d173336e7.wav", - "sampleCount": 20608, - "rate": 11025, - "format": "", "tags": [ "music", "electronic" - ] + ], + "assetId": "7ffe91cce06c5415df53610d173336e7", + "dataFormat": "", + "md5ext": "7ffe91cce06c5415df53610d173336e7.wav", + "sampleCount": 82432, + "rate": 44100 }, { "name": "Clang", - "md5": "4102d78dc98ae81448b140f35fd73e80.wav", - "sampleCount": 26703, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "games" - ] + ], + "assetId": "4102d78dc98ae81448b140f35fd73e80", + "dataFormat": "adpcm", + "md5ext": "4102d78dc98ae81448b140f35fd73e80.wav", + "sampleCount": 27433, + "rate": 22050 }, { "name": "Clap Beatbox", - "md5": "abc70bb390f8e55f22f32265500d814a.wav", - "sampleCount": 4224, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "abc70bb390f8e55f22f32265500d814a", + "dataFormat": "", + "md5ext": "abc70bb390f8e55f22f32265500d814a.wav", + "sampleCount": 8448, + "rate": 44100 }, { "name": "Clapping", - "md5": "684ffae7bc3a65e35e9f0aaf7a579dd5.wav", - "sampleCount": 84160, - "rate": 22050, - "format": "", "tags": [ "human" - ] + ], + "assetId": "684ffae7bc3a65e35e9f0aaf7a579dd5", + "dataFormat": "", + "md5ext": "684ffae7bc3a65e35e9f0aaf7a579dd5.wav", + "sampleCount": 168320, + "rate": 44100 }, { "name": "Classical Piano", - "md5": "646ea2f42ab04b54f1359ccfac958561.wav", - "sampleCount": 152874, - "rate": 22050, - "format": "", "tags": [ "loops", "music", "classical", "bach" - ] + ], + "assetId": "646ea2f42ab04b54f1359ccfac958561", + "dataFormat": "", + "md5ext": "646ea2f42ab04b54f1359ccfac958561.wav", + "sampleCount": 305748, + "rate": 44100 }, { "name": "Clock Ticking", - "md5": "a634fcb87894520edbd7a534d1479ec4.wav", - "sampleCount": 109584, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "home" - ] + ], + "assetId": "a634fcb87894520edbd7a534d1479ec4", + "dataFormat": "adpcm", + "md5ext": "a634fcb87894520edbd7a534d1479ec4.wav", + "sampleCount": 109729, + "rate": 22050 }, { "name": "Clown Honk", - "md5": "ec66961f188e9b8a9c75771db744d096.wav", - "sampleCount": 9009, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "horn" - ] + ], + "assetId": "ec66961f188e9b8a9c75771db744d096", + "dataFormat": "adpcm", + "md5ext": "ec66961f188e9b8a9c75771db744d096.wav", + "sampleCount": 9145, + "rate": 22050 }, { "name": "Coin", - "md5": "1f81d88fb419084f4d82ffb859b94ed6.wav", - "sampleCount": 3975, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "1f81d88fb419084f4d82ffb859b94ed6", + "dataFormat": "adpcm", + "md5ext": "1f81d88fb419084f4d82ffb859b94ed6.wav", + "sampleCount": 4065, + "rate": 22050 }, { "name": "Collect", - "md5": "32514c51e03db680e9c63857b840ae78.wav", - "sampleCount": 13320, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "32514c51e03db680e9c63857b840ae78", + "dataFormat": "adpcm", + "md5ext": "32514c51e03db680e9c63857b840ae78.wav", + "sampleCount": 14225, + "rate": 22050 }, { "name": "Computer Beep", - "md5": "28c76b6bebd04be1383fe9ba4933d263.wav", - "sampleCount": 9536, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "28c76b6bebd04be1383fe9ba4933d263", + "dataFormat": "", + "md5ext": "28c76b6bebd04be1383fe9ba4933d263.wav", + "sampleCount": 38144, + "rate": 44100 }, { "name": "Computer Beep2", - "md5": "1da43f6d52d0615da8a250e28100a80d.wav", - "sampleCount": 19200, - "rate": 11025, - "format": "", "tags": [ "effects", "electronic" - ] + ], + "assetId": "1da43f6d52d0615da8a250e28100a80d", + "dataFormat": "", + "md5ext": "1da43f6d52d0615da8a250e28100a80d.wav", + "sampleCount": 76800, + "rate": 44100 }, { "name": "Connect", - "md5": "9aad12085708ccd279297d4bea9c5ae0.wav", - "sampleCount": 22623, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "9aad12085708ccd279297d4bea9c5ae0", + "dataFormat": "adpcm", + "md5ext": "9aad12085708ccd279297d4bea9c5ae0.wav", + "sampleCount": 23369, + "rate": 22050 }, { "name": "Cough1", - "md5": "98ec3e1eeb7893fca519aa52cc1ef3c1.wav", - "sampleCount": 7516, - "rate": 11025, - "format": "", "tags": [ "human" - ] + ], + "assetId": "98ec3e1eeb7893fca519aa52cc1ef3c1", + "dataFormat": "", + "md5ext": "98ec3e1eeb7893fca519aa52cc1ef3c1.wav", + "sampleCount": 30064, + "rate": 44100 }, { "name": "Cough2", - "md5": "467fe8ef3cab475af4b3088fd1261510.wav", - "sampleCount": 16612, - "rate": 22050, - "format": "", "tags": [ "human" - ] + ], + "assetId": "467fe8ef3cab475af4b3088fd1261510", + "dataFormat": "", + "md5ext": "467fe8ef3cab475af4b3088fd1261510.wav", + "sampleCount": 33224, + "rate": 44100 }, { "name": "Crank", - "md5": "a54f8ce520a0b9fff3cd53817e280ede.wav", - "sampleCount": 100649, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "a54f8ce520a0b9fff3cd53817e280ede", + "dataFormat": "adpcm", + "md5ext": "a54f8ce520a0b9fff3cd53817e280ede.wav", + "sampleCount": 100585, + "rate": 22050 }, { "name": "Crash Beatbox", - "md5": "725e29369e9138a43f11e0e5eb3eb562.wav", - "sampleCount": 26883, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "725e29369e9138a43f11e0e5eb3eb562", + "dataFormat": "", + "md5ext": "725e29369e9138a43f11e0e5eb3eb562.wav", + "sampleCount": 53766, + "rate": 44100 }, { "name": "Crash Cymbal", - "md5": "f2c47a46f614f467a7ac802ed9ec3d8e.wav", - "sampleCount": 25220, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "f2c47a46f614f467a7ac802ed9ec3d8e", + "dataFormat": "", + "md5ext": "f2c47a46f614f467a7ac802ed9ec3d8e.wav", + "sampleCount": 50440, + "rate": 44100 }, { "name": "Crazy Laugh", - "md5": "2293a751b71a2df8cdce1bec5558cc1e.wav", - "sampleCount": 37485, - "rate": 22050, - "format": "adpcm", "tags": [ "human", "cartoon", "voice" - ] + ], + "assetId": "2293a751b71a2df8cdce1bec5558cc1e", + "dataFormat": "adpcm", + "md5ext": "2293a751b71a2df8cdce1bec5558cc1e.wav", + "sampleCount": 37593, + "rate": 22050 }, { "name": "Cricket", - "md5": "a2b3cac37065c109aac17ed46005445e.wav", - "sampleCount": 3673, - "rate": 22050, - "format": "", "tags": [ "animals", "insects", "bugs" - ] + ], + "assetId": "a2b3cac37065c109aac17ed46005445e", + "dataFormat": "", + "md5ext": "a2b3cac37065c109aac17ed46005445e.wav", + "sampleCount": 7346, + "rate": 44100 }, { "name": "Crickets", - "md5": "cae6206eb3c57bb8c4b3e2ca362dfa6d.wav", - "sampleCount": 92160, - "rate": 22050, - "format": "", "tags": [ "animals", "insects", "bugs", "ambience", "background" - ] + ], + "assetId": "cae6206eb3c57bb8c4b3e2ca362dfa6d", + "dataFormat": "", + "md5ext": "cae6206eb3c57bb8c4b3e2ca362dfa6d.wav", + "sampleCount": 184320, + "rate": 44100 }, { "name": "Croak", - "md5": "c6ce0aadb89903a43f76fc20ea57633e.wav", - "sampleCount": 6424, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "frog", "toad" - ] + ], + "assetId": "c6ce0aadb89903a43f76fc20ea57633e", + "dataFormat": "adpcm", + "md5ext": "c6ce0aadb89903a43f76fc20ea57633e.wav", + "sampleCount": 7113, + "rate": 22050 }, { "name": "Crowd Gasp", - "md5": "0eaf773c9d1b06e801e7b5fd56298801.wav", - "sampleCount": 27434, - "rate": 22050, - "format": "adpcm", "tags": [ "voice", "human" - ] + ], + "assetId": "0eaf773c9d1b06e801e7b5fd56298801", + "dataFormat": "adpcm", + "md5ext": "0eaf773c9d1b06e801e7b5fd56298801.wav", + "sampleCount": 27433, + "rate": 22050 }, { "name": "Crowd Laugh", - "md5": "f4942ab2532087118e11b0c4d4e0e342.wav", - "sampleCount": 91584, - "rate": 22050, - "format": "adpcm", "tags": [ "voice", "human" - ] + ], + "assetId": "f4942ab2532087118e11b0c4d4e0e342", + "dataFormat": "adpcm", + "md5ext": "f4942ab2532087118e11b0c4d4e0e342.wav", + "sampleCount": 92457, + "rate": 22050 }, { "name": "Crunch", - "md5": "cac3341417949acc66781308a254529c.wav", - "sampleCount": 4297, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "cac3341417949acc66781308a254529c", + "dataFormat": "adpcm", + "md5ext": "cac3341417949acc66781308a254529c.wav", + "sampleCount": 5081, + "rate": 22050 }, { "name": "Cymbal", - "md5": "7c5405a9cf561f65a941aff10e661593.wav", - "sampleCount": 24118, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "electronic" - ] + ], + "assetId": "7c5405a9cf561f65a941aff10e661593", + "dataFormat": "adpcm", + "md5ext": "7c5405a9cf561f65a941aff10e661593.wav", + "sampleCount": 24385, + "rate": 22050 }, { "name": "Cymbal Crash", - "md5": "fa2c9da1d4fd70207ab749851853cb50.wav", - "sampleCount": 25219, - "rate": 22050, - "format": "", "tags": [ "music", "percussion" - ] + ], + "assetId": "fa2c9da1d4fd70207ab749851853cb50", + "dataFormat": "", + "md5ext": "fa2c9da1d4fd70207ab749851853cb50.wav", + "sampleCount": 50438, + "rate": 44100 }, { "name": "Cymbal Echo", - "md5": "bb243badd1201b2607bf2513df10cd97.wav", - "sampleCount": 44326, - "rate": 22050, - "format": "", "tags": [ "music", "loops", "hiphop" - ] + ], + "assetId": "bb243badd1201b2607bf2513df10cd97", + "dataFormat": "", + "md5ext": "bb243badd1201b2607bf2513df10cd97.wav", + "sampleCount": 88652, + "rate": 44100 }, { "name": "D Bass", - "md5": "5a3ae8a2665f50fdc38cc301fbac79ba.wav", - "sampleCount": 40192, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "5a3ae8a2665f50fdc38cc301fbac79ba", + "dataFormat": "", + "md5ext": "5a3ae8a2665f50fdc38cc301fbac79ba.wav", + "sampleCount": 80384, + "rate": 44100 }, { "name": "D Elec Bass", - "md5": "67a6d1aa68233a2fa641aee88c7f051f.wav", - "sampleCount": 5568, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "67a6d1aa68233a2fa641aee88c7f051f", + "dataFormat": "", + "md5ext": "67a6d1aa68233a2fa641aee88c7f051f.wav", + "sampleCount": 11136, + "rate": 44100 }, { "name": "D Elec Guitar", - "md5": "1b5de9866801eb2f9d4f57c7c3b473f5.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "1b5de9866801eb2f9d4f57c7c3b473f5", + "dataFormat": "", + "md5ext": "1b5de9866801eb2f9d4f57c7c3b473f5.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "D Elec Piano", - "md5": "835f136ca8d346a17b4d4baf8405be37.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "note", "piano", "keyboard" - ] + ], + "assetId": "835f136ca8d346a17b4d4baf8405be37", + "dataFormat": "", + "md5ext": "835f136ca8d346a17b4d4baf8405be37.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "D Guitar", - "md5": "2dbcfae6a55738f94bbb40aa5fcbf7ce.wav", - "sampleCount": 41120, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "2dbcfae6a55738f94bbb40aa5fcbf7ce", + "dataFormat": "", + "md5ext": "2dbcfae6a55738f94bbb40aa5fcbf7ce.wav", + "sampleCount": 82240, + "rate": 44100 }, { "name": "D Piano", - "md5": "51381ac422605ee8c7d64cfcbfd75efc.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "51381ac422605ee8c7d64cfcbfd75efc", + "dataFormat": "", + "md5ext": "51381ac422605ee8c7d64cfcbfd75efc.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "D Sax", - "md5": "39f41954a73c0e15d842061e1a4c5e1d.wav", - "sampleCount": 9555, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "39f41954a73c0e15d842061e1a4c5e1d", + "dataFormat": "", + "md5ext": "39f41954a73c0e15d842061e1a4c5e1d.wav", + "sampleCount": 19110, + "rate": 44100 }, { "name": "D Trombone", - "md5": "f3afca380ba74372d611d3f518c2f35b.wav", - "sampleCount": 17339, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "f3afca380ba74372d611d3f518c2f35b", + "dataFormat": "", + "md5ext": "f3afca380ba74372d611d3f518c2f35b.wav", + "sampleCount": 34678, + "rate": 44100 }, { "name": "D Trumpet", - "md5": "0b1345b8fe2ba3076fedb4f3ae48748a.wav", - "sampleCount": 12702, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "0b1345b8fe2ba3076fedb4f3ae48748a", + "dataFormat": "", + "md5ext": "0b1345b8fe2ba3076fedb4f3ae48748a.wav", + "sampleCount": 25404, + "rate": 44100 }, { "name": "Dance Around", - "md5": "8bcea76415eaf98ec1cbc3825845b934.wav", - "sampleCount": 343746, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "8bcea76415eaf98ec1cbc3825845b934", + "dataFormat": "adpcm", + "md5ext": "8bcea76415eaf98ec1cbc3825845b934.wav", + "sampleCount": 343409, + "rate": 22050 }, { "name": "Dance Celebrate", - "md5": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops", "electronic" - ] - }, - { - "name": "Dance Celebrate2", - "md5": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm", - "tags": [] + ], + "assetId": "0edb8fb88af19e6e17d0f8cf64c1d136", + "dataFormat": "adpcm", + "md5ext": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", + "sampleCount": 176785, + "rate": 22050 }, { "name": "Dance Chill Out", - "md5": "b235da45581b1f212c9e9cce70d2a2dc.wav", - "sampleCount": 222822, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "b235da45581b1f212c9e9cce70d2a2dc", + "dataFormat": "adpcm", + "md5ext": "b235da45581b1f212c9e9cce70d2a2dc.wav", + "sampleCount": 223521, + "rate": 22050 }, { "name": "Dance Energetic", - "md5": "e213e09ed852c621ba87cde7f95eec79.wav", - "sampleCount": 176400, - "rate": 22050, - "format": "", "tags": [ "loops", "music", "electronic", "EDM" - ] + ], + "assetId": "e213e09ed852c621ba87cde7f95eec79", + "dataFormat": "", + "md5ext": "e213e09ed852c621ba87cde7f95eec79.wav", + "sampleCount": 352800, + "rate": 44100 }, { "name": "Dance Funky", - "md5": "a8383eaddc02d33714dc5832c02ccf13.wav", - "sampleCount": 111412, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "a8383eaddc02d33714dc5832c02ccf13", + "dataFormat": "adpcm", + "md5ext": "a8383eaddc02d33714dc5832c02ccf13.wav", + "sampleCount": 111761, + "rate": 22050 }, { "name": "Dance Head Nod", - "md5": "65e8a47d55df3f4cb17722959f6220db.wav", - "sampleCount": 124519, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "65e8a47d55df3f4cb17722959f6220db", + "dataFormat": "adpcm", + "md5ext": "65e8a47d55df3f4cb17722959f6220db.wav", + "sampleCount": 124969, + "rate": 22050 }, { "name": "Dance Magic", - "md5": "042309f190183383c0b1c1fc3edc2e84.wav", - "sampleCount": 187200, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "042309f190183383c0b1c1fc3edc2e84", + "dataFormat": "adpcm", + "md5ext": "042309f190183383c0b1c1fc3edc2e84.wav", + "sampleCount": 187961, + "rate": 22050 }, { "name": "Dance Sitar", - "md5": "c4e893b927524ffd669898f69d096fd8.wav", - "sampleCount": 110505, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "india", "tabla" - ] + ], + "assetId": "c4e893b927524ffd669898f69d096fd8", + "dataFormat": "adpcm", + "md5ext": "c4e893b927524ffd669898f69d096fd8.wav", + "sampleCount": 110745, + "rate": 22050 }, { "name": "Dance Slow Mo", - "md5": "329ee6f3418c0a569418e102e620edf0.wav", - "sampleCount": 445643, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "329ee6f3418c0a569418e102e620edf0", + "dataFormat": "adpcm", + "md5ext": "329ee6f3418c0a569418e102e620edf0.wav", + "sampleCount": 446025, + "rate": 22050 }, { "name": "Dance Snare Beat", - "md5": "562587bdb75e3a8124cdaa46ba0f648b.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "562587bdb75e3a8124cdaa46ba0f648b", + "dataFormat": "adpcm", + "md5ext": "562587bdb75e3a8124cdaa46ba0f648b.wav", + "sampleCount": 176785, + "rate": 22050 }, { "name": "Dance Space", - "md5": "e15333f5ffaf08e145ace1610fccd67d.wav", - "sampleCount": 88200, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "e15333f5ffaf08e145ace1610fccd67d", + "dataFormat": "adpcm", + "md5ext": "e15333f5ffaf08e145ace1610fccd67d.wav", + "sampleCount": 88393, + "rate": 22050 }, { "name": "Disconnect", - "md5": "56df0714ed1ed455a2befd787a077214.wav", - "sampleCount": 27563, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "56df0714ed1ed455a2befd787a077214", + "dataFormat": "adpcm", + "md5ext": "56df0714ed1ed455a2befd787a077214.wav", + "sampleCount": 28449, + "rate": 22050 }, { "name": "Dog1", - "md5": "b15adefc3c12f758b6dc6a045362532f.wav", - "sampleCount": 3672, - "rate": 22050, - "format": "", "tags": [ "animals" - ] + ], + "assetId": "b15adefc3c12f758b6dc6a045362532f", + "dataFormat": "", + "md5ext": "b15adefc3c12f758b6dc6a045362532f.wav", + "sampleCount": 7344, + "rate": 44100 }, { "name": "Dog2", - "md5": "cd8fa8390b0efdd281882533fbfcfcfb.wav", - "sampleCount": 3168, - "rate": 22050, - "format": "", "tags": [ "animals" - ] + ], + "assetId": "cd8fa8390b0efdd281882533fbfcfcfb", + "dataFormat": "", + "md5ext": "cd8fa8390b0efdd281882533fbfcfcfb.wav", + "sampleCount": 6336, + "rate": 44100 }, { "name": "Door Closing", - "md5": "d8c78c6c272cca91342435ff543c1274.wav", - "sampleCount": 7454, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "home" - ] + ], + "assetId": "d8c78c6c272cca91342435ff543c1274", + "dataFormat": "adpcm", + "md5ext": "d8c78c6c272cca91342435ff543c1274.wav", + "sampleCount": 8129, + "rate": 22050 }, { "name": "Door Creak", - "md5": "56985da9c052a5e26007c99aa5a958f7.wav", - "sampleCount": 54272, - "rate": 11025, - "format": "", "tags": [ "effects", "home" - ] + ], + "assetId": "56985da9c052a5e26007c99aa5a958f7", + "dataFormat": "", + "md5ext": "56985da9c052a5e26007c99aa5a958f7.wav", + "sampleCount": 217088, + "rate": 44100 }, { "name": "Doorbell", - "md5": "b67db6ed07f882e52a9ef4dbb76f5f64.wav", - "sampleCount": 109662, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "home" - ] + ], + "assetId": "b67db6ed07f882e52a9ef4dbb76f5f64", + "dataFormat": "adpcm", + "md5ext": "b67db6ed07f882e52a9ef4dbb76f5f64.wav", + "sampleCount": 109729, + "rate": 22050 }, { "name": "Drip Drop", - "md5": "3249e61fa135d0a1d68ff515ba3bd92f.wav", - "sampleCount": 62680, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "3249e61fa135d0a1d68ff515ba3bd92f", + "dataFormat": "adpcm", + "md5ext": "3249e61fa135d0a1d68ff515ba3bd92f.wav", + "sampleCount": 62993, + "rate": 22050 }, { "name": "Drive Around", - "md5": "a3a85fb8564b0266f50a9c091087b7aa.wav", - "sampleCount": 44096, - "rate": 22050, - "format": "", "tags": [ "music", "loops", "electronic" - ] + ], + "assetId": "a3a85fb8564b0266f50a9c091087b7aa", + "dataFormat": "", + "md5ext": "a3a85fb8564b0266f50a9c091087b7aa.wav", + "sampleCount": 88192, + "rate": 44100 }, { "name": "Drum", - "md5": "f730246174873cd4ae4127c83e475b50.wav", - "sampleCount": 107136, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "loops", "hiphop", "jazz" - ] + ], + "assetId": "f730246174873cd4ae4127c83e475b50", + "dataFormat": "adpcm", + "md5ext": "f730246174873cd4ae4127c83e475b50.wav", + "sampleCount": 107697, + "rate": 22050 }, { "name": "Drum Bass1", - "md5": "48328c874353617451e4c7902cc82817.wav", - "sampleCount": 6528, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "48328c874353617451e4c7902cc82817", + "dataFormat": "", + "md5ext": "48328c874353617451e4c7902cc82817.wav", + "sampleCount": 13056, + "rate": 44100 }, { "name": "Drum Bass2", - "md5": "711a1270d1cf2e5de9b145ee539213e4.wav", - "sampleCount": 3791, - "rate": 22050, - "format": "adpcm", - "tags": [] + "tags": [], + "assetId": "711a1270d1cf2e5de9b145ee539213e4", + "dataFormat": "adpcm", + "md5ext": "711a1270d1cf2e5de9b145ee539213e4.wav", + "sampleCount": 4065, + "rate": 22050 }, { "name": "Drum Bass3", - "md5": "c21704337b16359ea631b5f8eb48f765.wav", - "sampleCount": 8576, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "c21704337b16359ea631b5f8eb48f765", + "dataFormat": "", + "md5ext": "c21704337b16359ea631b5f8eb48f765.wav", + "sampleCount": 17152, + "rate": 44100 }, { "name": "Drum Boing", - "md5": "5f4216970527d5a2e259758ba12e6a1b.wav", - "sampleCount": 18640, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "wacky", "cartoon", "percussion" - ] + ], + "assetId": "5f4216970527d5a2e259758ba12e6a1b", + "dataFormat": "adpcm", + "md5ext": "5f4216970527d5a2e259758ba12e6a1b.wav", + "sampleCount": 19305, + "rate": 22050 }, { "name": "Drum Buzz", - "md5": "3650dc4262bcc5010c0d8fa8d7c670cf.wav", - "sampleCount": 5742, - "rate": 11025, - "format": "", "tags": [ "music", "electronic", "percussion" - ] + ], + "assetId": "3650dc4262bcc5010c0d8fa8d7c670cf", + "dataFormat": "", + "md5ext": "3650dc4262bcc5010c0d8fa8d7c670cf.wav", + "sampleCount": 22968, + "rate": 44100 }, { "name": "Drum Funky", - "md5": "fb56022366d21b299cbc3fd5e16000c2.wav", - "sampleCount": 44748, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops", "hiphop" - ] + ], + "assetId": "fb56022366d21b299cbc3fd5e16000c2", + "dataFormat": "adpcm", + "md5ext": "fb56022366d21b299cbc3fd5e16000c2.wav", + "sampleCount": 44705, + "rate": 22050 }, { "name": "Drum Jam", - "md5": "8b5486ccc806e97e83049d25b071f7e4.wav", - "sampleCount": 44288, - "rate": 22050, - "format": "", "tags": [ "music", "loops", "percussion" - ] + ], + "assetId": "8b5486ccc806e97e83049d25b071f7e4", + "dataFormat": "", + "md5ext": "8b5486ccc806e97e83049d25b071f7e4.wav", + "sampleCount": 88576, + "rate": 44100 }, { "name": "Drum Machine", - "md5": "f9d53d773b42e16df3dfca6174015592.wav", - "sampleCount": 105984, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "f9d53d773b42e16df3dfca6174015592", + "dataFormat": "adpcm", + "md5ext": "f9d53d773b42e16df3dfca6174015592.wav", + "sampleCount": 106681, + "rate": 22050 }, { "name": "Drum Roll", - "md5": "fb12e119d7a88a7f75ab980243f75073.wav", - "sampleCount": 37809, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "percussion" - ] + ], + "assetId": "fb12e119d7a88a7f75ab980243f75073", + "dataFormat": "adpcm", + "md5ext": "fb12e119d7a88a7f75ab980243f75073.wav", + "sampleCount": 38609, + "rate": 22050 }, { "name": "Drum Satellite", - "md5": "079067d7909f791b29f8be1c00fc2131.wav", - "sampleCount": 44096, - "rate": 22050, - "format": "", "tags": [ "music", "loops", "percussion" - ] + ], + "assetId": "079067d7909f791b29f8be1c00fc2131", + "dataFormat": "", + "md5ext": "079067d7909f791b29f8be1c00fc2131.wav", + "sampleCount": 88192, + "rate": 44100 }, { "name": "Drum Set1", - "md5": "38a2bb8129bddb4e8eaa06781cfa3040.wav", - "sampleCount": 46080, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "jazz", "loops" - ] + ], + "assetId": "38a2bb8129bddb4e8eaa06781cfa3040", + "dataFormat": "adpcm", + "md5ext": "38a2bb8129bddb4e8eaa06781cfa3040.wav", + "sampleCount": 46737, + "rate": 22050 }, { "name": "Drum Set2", - "md5": "738e871fda577295e8beb9021f670e28.wav", - "sampleCount": 37440, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "jazz", "loops" - ] + ], + "assetId": "738e871fda577295e8beb9021f670e28", + "dataFormat": "adpcm", + "md5ext": "738e871fda577295e8beb9021f670e28.wav", + "sampleCount": 37593, + "rate": 22050 }, { "name": "Dubstep", - "md5": "906af1e30f19a919d203b2eb307e04ac.wav", - "sampleCount": 151216, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "electronic", "EDM" - ] + ], + "assetId": "906af1e30f19a919d203b2eb307e04ac", + "dataFormat": "adpcm", + "md5ext": "906af1e30f19a919d203b2eb307e04ac.wav", + "sampleCount": 151385, + "rate": 22050 }, { "name": "Duck", - "md5": "af5b039e1b05e0ccb12944f648a8884e.wav", - "sampleCount": 5792, - "rate": 22050, - "format": "", "tags": [ "animals" - ] + ], + "assetId": "af5b039e1b05e0ccb12944f648a8884e", + "dataFormat": "", + "md5ext": "af5b039e1b05e0ccb12944f648a8884e.wav", + "sampleCount": 11584, + "rate": 44100 }, { "name": "Dun Dun Dunnn", - "md5": "e956a99ab9ac64cfb5c6b2d8b1e949eb.wav", - "sampleCount": 63729, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "surprise", "wacky", "dramatic" - ] + ], + "assetId": "e956a99ab9ac64cfb5c6b2d8b1e949eb", + "dataFormat": "adpcm", + "md5ext": "e956a99ab9ac64cfb5c6b2d8b1e949eb.wav", + "sampleCount": 64009, + "rate": 22050 }, { "name": "E Bass", - "md5": "0657e39bae81a232b01a18f727d3b891.wav", - "sampleCount": 36160, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "0657e39bae81a232b01a18f727d3b891", + "dataFormat": "", + "md5ext": "0657e39bae81a232b01a18f727d3b891.wav", + "sampleCount": 72320, + "rate": 44100 }, { "name": "E Elec Bass", - "md5": "0704b8ceabe54f1dcedda8c98f1119fd.wav", - "sampleCount": 5691, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "0704b8ceabe54f1dcedda8c98f1119fd", + "dataFormat": "", + "md5ext": "0704b8ceabe54f1dcedda8c98f1119fd.wav", + "sampleCount": 11382, + "rate": 44100 }, { "name": "E Elec Guitar", - "md5": "2e6a6ae3e0f72bf78c74def8130f459a.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "2e6a6ae3e0f72bf78c74def8130f459a", + "dataFormat": "", + "md5ext": "2e6a6ae3e0f72bf78c74def8130f459a.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "E Elec Piano", - "md5": "ab3c198f8e36efff14f0a5bad35fa3cd.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "note", "piano", "keyboard" - ] + ], + "assetId": "ab3c198f8e36efff14f0a5bad35fa3cd", + "dataFormat": "", + "md5ext": "ab3c198f8e36efff14f0a5bad35fa3cd.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "E Guitar", - "md5": "4b5d1da83e59bf35578324573c991666.wav", - "sampleCount": 38400, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "4b5d1da83e59bf35578324573c991666", + "dataFormat": "", + "md5ext": "4b5d1da83e59bf35578324573c991666.wav", + "sampleCount": 76800, + "rate": 44100 }, { "name": "E Piano", - "md5": "c818fdfaf8a0efcb562e24e794700a57.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "c818fdfaf8a0efcb562e24e794700a57", + "dataFormat": "", + "md5ext": "c818fdfaf8a0efcb562e24e794700a57.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "E Sax", - "md5": "3568b7dfe173fab6877a9ff1dcbcf1aa.wav", - "sampleCount": 7489, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "3568b7dfe173fab6877a9ff1dcbcf1aa", + "dataFormat": "", + "md5ext": "3568b7dfe173fab6877a9ff1dcbcf1aa.wav", + "sampleCount": 14978, + "rate": 44100 }, { "name": "E Trombone", - "md5": "c859fb0954acaa25c4b329df5fb76434.wav", - "sampleCount": 16699, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "c859fb0954acaa25c4b329df5fb76434", + "dataFormat": "", + "md5ext": "c859fb0954acaa25c4b329df5fb76434.wav", + "sampleCount": 33398, + "rate": 44100 }, { "name": "E Trumpet", - "md5": "494295a92314cadb220945a6711c568c.wav", - "sampleCount": 8680, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "494295a92314cadb220945a6711c568c", + "dataFormat": "adpcm", + "md5ext": "494295a92314cadb220945a6711c568c.wav", + "sampleCount": 9145, + "rate": 22050 }, { "name": "Eggs", - "md5": "659de1f3826ece8dbeca948884835f14.wav", - "sampleCount": 336480, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops" - ] + ], + "assetId": "659de1f3826ece8dbeca948884835f14", + "dataFormat": "adpcm", + "md5ext": "659de1f3826ece8dbeca948884835f14.wav", + "sampleCount": 336297, + "rate": 22050 }, { "name": "Elec Piano A Minor", - "md5": "8fe470b5f2fb58364b153fe647adcbbf.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "notes", "instruments" - ] + ], + "assetId": "8fe470b5f2fb58364b153fe647adcbbf", + "dataFormat": "", + "md5ext": "8fe470b5f2fb58364b153fe647adcbbf.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "Elec Piano C Major", - "md5": "228429930dfc60f48d75ce8e14291416.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "notes", "instruments" - ] + ], + "assetId": "228429930dfc60f48d75ce8e14291416", + "dataFormat": "", + "md5ext": "228429930dfc60f48d75ce8e14291416.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "Elec Piano F Major", - "md5": "740098316ed06d9a64c14b93f65c5da5.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "notes", "instruments" - ] + ], + "assetId": "740098316ed06d9a64c14b93f65c5da5", + "dataFormat": "", + "md5ext": "740098316ed06d9a64c14b93f65c5da5.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "Elec Piano G Major", - "md5": "5a5f5de80bcdf782250e889747b374bd.wav", - "sampleCount": 43908, - "rate": 22050, - "format": "", "tags": [ "music", "notes", "instruments" - ] + ], + "assetId": "5a5f5de80bcdf782250e889747b374bd", + "dataFormat": "", + "md5ext": "5a5f5de80bcdf782250e889747b374bd.wav", + "sampleCount": 87816, + "rate": 44100 }, { "name": "Elec Piano Loop", - "md5": "7b4822ccca655db47de0880bab0e7bd9.wav", - "sampleCount": 43844, - "rate": 22050, - "format": "", "tags": [ "music", "notes", "instruments", "loops" - ] + ], + "assetId": "7b4822ccca655db47de0880bab0e7bd9", + "dataFormat": "", + "md5ext": "7b4822ccca655db47de0880bab0e7bd9.wav", + "sampleCount": 87688, + "rate": 44100 }, { "name": "Emotional Piano", - "md5": "c587075453ace1584cf155d6a8de604d.wav", - "sampleCount": 165090, - "rate": 22050, - "format": "", "tags": [ "loops", "music", "chill", "calm" - ] + ], + "assetId": "c587075453ace1584cf155d6a8de604d", + "dataFormat": "", + "md5ext": "c587075453ace1584cf155d6a8de604d.wav", + "sampleCount": 330180, + "rate": 44100 }, { "name": "Engine", - "md5": "f5c4e2311024f18c989e53f9b3448db8.wav", - "sampleCount": 172729, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "transportation" - ] + ], + "assetId": "f5c4e2311024f18c989e53f9b3448db8", + "dataFormat": "adpcm", + "md5ext": "f5c4e2311024f18c989e53f9b3448db8.wav", + "sampleCount": 172721, + "rate": 22050 }, { "name": "F Bass", - "md5": "ea21bdae86f70d60b28f1dddcf50d104.wav", - "sampleCount": 34368, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "ea21bdae86f70d60b28f1dddcf50d104", + "dataFormat": "", + "md5ext": "ea21bdae86f70d60b28f1dddcf50d104.wav", + "sampleCount": 68736, + "rate": 44100 }, { "name": "F Elec Bass", - "md5": "45eedb4ce62a9cbbd2207824b94a4641.wav", - "sampleCount": 5312, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "45eedb4ce62a9cbbd2207824b94a4641", + "dataFormat": "", + "md5ext": "45eedb4ce62a9cbbd2207824b94a4641.wav", + "sampleCount": 10624, + "rate": 44100 }, { "name": "F Elec Guitar", - "md5": "5eb00f15f21f734986aa45156d44478d.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "5eb00f15f21f734986aa45156d44478d", + "dataFormat": "", + "md5ext": "5eb00f15f21f734986aa45156d44478d.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "F Elec Piano", - "md5": "dc5e368fc0d0dad1da609bfc3e29aa15.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "note", "piano", "keyboard" - ] + ], + "assetId": "dc5e368fc0d0dad1da609bfc3e29aa15", + "dataFormat": "", + "md5ext": "dc5e368fc0d0dad1da609bfc3e29aa15.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "F Guitar", - "md5": "b51d086aeb1921ec405561df52ecbc50.wav", - "sampleCount": 36416, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "b51d086aeb1921ec405561df52ecbc50", + "dataFormat": "", + "md5ext": "b51d086aeb1921ec405561df52ecbc50.wav", + "sampleCount": 72832, + "rate": 44100 }, { "name": "F Major Ukulele", - "md5": "cd0ab5d1b0120c6ed92a1654ccf81376.wav", - "sampleCount": 18235, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes", "chords" - ] + ], + "assetId": "cd0ab5d1b0120c6ed92a1654ccf81376", + "dataFormat": "", + "md5ext": "cd0ab5d1b0120c6ed92a1654ccf81376.wav", + "sampleCount": 36470, + "rate": 44100 }, { "name": "F Piano", - "md5": "cdab3cce84f74ecf53e3941c6a003b5e.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "cdab3cce84f74ecf53e3941c6a003b5e", + "dataFormat": "", + "md5ext": "cdab3cce84f74ecf53e3941c6a003b5e.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "F Sax", - "md5": "2ae3083817bcd595e26ea2884b6684d5.wav", - "sampleCount": 7361, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "2ae3083817bcd595e26ea2884b6684d5", + "dataFormat": "adpcm", + "md5ext": "2ae3083817bcd595e26ea2884b6684d5.wav", + "sampleCount": 8129, + "rate": 22050 }, { "name": "F Trombone", - "md5": "d6758470457aac2aa712717a676a5163.wav", - "sampleCount": 19373, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "d6758470457aac2aa712717a676a5163", + "dataFormat": "", + "md5ext": "d6758470457aac2aa712717a676a5163.wav", + "sampleCount": 38746, + "rate": 44100 }, { "name": "F Trumpet", - "md5": "5fa3108b119ca266029b4caa340a7cd0.wav", - "sampleCount": 12766, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "5fa3108b119ca266029b4caa340a7cd0", + "dataFormat": "", + "md5ext": "5fa3108b119ca266029b4caa340a7cd0.wav", + "sampleCount": 25532, + "rate": 44100 }, { "name": "Fairydust", - "md5": "b92de59d992a655c1b542223a784cda6.wav", - "sampleCount": 11247, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "b92de59d992a655c1b542223a784cda6", + "dataFormat": "", + "md5ext": "b92de59d992a655c1b542223a784cda6.wav", + "sampleCount": 22494, + "rate": 44100 }, { "name": "Finger Snap", - "md5": "99d02ffb3212d86b3e5b173b6f33f835.wav", - "sampleCount": 1985, - "rate": 11025, - "format": "", "tags": [ "effects", "percussion", "human" - ] + ], + "assetId": "99d02ffb3212d86b3e5b173b6f33f835", + "dataFormat": "", + "md5ext": "99d02ffb3212d86b3e5b173b6f33f835.wav", + "sampleCount": 7940, + "rate": 44100 }, { "name": "Flam Snare", - "md5": "3b6cce9f8c56c0537ca61eee3945cd1d.wav", - "sampleCount": 4416, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "3b6cce9f8c56c0537ca61eee3945cd1d", + "dataFormat": "", + "md5ext": "3b6cce9f8c56c0537ca61eee3945cd1d.wav", + "sampleCount": 8832, + "rate": 44100 }, { "name": "Footsteps", - "md5": "c893b0a9b3e2e0594f1f921a12aa66be.wav", - "sampleCount": 58880, - "rate": 11025, - "format": "", "tags": [ "effects", "human" - ] + ], + "assetId": "c893b0a9b3e2e0594f1f921a12aa66be", + "dataFormat": "", + "md5ext": "c893b0a9b3e2e0594f1f921a12aa66be.wav", + "sampleCount": 235520, + "rate": 44100 }, { "name": "G Bass", - "md5": "05c192194e8f1944514dce3833e33439.wav", - "sampleCount": 30976, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "05c192194e8f1944514dce3833e33439", + "dataFormat": "", + "md5ext": "05c192194e8f1944514dce3833e33439.wav", + "sampleCount": 61952, + "rate": 44100 }, { "name": "G Elec Bass", - "md5": "97b187d72219b994a6ef6a5a6b09605c.wav", - "sampleCount": 5568, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "97b187d72219b994a6ef6a5a6b09605c", + "dataFormat": "", + "md5ext": "97b187d72219b994a6ef6a5a6b09605c.wav", + "sampleCount": 11136, + "rate": 44100 }, { "name": "G Elec Guitar", - "md5": "cd0d0e7dad415b2ffa2ba7a61860eaf8.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "cd0d0e7dad415b2ffa2ba7a61860eaf8", + "dataFormat": "", + "md5ext": "cd0d0e7dad415b2ffa2ba7a61860eaf8.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "G Elec Piano", - "md5": "39525f6545d62a95d05153f92d63301a.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "note", "piano", "keyboard" - ] + ], + "assetId": "39525f6545d62a95d05153f92d63301a", + "dataFormat": "", + "md5ext": "39525f6545d62a95d05153f92d63301a.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "G Guitar", - "md5": "98a835713ecea2f3ef9f4f442d52ad20.wav", - "sampleCount": 33600, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "98a835713ecea2f3ef9f4f442d52ad20", + "dataFormat": "", + "md5ext": "98a835713ecea2f3ef9f4f442d52ad20.wav", + "sampleCount": 67200, + "rate": 44100 }, { "name": "G Piano", - "md5": "42bb2ed28e7023e111b33220e1594a6f.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "42bb2ed28e7023e111b33220e1594a6f", + "dataFormat": "", + "md5ext": "42bb2ed28e7023e111b33220e1594a6f.wav", + "sampleCount": 88200, + "rate": 44100 }, { "name": "G Sax", - "md5": "cefba5de46adfe5702485e0934bb1e13.wav", - "sampleCount": 7349, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "cefba5de46adfe5702485e0934bb1e13", + "dataFormat": "adpcm", + "md5ext": "cefba5de46adfe5702485e0934bb1e13.wav", + "sampleCount": 8129, + "rate": 22050 }, { "name": "G Trombone", - "md5": "9436fd7a0eacb4a6067e7db14236dde1.wav", - "sampleCount": 17179, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "9436fd7a0eacb4a6067e7db14236dde1", + "dataFormat": "", + "md5ext": "9436fd7a0eacb4a6067e7db14236dde1.wav", + "sampleCount": 34358, + "rate": 44100 }, { "name": "G Trumpet", - "md5": "e84afda25975f14b364118591538ccf4.wav", - "sampleCount": 14640, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes" - ] + ], + "assetId": "e84afda25975f14b364118591538ccf4", + "dataFormat": "", + "md5ext": "e84afda25975f14b364118591538ccf4.wav", + "sampleCount": 29280, + "rate": 44100 }, { "name": "G Ukulele", - "md5": "d20218f92ee606277658959005538e2d.wav", - "sampleCount": 18235, - "rate": 22050, - "format": "", "tags": [ "music", "instruments", "notes", "chords" - ] + ], + "assetId": "d20218f92ee606277658959005538e2d", + "dataFormat": "", + "md5ext": "d20218f92ee606277658959005538e2d.wav", + "sampleCount": 36470, + "rate": 44100 }, { "name": "Gallop", - "md5": "8388c266cd774a8e8c8796155b18ef47.wav", - "sampleCount": 36209, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "horse" - ] + ], + "assetId": "8388c266cd774a8e8c8796155b18ef47", + "dataFormat": "adpcm", + "md5ext": "8388c266cd774a8e8c8796155b18ef47.wav", + "sampleCount": 36577, + "rate": 22050 }, { "name": "Garden", - "md5": "7c25f6d39011cd2ee5ffb1af539d9d0c.wav", - "sampleCount": 371520, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops" - ] + ], + "assetId": "7c25f6d39011cd2ee5ffb1af539d9d0c", + "dataFormat": "adpcm", + "md5ext": "7c25f6d39011cd2ee5ffb1af539d9d0c.wav", + "sampleCount": 371857, + "rate": 22050 }, { "name": "Glass Breaking", - "md5": "4b33c58ba14e4555373fa2478b3f891f.wav", - "sampleCount": 52237, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "4b33c58ba14e4555373fa2478b3f891f", + "dataFormat": "adpcm", + "md5ext": "4b33c58ba14e4555373fa2478b3f891f.wav", + "sampleCount": 52833, + "rate": 22050 }, { "name": "Glug", - "md5": "5606722c6105f3c58f9689a958f5c45f.wav", - "sampleCount": 12100, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "potion", "drink", "water" - ] + ], + "assetId": "5606722c6105f3c58f9689a958f5c45f", + "dataFormat": "adpcm", + "md5ext": "5606722c6105f3c58f9689a958f5c45f.wav", + "sampleCount": 12193, + "rate": 22050 }, { "name": "Goal Cheer", - "md5": "a434069c58e79d42f5d21abb1c318919.wav", - "sampleCount": 84096, - "rate": 22050, - "format": "adpcm", "tags": [ "sports", "human", "voice" - ] + ], + "assetId": "a434069c58e79d42f5d21abb1c318919", + "dataFormat": "adpcm", + "md5ext": "a434069c58e79d42f5d21abb1c318919.wav", + "sampleCount": 84329, + "rate": 22050 }, { "name": "Gong", - "md5": "9d30c38443691e9626d510546d98327c.wav", - "sampleCount": 114432, - "rate": 11025, - "format": "", "tags": [ "music", "percussion" - ] + ], + "assetId": "9d30c38443691e9626d510546d98327c", + "dataFormat": "", + "md5ext": "9d30c38443691e9626d510546d98327c.wav", + "sampleCount": 457728, + "rate": 44100 }, { "name": "Goose", - "md5": "16a3b9d516e125cdb2ad74cd8d205d71.wav", - "sampleCount": 8208, - "rate": 22050, - "format": "", "tags": [ "animals", "birds" - ] + ], + "assetId": "16a3b9d516e125cdb2ad74cd8d205d71", + "dataFormat": "", + "md5ext": "16a3b9d516e125cdb2ad74cd8d205d71.wav", + "sampleCount": 16416, + "rate": 44100 }, { "name": "Growl", - "md5": "79d052b0921d2078d42389328b1be168.wav", - "sampleCount": 19228, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "dog" - ] + ], + "assetId": "79d052b0921d2078d42389328b1be168", + "dataFormat": "adpcm", + "md5ext": "79d052b0921d2078d42389328b1be168.wav", + "sampleCount": 19305, + "rate": 22050 }, { "name": "Grunt", - "md5": "caa0a1685ef7a5334413834c6c818c5a.wav", - "sampleCount": 20551, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "buffalo" - ] + ], + "assetId": "caa0a1685ef7a5334413834c6c818c5a", + "dataFormat": "adpcm", + "md5ext": "caa0a1685ef7a5334413834c6c818c5a.wav", + "sampleCount": 21337, + "rate": 22050 }, { "name": "Guitar Chords1", - "md5": "2b1a5bc63580d8625cf24ff3d7622c0b.wav", - "sampleCount": 123264, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "instruments", "loops" - ] + ], + "assetId": "2b1a5bc63580d8625cf24ff3d7622c0b", + "dataFormat": "adpcm", + "md5ext": "2b1a5bc63580d8625cf24ff3d7622c0b.wav", + "sampleCount": 123953, + "rate": 22050 }, { "name": "Guitar Chords2", - "md5": "e956f15da397a13fae0c90d9fe4571fb.wav", - "sampleCount": 158976, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "instruments", "loops" - ] + ], + "assetId": "e956f15da397a13fae0c90d9fe4571fb", + "dataFormat": "adpcm", + "md5ext": "e956f15da397a13fae0c90d9fe4571fb.wav", + "sampleCount": 159513, + "rate": 22050 }, { "name": "Guitar Strum", - "md5": "29000fa713f70765147ee0551fa42d9e.wav", - "sampleCount": 25216, - "rate": 11025, - "format": "", "tags": [ "music", "instruments", "chords" - ] + ], + "assetId": "29000fa713f70765147ee0551fa42d9e", + "dataFormat": "", + "md5ext": "29000fa713f70765147ee0551fa42d9e.wav", + "sampleCount": 100864, + "rate": 44100 }, { "name": "Hand Clap", - "md5": "9502142875e67f7b0292a117a27e9563.wav", - "sampleCount": 2464, - "rate": 22050, - "format": "", "tags": [ "human", "percussion" - ] + ], + "assetId": "9502142875e67f7b0292a117a27e9563", + "dataFormat": "", + "md5ext": "9502142875e67f7b0292a117a27e9563.wav", + "sampleCount": 4928, + "rate": 44100 }, { "name": "Head Shake", - "md5": "e56fdc9f76d035ff01f4e7b39e9e9989.wav", - "sampleCount": 20025, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "wacky", "cartoon" - ] + ], + "assetId": "e56fdc9f76d035ff01f4e7b39e9e9989", + "dataFormat": "adpcm", + "md5ext": "e56fdc9f76d035ff01f4e7b39e9e9989.wav", + "sampleCount": 20321, + "rate": 22050 }, { "name": "Hey", - "md5": "ec7c272faa862c9f8f731792e686e3c9.wav", - "sampleCount": 5414, - "rate": 22050, - "format": "adpcm", "tags": [ "human", "voice" - ] + ], + "assetId": "ec7c272faa862c9f8f731792e686e3c9", + "dataFormat": "adpcm", + "md5ext": "ec7c272faa862c9f8f731792e686e3c9.wav", + "sampleCount": 6097, + "rate": 22050 }, { "name": "Hi Beatbox", - "md5": "5a07847bf246c227204728b05a3fc8f3.wav", - "sampleCount": 5856, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "5a07847bf246c227204728b05a3fc8f3", + "dataFormat": "", + "md5ext": "5a07847bf246c227204728b05a3fc8f3.wav", + "sampleCount": 11712, + "rate": 44100 }, { "name": "Hi Na Tabla", - "md5": "35b42d98c43404a5b1b52fb232a62bd7.wav", - "sampleCount": 4096, - "rate": 22050, - "format": "", "tags": [ "drums", "instrument", "percussion" - ] + ], + "assetId": "35b42d98c43404a5b1b52fb232a62bd7", + "dataFormat": "", + "md5ext": "35b42d98c43404a5b1b52fb232a62bd7.wav", + "sampleCount": 8192, + "rate": 44100 }, { "name": "Hi Tun Tabla", - "md5": "da734693dfa6a9a7eccdc7f9a0ca9840.wav", - "sampleCount": 18656, - "rate": 22050, - "format": "", "tags": [ "drums", "instrument", "percussion" - ] + ], + "assetId": "da734693dfa6a9a7eccdc7f9a0ca9840", + "dataFormat": "", + "md5ext": "da734693dfa6a9a7eccdc7f9a0ca9840.wav", + "sampleCount": 37312, + "rate": 44100 }, { "name": "High Conga", - "md5": "16144544de90e98a92a265d4fc3241ea.wav", - "sampleCount": 8192, - "rate": 22050, - "format": "", "tags": [ "drums", "instrument", "percussion" - ] + ], + "assetId": "16144544de90e98a92a265d4fc3241ea", + "dataFormat": "", + "md5ext": "16144544de90e98a92a265d4fc3241ea.wav", + "sampleCount": 16384, + "rate": 44100 }, { "name": "High Hat", - "md5": "0d91b2759ac861d156235f5ecf8d3218.wav", - "sampleCount": 2757, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "drums" - ] + ], + "assetId": "0d91b2759ac861d156235f5ecf8d3218", + "dataFormat": "adpcm", + "md5ext": "0d91b2759ac861d156235f5ecf8d3218.wav", + "sampleCount": 3049, + "rate": 22050 }, { "name": "High Tom", - "md5": "d623f99b3c8d33932eb2c6c9cfd817c5.wav", - "sampleCount": 12320, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "d623f99b3c8d33932eb2c6c9cfd817c5", + "dataFormat": "", + "md5ext": "d623f99b3c8d33932eb2c6c9cfd817c5.wav", + "sampleCount": 24640, + "rate": 44100 }, { "name": "High Whoosh", - "md5": "6a10c380af8c400f8f6eea84eb28bd12.wav", - "sampleCount": 6116, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "games" - ] + ], + "assetId": "6a10c380af8c400f8f6eea84eb28bd12", + "dataFormat": "adpcm", + "md5ext": "6a10c380af8c400f8f6eea84eb28bd12.wav", + "sampleCount": 7113, + "rate": 22050 }, { "name": "Hihat Beatbox", - "md5": "5a07847bf246c227204728b05a3fc8f3.wav", - "sampleCount": 5856, - "rate": 22050, - "format": "", "tags": [ "human", "percussion", "music", "hiphop" - ] + ], + "assetId": "5a07847bf246c227204728b05a3fc8f3", + "dataFormat": "", + "md5ext": "5a07847bf246c227204728b05a3fc8f3.wav", + "sampleCount": 11712, + "rate": 44100 }, { "name": "Hihat Cymbal", - "md5": "2d01f60d0f20ab39facbf707899c6b2a.wav", - "sampleCount": 2752, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "2d01f60d0f20ab39facbf707899c6b2a", + "dataFormat": "", + "md5ext": "2d01f60d0f20ab39facbf707899c6b2a.wav", + "sampleCount": 5504, + "rate": 44100 }, { "name": "Hip Hop", - "md5": "7ed8ce1853bde6dcbc6f7f5a1c65ae47.wav", - "sampleCount": 108864, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops", "hiphop" - ] + ], + "assetId": "7ed8ce1853bde6dcbc6f7f5a1c65ae47", + "dataFormat": "adpcm", + "md5ext": "7ed8ce1853bde6dcbc6f7f5a1c65ae47.wav", + "sampleCount": 109729, + "rate": 22050 }, { "name": "Horse", - "md5": "45ffcf97ee2edca0199ff5aa71a5b72e.wav", - "sampleCount": 14464, - "rate": 11025, - "format": "", "tags": [ "animals", "effects" - ] + ], + "assetId": "45ffcf97ee2edca0199ff5aa71a5b72e", + "dataFormat": "", + "md5ext": "45ffcf97ee2edca0199ff5aa71a5b72e.wav", + "sampleCount": 57856, + "rate": 44100 }, { "name": "Horse Gallop", - "md5": "058a34b5fb8b57178b5322d994b6b8c8.wav", - "sampleCount": 38336, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "058a34b5fb8b57178b5322d994b6b8c8", + "dataFormat": "", + "md5ext": "058a34b5fb8b57178b5322d994b6b8c8.wav", + "sampleCount": 153344, + "rate": 44100 }, { "name": "Human Beatbox1", - "md5": "37f37455c35fea71449926eb0bff05dd.wav", - "sampleCount": 103680, - "rate": 22050, - "format": "adpcm", "tags": [ "human", "percussion", "music", "hiphop", "loops" - ] + ], + "assetId": "37f37455c35fea71449926eb0bff05dd", + "dataFormat": "adpcm", + "md5ext": "37f37455c35fea71449926eb0bff05dd.wav", + "sampleCount": 103633, + "rate": 22050 }, { "name": "Human Beatbox2", - "md5": "f62e9f7deeb0e06268df6edffa14f5de.wav", - "sampleCount": 62392, - "rate": 22050, - "format": "adpcm", "tags": [ "human", "percussion", "music", "hiphop", "loops" - ] + ], + "assetId": "f62e9f7deeb0e06268df6edffa14f5de", + "dataFormat": "adpcm", + "md5ext": "f62e9f7deeb0e06268df6edffa14f5de.wav", + "sampleCount": 62993, + "rate": 22050 }, { "name": "Jump", - "md5": "6fcd64d6357e4ea03704e5f96bfd35ba.wav", - "sampleCount": 6867, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "6fcd64d6357e4ea03704e5f96bfd35ba", + "dataFormat": "adpcm", + "md5ext": "6fcd64d6357e4ea03704e5f96bfd35ba.wav", + "sampleCount": 7113, + "rate": 22050 }, { "name": "Jungle", - "md5": "b234a04cc3958437c43ed3d93f34a345.wav", - "sampleCount": 76032, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "electronic", "loops" - ] + ], + "assetId": "b234a04cc3958437c43ed3d93f34a345", + "dataFormat": "adpcm", + "md5ext": "b234a04cc3958437c43ed3d93f34a345.wav", + "sampleCount": 76201, + "rate": 22050 }, { "name": "Jungle Frogs", - "md5": "2ca5fbda5288b79a6e12f5ca3c20b0fa.wav", - "sampleCount": 291214, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "background", "crickets", "ambience" - ] + ], + "assetId": "2ca5fbda5288b79a6e12f5ca3c20b0fa", + "dataFormat": "adpcm", + "md5ext": "2ca5fbda5288b79a6e12f5ca3c20b0fa.wav", + "sampleCount": 291593, + "rate": 22050 }, { "name": "Kick Back", - "md5": "9cd340d9d568b1479f731e69e103b3ce.wav", - "sampleCount": 44748, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops", "hiphop" - ] + ], + "assetId": "9cd340d9d568b1479f731e69e103b3ce", + "dataFormat": "adpcm", + "md5ext": "9cd340d9d568b1479f731e69e103b3ce.wav", + "sampleCount": 44705, + "rate": 22050 }, { "name": "Kick Drum", - "md5": "711a1270d1cf2e5de9b145ee539213e4.wav", - "sampleCount": 3791, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "hiphop" - ] + ], + "assetId": "711a1270d1cf2e5de9b145ee539213e4", + "dataFormat": "adpcm", + "md5ext": "711a1270d1cf2e5de9b145ee539213e4.wav", + "sampleCount": 4065, + "rate": 22050 }, { "name": "Large Cowbell", - "md5": "006316650ffc673dc02d36aa55881327.wav", - "sampleCount": 20856, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "drums" - ] + ], + "assetId": "006316650ffc673dc02d36aa55881327", + "dataFormat": "adpcm", + "md5ext": "006316650ffc673dc02d36aa55881327.wav", + "sampleCount": 21337, + "rate": 22050 }, { "name": "Laser1", - "md5": "46571f8ec0f2cc91666c80e312579082.wav", - "sampleCount": 516, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "46571f8ec0f2cc91666c80e312579082", + "dataFormat": "", + "md5ext": "46571f8ec0f2cc91666c80e312579082.wav", + "sampleCount": 2064, + "rate": 44100 }, { "name": "Laser2", - "md5": "27654ed2e3224f0a3f77c244e4fae9aa.wav", - "sampleCount": 755, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "27654ed2e3224f0a3f77c244e4fae9aa", + "dataFormat": "", + "md5ext": "27654ed2e3224f0a3f77c244e4fae9aa.wav", + "sampleCount": 3020, + "rate": 44100 }, { "name": "Laugh1", - "md5": "1e8e7fb94103282d02a4bb597248c788.wav", - "sampleCount": 13547, - "rate": 11025, - "format": "", "tags": [ "human", "voice" - ] + ], + "assetId": "1e8e7fb94103282d02a4bb597248c788", + "dataFormat": "", + "md5ext": "1e8e7fb94103282d02a4bb597248c788.wav", + "sampleCount": 54188, + "rate": 44100 }, { "name": "Laugh2", - "md5": "8b1e025f38b0635f7e34e9afcace1b5e.wav", - "sampleCount": 14662, - "rate": 11025, - "format": "", "tags": [ "human", "voice" - ] + ], + "assetId": "8b1e025f38b0635f7e34e9afcace1b5e", + "dataFormat": "", + "md5ext": "8b1e025f38b0635f7e34e9afcace1b5e.wav", + "sampleCount": 58648, + "rate": 44100 }, { "name": "Laugh3", - "md5": "86dee6fa7cd73095ba17e4d666a27804.wav", - "sampleCount": 32065, - "rate": 11025, - "format": "", "tags": [ "human", "voice" - ] + ], + "assetId": "86dee6fa7cd73095ba17e4d666a27804", + "dataFormat": "", + "md5ext": "86dee6fa7cd73095ba17e4d666a27804.wav", + "sampleCount": 128260, + "rate": 44100 }, { "name": "Lo Geh Tabla", - "md5": "9205359ab69d042ed3da8a160a651690.wav", - "sampleCount": 30784, - "rate": 22050, - "format": "", "tags": [ "drums", "instrument", "percussion" - ] + ], + "assetId": "9205359ab69d042ed3da8a160a651690", + "dataFormat": "", + "md5ext": "9205359ab69d042ed3da8a160a651690.wav", + "sampleCount": 61568, + "rate": 44100 }, { "name": "Lo Gliss Tabla", - "md5": "d7cd24689737569c93e7ea7344ba6b0e.wav", - "sampleCount": 7008, - "rate": 22050, - "format": "", "tags": [ "drums", "instrument", "percussion" - ] + ], + "assetId": "d7cd24689737569c93e7ea7344ba6b0e", + "dataFormat": "", + "md5ext": "d7cd24689737569c93e7ea7344ba6b0e.wav", + "sampleCount": 14016, + "rate": 44100 }, { "name": "Lose", - "md5": "d73eacaf5a905bf864041c7a70937ac4.wav", - "sampleCount": 81379, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "d73eacaf5a905bf864041c7a70937ac4", + "dataFormat": "adpcm", + "md5ext": "d73eacaf5a905bf864041c7a70937ac4.wav", + "sampleCount": 82297, + "rate": 22050 }, { "name": "Low Boing", - "md5": "33e9314fd25ef8e800a749c86487f7a9.wav", - "sampleCount": 16592, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "33e9314fd25ef8e800a749c86487f7a9", + "dataFormat": "adpcm", + "md5ext": "33e9314fd25ef8e800a749c86487f7a9.wav", + "sampleCount": 17273, + "rate": 22050 }, { "name": "Low Conga", - "md5": "0b6f94487cd8a1cf0bb77e15966656c3.wav", - "sampleCount": 8384, - "rate": 22050, - "format": "", "tags": [ "drums", "instrument", "percussion" - ] + ], + "assetId": "0b6f94487cd8a1cf0bb77e15966656c3", + "dataFormat": "", + "md5ext": "0b6f94487cd8a1cf0bb77e15966656c3.wav", + "sampleCount": 16768, + "rate": 44100 }, { "name": "Low Squeak", - "md5": "0aae06b65c875a6ba1fd51f4251b16b3.wav", - "sampleCount": 16736, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "0aae06b65c875a6ba1fd51f4251b16b3", + "dataFormat": "adpcm", + "md5ext": "0aae06b65c875a6ba1fd51f4251b16b3.wav", + "sampleCount": 17273, + "rate": 22050 }, { "name": "Low Tom", - "md5": "1569bbbd8952b0575e5a5cb5aefb50ba.wav", - "sampleCount": 20000, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "1569bbbd8952b0575e5a5cb5aefb50ba", + "dataFormat": "", + "md5ext": "1569bbbd8952b0575e5a5cb5aefb50ba.wav", + "sampleCount": 40000, + "rate": 44100 }, { "name": "Low Whoosh", - "md5": "d42f096c89764484a442046f4342c9ad.wav", - "sampleCount": 11220, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "games" - ] + ], + "assetId": "d42f096c89764484a442046f4342c9ad", + "dataFormat": "adpcm", + "md5ext": "d42f096c89764484a442046f4342c9ad.wav", + "sampleCount": 12193, + "rate": 22050 }, { "name": "Machine", - "md5": "e7dfb630116153533989ff839c1973a5.wav", - "sampleCount": 10209, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "e7dfb630116153533989ff839c1973a5", + "dataFormat": "adpcm", + "md5ext": "e7dfb630116153533989ff839c1973a5.wav", + "sampleCount": 11177, + "rate": 22050 }, { "name": "Magic Spell", - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "fantasy" - ] + ], + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "dataFormat": "adpcm", + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", + "sampleCount": 43689, + "rate": 22050 }, { "name": "Medieval1", - "md5": "9329fef6a59c5406d70cbe5837976d6b.wav", - "sampleCount": 213120, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops", "fantasy" - ] + ], + "assetId": "9329fef6a59c5406d70cbe5837976d6b", + "dataFormat": "adpcm", + "md5ext": "9329fef6a59c5406d70cbe5837976d6b.wav", + "sampleCount": 213361, + "rate": 22050 }, { "name": "Medieval2", - "md5": "7bc8c4a9d0525f04451356c6cc483dd7.wav", - "sampleCount": 324288, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops", "fantasy" - ] + ], + "assetId": "7bc8c4a9d0525f04451356c6cc483dd7", + "dataFormat": "adpcm", + "md5ext": "7bc8c4a9d0525f04451356c6cc483dd7.wav", + "sampleCount": 324105, + "rate": 22050 }, { "name": "Meow", - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "", "tags": [ "animals", "cat" - ] + ], + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "dataFormat": "", + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav", + "sampleCount": 37376, + "rate": 44100 }, { "name": "Meow2", - "md5": "cf51a0c4088942d95bcc20af13202710.wav", - "sampleCount": 6512, - "rate": 11025, - "format": "", "tags": [ "animals", "cat" - ] + ], + "assetId": "cf51a0c4088942d95bcc20af13202710", + "dataFormat": "", + "md5ext": "cf51a0c4088942d95bcc20af13202710.wav", + "sampleCount": 26048, + "rate": 44100 }, { "name": "Moo", - "md5": "7206280bd4444a06d25f19a84dcb56b1.wav", - "sampleCount": 27225, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "cow" - ] + ], + "assetId": "7206280bd4444a06d25f19a84dcb56b1", + "dataFormat": "adpcm", + "md5ext": "7206280bd4444a06d25f19a84dcb56b1.wav", + "sampleCount": 27433, + "rate": 22050 }, { "name": "Motorcycle Passing", - "md5": "b49ab3a926da46578396d1faffd24d3b.wav", - "sampleCount": 86016, - "rate": 11025, - "format": "", "tags": [ "transportation", "ambience", "background" - ] + ], + "assetId": "b49ab3a926da46578396d1faffd24d3b", + "dataFormat": "", + "md5ext": "b49ab3a926da46578396d1faffd24d3b.wav", + "sampleCount": 344064, + "rate": 44100 }, { "name": "Movie 1", - "md5": "84f7b490f0f536cc1337ab7948aa3aa7.wav", - "sampleCount": 220500, - "rate": 22050, - "format": "", "tags": [ "loops", "music", "cinematic" - ] + ], + "assetId": "84f7b490f0f536cc1337ab7948aa3aa7", + "dataFormat": "", + "md5ext": "84f7b490f0f536cc1337ab7948aa3aa7.wav", + "sampleCount": 441000, + "rate": 44100 }, { "name": "Movie 2", - "md5": "77ea2403120936066eb6280a47b063fd.wav", - "sampleCount": 151201, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "cinematic" - ] + ], + "assetId": "77ea2403120936066eb6280a47b063fd", + "dataFormat": "adpcm", + "md5ext": "77ea2403120936066eb6280a47b063fd.wav", + "sampleCount": 151385, + "rate": 22050 }, { "name": "Muted Conga", - "md5": "1d4abbe3c9bfe198a88badb10762de75.wav", - "sampleCount": 4544, - "rate": 22050, - "format": "", "tags": [ "drums", "instrument", "percussion" - ] + ], + "assetId": "1d4abbe3c9bfe198a88badb10762de75", + "dataFormat": "", + "md5ext": "1d4abbe3c9bfe198a88badb10762de75.wav", + "sampleCount": 9088, + "rate": 44100 }, { "name": "Mystery", - "md5": "a822b56063729f4f42f9a62e6010768b.wav", - "sampleCount": 94315, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "cinematic" - ] + ], + "assetId": "a822b56063729f4f42f9a62e6010768b", + "dataFormat": "adpcm", + "md5ext": "a822b56063729f4f42f9a62e6010768b.wav", + "sampleCount": 94489, + "rate": 22050 }, { "name": "Ocean Wave", - "md5": "c904610d770398b98872a708a2f75611.wav", - "sampleCount": 99206, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "water", "underwater" - ] + ], + "assetId": "c904610d770398b98872a708a2f75611", + "dataFormat": "adpcm", + "md5ext": "c904610d770398b98872a708a2f75611.wav", + "sampleCount": 99569, + "rate": 22050 }, { "name": "Odesong", - "md5": "2c41921491b1da2bfa1ebcaba34265ca.wav", - "sampleCount": 212553, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops", "electronic" - ] + ], + "assetId": "2c41921491b1da2bfa1ebcaba34265ca", + "dataFormat": "adpcm", + "md5ext": "2c41921491b1da2bfa1ebcaba34265ca.wav", + "sampleCount": 212345, + "rate": 22050 }, { "name": "Oops", - "md5": "1139072c3d2d31fa5903c46632789d08.wav", - "sampleCount": 30514, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "1139072c3d2d31fa5903c46632789d08", + "dataFormat": "adpcm", + "md5ext": "1139072c3d2d31fa5903c46632789d08.wav", + "sampleCount": 31497, + "rate": 22050 }, { "name": "Orchestra Tuning", - "md5": "9fdef8a1f57a24b99add29d4f1925c76.wav", - "sampleCount": 221837, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "ambience", "background", "music" - ] + ], + "assetId": "9fdef8a1f57a24b99add29d4f1925c76", + "dataFormat": "adpcm", + "md5ext": "9fdef8a1f57a24b99add29d4f1925c76.wav", + "sampleCount": 222505, + "rate": 22050 }, { "name": "Owl", - "md5": "e8b6d605f5a1bb36c29e4e21ef754209.wav", - "sampleCount": 8111, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "e8b6d605f5a1bb36c29e4e21ef754209", + "dataFormat": "", + "md5ext": "e8b6d605f5a1bb36c29e4e21ef754209.wav", + "sampleCount": 32444, + "rate": 44100 }, { "name": "Party Noise", - "md5": "8f5a994abfa814da72272e766772dbac.wav", - "sampleCount": 44672, - "rate": 11025, - "format": "", "tags": [ "human", "voice", "ambience", "background" - ] + ], + "assetId": "8f5a994abfa814da72272e766772dbac", + "dataFormat": "", + "md5ext": "8f5a994abfa814da72272e766772dbac.wav", + "sampleCount": 178688, + "rate": 44100 }, { "name": "Pew", - "md5": "21a2cc083ef51767fb13791151194348.wav", - "sampleCount": 5816, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "21a2cc083ef51767fb13791151194348", + "dataFormat": "adpcm", + "md5ext": "21a2cc083ef51767fb13791151194348.wav", + "sampleCount": 6097, + "rate": 22050 }, { "name": "Ping Pong Hit", - "md5": "8357b4bdf6fbe10b972be3b78167b3c8.wav", - "sampleCount": 11171, - "rate": 22050, - "format": "adpcm", "tags": [ "sports" - ] + ], + "assetId": "8357b4bdf6fbe10b972be3b78167b3c8", + "dataFormat": "adpcm", + "md5ext": "8357b4bdf6fbe10b972be3b78167b3c8.wav", + "sampleCount": 11177, + "rate": 22050 }, { "name": "Pluck", - "md5": "0f2aa4c395cb932512defb2d14dc1691.wav", - "sampleCount": 6537, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "wacky", "cartoon" - ] + ], + "assetId": "0f2aa4c395cb932512defb2d14dc1691", + "dataFormat": "adpcm", + "md5ext": "0f2aa4c395cb932512defb2d14dc1691.wav", + "sampleCount": 7113, + "rate": 22050 }, { "name": "Plunge", - "md5": "c09455ee9da0e7eeead42d4e73c2555d.wav", - "sampleCount": 22400, - "rate": 11025, - "format": "", "tags": [ "effects", "water", "splash" - ] + ], + "assetId": "c09455ee9da0e7eeead42d4e73c2555d", + "dataFormat": "", + "md5ext": "c09455ee9da0e7eeead42d4e73c2555d.wav", + "sampleCount": 89600, + "rate": 44100 }, { "name": "Police Siren", - "md5": "b10dcd209865fbd392534633307dafad.wav", - "sampleCount": 8649, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "b10dcd209865fbd392534633307dafad", + "dataFormat": "adpcm", + "md5ext": "b10dcd209865fbd392534633307dafad.wav", + "sampleCount": 9145, + "rate": 22050 }, { "name": "Pop", - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "dataFormat": "", + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav", + "sampleCount": 1032, + "rate": 44100 }, { "name": "Rain", - "md5": "b5db20c28ef4946137129b47772dcf69.wav", - "sampleCount": 220295, - "rate": 22050, - "format": "adpcm", "tags": [ "ambience", "background", "weather", "water" - ] + ], + "assetId": "b5db20c28ef4946137129b47772dcf69", + "dataFormat": "adpcm", + "md5ext": "b5db20c28ef4946137129b47772dcf69.wav", + "sampleCount": 220473, + "rate": 22050 }, { "name": "Rattle", - "md5": "74f1c07e0bcd7811fd9d456a5f8667f8.wav", - "sampleCount": 13184, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "74f1c07e0bcd7811fd9d456a5f8667f8", + "dataFormat": "", + "md5ext": "74f1c07e0bcd7811fd9d456a5f8667f8.wav", + "sampleCount": 26368, + "rate": 44100 }, { "name": "Referee Whistle", - "md5": "8468b9b3f11a665ee4d215afd8463b97.wav", - "sampleCount": 14034, - "rate": 22050, - "format": "adpcm", "tags": [ "sports" - ] + ], + "assetId": "8468b9b3f11a665ee4d215afd8463b97", + "dataFormat": "adpcm", + "md5ext": "8468b9b3f11a665ee4d215afd8463b97.wav", + "sampleCount": 14225, + "rate": 22050 }, { "name": "Reggae", - "md5": "19211d5ecd34214b6aba947790e63bb0.wav", - "sampleCount": 173023, - "rate": 22050, - "format": "", "tags": [ "loops", "music" - ] + ], + "assetId": "19211d5ecd34214b6aba947790e63bb0", + "dataFormat": "", + "md5ext": "19211d5ecd34214b6aba947790e63bb0.wav", + "sampleCount": 346046, + "rate": 44100 }, { "name": "Ricochet", - "md5": "49407acfc004ec6960e8b84d363bd98d.wav", - "sampleCount": 23862, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "wacky" - ] + ], + "assetId": "49407acfc004ec6960e8b84d363bd98d", + "dataFormat": "adpcm", + "md5ext": "49407acfc004ec6960e8b84d363bd98d.wav", + "sampleCount": 24385, + "rate": 22050 }, { "name": "Ride Cymbal", - "md5": "53badb02228d10494e0efdd1e839548d.wav", - "sampleCount": 8144, - "rate": 11025, - "format": "", "tags": [ "music", "percussion", "drums" - ] + ], + "assetId": "53badb02228d10494e0efdd1e839548d", + "dataFormat": "", + "md5ext": "53badb02228d10494e0efdd1e839548d.wav", + "sampleCount": 32576, + "rate": 44100 }, { "name": "Ring Tone", - "md5": "895c0887b4de4e0051e3adbceaf96061.wav", - "sampleCount": 70656, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "home" - ] + ], + "assetId": "895c0887b4de4e0051e3adbceaf96061", + "dataFormat": "adpcm", + "md5ext": "895c0887b4de4e0051e3adbceaf96061.wav", + "sampleCount": 71121, + "rate": 22050 }, { "name": "Rip", - "md5": "4081f8fac2ca83bd34329400eb95bbde.wav", - "sampleCount": 11877, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "games" - ] + ], + "assetId": "4081f8fac2ca83bd34329400eb95bbde", + "dataFormat": "adpcm", + "md5ext": "4081f8fac2ca83bd34329400eb95bbde.wav", + "sampleCount": 12193, + "rate": 22050 }, { "name": "Ripples", - "md5": "d3c95a4ba37dcf90c8a57e8b2fd1632d.wav", - "sampleCount": 21504, - "rate": 11025, - "format": "", "tags": [ "effects", "water" - ] + ], + "assetId": "d3c95a4ba37dcf90c8a57e8b2fd1632d", + "dataFormat": "", + "md5ext": "d3c95a4ba37dcf90c8a57e8b2fd1632d.wav", + "sampleCount": 86016, + "rate": 44100 }, { "name": "Roll Cymbal", - "md5": "da8355d753cd2a5ddd19cb2bb41c1547.wav", - "sampleCount": 26432, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "da8355d753cd2a5ddd19cb2bb41c1547", + "dataFormat": "", + "md5ext": "da8355d753cd2a5ddd19cb2bb41c1547.wav", + "sampleCount": 52864, + "rate": 44100 }, { "name": "Rooster", - "md5": "2e375acae2c7c0d655935a9de14b12f6.wav", - "sampleCount": 17110, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "2e375acae2c7c0d655935a9de14b12f6", + "dataFormat": "", + "md5ext": "2e375acae2c7c0d655935a9de14b12f6.wav", + "sampleCount": 68440, + "rate": 44100 }, { "name": "Scrambling Feet", - "md5": "0fbca8db08d46419416c0f104345bc53.wav", - "sampleCount": 35770, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "0fbca8db08d46419416c0f104345bc53", + "dataFormat": "adpcm", + "md5ext": "0fbca8db08d46419416c0f104345bc53.wav", + "sampleCount": 36577, + "rate": 22050 }, { "name": "Scratch Beatbox", - "md5": "859249563a7b1fc0f6e92e36d1db81c7.wav", - "sampleCount": 11552, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "859249563a7b1fc0f6e92e36d1db81c7", + "dataFormat": "", + "md5ext": "859249563a7b1fc0f6e92e36d1db81c7.wav", + "sampleCount": 23104, + "rate": 44100 }, { "name": "Scratchy Beat", - "md5": "289dc558e076971e74dd1a0bd55719b1.wav", - "sampleCount": 44096, - "rate": 22050, - "format": "", "tags": [ "music", "loops", "hiphop" - ] + ], + "assetId": "289dc558e076971e74dd1a0bd55719b1", + "dataFormat": "", + "md5ext": "289dc558e076971e74dd1a0bd55719b1.wav", + "sampleCount": 88192, + "rate": 44100 }, { "name": "Scream1", - "md5": "10420bb2f5a3ab440f3b10fc8ea2b08b.wav", - "sampleCount": 6628, - "rate": 11025, - "format": "", "tags": [ "human", "voice" - ] + ], + "assetId": "10420bb2f5a3ab440f3b10fc8ea2b08b", + "dataFormat": "", + "md5ext": "10420bb2f5a3ab440f3b10fc8ea2b08b.wav", + "sampleCount": 26512, + "rate": 44100 }, { "name": "Scream2", - "md5": "e06e29398d770dae3cd57447439752ef.wav", - "sampleCount": 17010, - "rate": 22050, - "format": "", "tags": [ "human", "voice" - ] + ], + "assetId": "e06e29398d770dae3cd57447439752ef", + "dataFormat": "", + "md5ext": "e06e29398d770dae3cd57447439752ef.wav", + "sampleCount": 34020, + "rate": 44100 }, { "name": "Screech", - "md5": "10644c5cc83a9a2dd3ab466deb0eb03d.wav", - "sampleCount": 12907, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "monkey" - ] + ], + "assetId": "10644c5cc83a9a2dd3ab466deb0eb03d", + "dataFormat": "adpcm", + "md5ext": "10644c5cc83a9a2dd3ab466deb0eb03d.wav", + "sampleCount": 13209, + "rate": 22050 }, { "name": "Seagulls", - "md5": "42bbbb6c37439abc82057ec2e67b78dc.wav", - "sampleCount": 64936, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "bird" - ] + ], + "assetId": "42bbbb6c37439abc82057ec2e67b78dc", + "dataFormat": "adpcm", + "md5ext": "42bbbb6c37439abc82057ec2e67b78dc.wav", + "sampleCount": 65025, + "rate": 22050 }, { "name": "Sewing Machine", - "md5": "7bd800cb66d6fb18886a4c5cea1b76a6.wav", - "sampleCount": 107964, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "home" - ] + ], + "assetId": "7bd800cb66d6fb18886a4c5cea1b76a6", + "dataFormat": "adpcm", + "md5ext": "7bd800cb66d6fb18886a4c5cea1b76a6.wav", + "sampleCount": 108713, + "rate": 22050 }, { "name": "Shaker", - "md5": "714e598d28e493cc50babc17f2c4895d.wav", - "sampleCount": 18560, - "rate": 11025, - "format": "", "tags": [ "music", "percussion" - ] + ], + "assetId": "714e598d28e493cc50babc17f2c4895d", + "dataFormat": "", + "md5ext": "714e598d28e493cc50babc17f2c4895d.wav", + "sampleCount": 74240, + "rate": 44100 }, { "name": "Ship Bell", - "md5": "4cbd4dc0c55656e7edc4b0f00a3f9738.wav", - "sampleCount": 78597, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "transportation" - ] + ], + "assetId": "4cbd4dc0c55656e7edc4b0f00a3f9738", + "dataFormat": "adpcm", + "md5ext": "4cbd4dc0c55656e7edc4b0f00a3f9738.wav", + "sampleCount": 79249, + "rate": 22050 }, { "name": "Sidestick Snare", - "md5": "f6868ee5cf626fc4ef3ca1119dc95592.wav", - "sampleCount": 2336, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "f6868ee5cf626fc4ef3ca1119dc95592", + "dataFormat": "", + "md5ext": "f6868ee5cf626fc4ef3ca1119dc95592.wav", + "sampleCount": 4672, + "rate": 44100 }, { "name": "Singer1", - "md5": "92ee32e9be5ed7b69370fc38bb550597.wav", - "sampleCount": 23653, - "rate": 11025, - "format": "", "tags": [ "human", "voice", "vocals", "music" - ] + ], + "assetId": "92ee32e9be5ed7b69370fc38bb550597", + "dataFormat": "", + "md5ext": "92ee32e9be5ed7b69370fc38bb550597.wav", + "sampleCount": 94612, + "rate": 44100 }, { "name": "Singer2", - "md5": "5d3d2865906889e866b3edf154e6cf5d.wav", - "sampleCount": 28636, - "rate": 11025, - "format": "", "tags": [ "human", "voice", "vocals", "music" - ] + ], + "assetId": "5d3d2865906889e866b3edf154e6cf5d", + "dataFormat": "", + "md5ext": "5d3d2865906889e866b3edf154e6cf5d.wav", + "sampleCount": 114544, + "rate": 44100 }, { "name": "Siren Whistle", - "md5": "ea0d6aced66db4b8cafaeb6418ef9cf6.wav", - "sampleCount": 20821, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects" - ] + ], + "assetId": "ea0d6aced66db4b8cafaeb6418ef9cf6", + "dataFormat": "adpcm", + "md5ext": "ea0d6aced66db4b8cafaeb6418ef9cf6.wav", + "sampleCount": 21337, + "rate": 22050 }, { "name": "Skid", - "md5": "2c22bb6e3c65d9430185fd83ec3db64a.wav", - "sampleCount": 23939, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "cartoon", "effects", "transportation" - ] + ], + "assetId": "2c22bb6e3c65d9430185fd83ec3db64a", + "dataFormat": "adpcm", + "md5ext": "2c22bb6e3c65d9430185fd83ec3db64a.wav", + "sampleCount": 24385, + "rate": 22050 }, { "name": "Slide Whistle", - "md5": "3858bab5ea1211ff3c5902a4b680f7d8.wav", - "sampleCount": 12273, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "3858bab5ea1211ff3c5902a4b680f7d8", + "dataFormat": "adpcm", + "md5ext": "3858bab5ea1211ff3c5902a4b680f7d8.wav", + "sampleCount": 13209, + "rate": 22050 }, { "name": "Small Cowbell", - "md5": "e29154f53f56f96f8a3292bdcddcec54.wav", - "sampleCount": 9718, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "drums" - ] + ], + "assetId": "e29154f53f56f96f8a3292bdcddcec54", + "dataFormat": "adpcm", + "md5ext": "e29154f53f56f96f8a3292bdcddcec54.wav", + "sampleCount": 10161, + "rate": 22050 }, { "name": "Snap", - "md5": "c2ff5da4d9d85dee866615f672b749ce.wav", - "sampleCount": 15360, - "rate": 22050, - "format": "", "tags": [ "music", "percussion", "drums" - ] + ], + "assetId": "c2ff5da4d9d85dee866615f672b749ce", + "dataFormat": "", + "md5ext": "c2ff5da4d9d85dee866615f672b749ce.wav", + "sampleCount": 30720, + "rate": 44100 }, { "name": "Snare Beatbox", - "md5": "c642c4c00135d890998f351faec55498.wav", - "sampleCount": 5630, - "rate": 22050, - "format": "adpcm", - "tags": [] + "tags": [], + "assetId": "c642c4c00135d890998f351faec55498", + "dataFormat": "adpcm", + "md5ext": "c642c4c00135d890998f351faec55498.wav", + "sampleCount": 6097, + "rate": 22050 }, { "name": "Snare Beatbox2", - "md5": "7ede1382b578d8fc32850b48d082d914.wav", - "sampleCount": 4960, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "7ede1382b578d8fc32850b48d082d914", + "dataFormat": "", + "md5ext": "7ede1382b578d8fc32850b48d082d914.wav", + "sampleCount": 9920, + "rate": 44100 }, { "name": "Snare Drum", - "md5": "c27fb569aba99c7203e954aecb1ed8e4.wav", - "sampleCount": 2757, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "percussion", "drums" - ] + ], + "assetId": "c27fb569aba99c7203e954aecb1ed8e4", + "dataFormat": "adpcm", + "md5ext": "c27fb569aba99c7203e954aecb1ed8e4.wav", + "sampleCount": 3049, + "rate": 22050 }, { "name": "Sneaker Squeak", - "md5": "03f61f7d2c32da8a1493a380414710a2.wav", - "sampleCount": 8370, - "rate": 22050, - "format": "adpcm", "tags": [ "sports", "effects" - ] + ], + "assetId": "03f61f7d2c32da8a1493a380414710a2", + "dataFormat": "adpcm", + "md5ext": "03f61f7d2c32da8a1493a380414710a2.wav", + "sampleCount": 9145, + "rate": 22050 }, { "name": "Sneeze1", - "md5": "31600c613823710b66a74f4dd54c4cdd.wav", - "sampleCount": 11818, - "rate": 11025, - "format": "", "tags": [ "human", "voice" - ] + ], + "assetId": "31600c613823710b66a74f4dd54c4cdd", + "dataFormat": "", + "md5ext": "31600c613823710b66a74f4dd54c4cdd.wav", + "sampleCount": 47272, + "rate": 44100 }, { "name": "Sneeze2", - "md5": "42b5a31628083f3089f494f2ba644660.wav", - "sampleCount": 15218, - "rate": 22050, - "format": "", "tags": [ "voice", "human" - ] + ], + "assetId": "42b5a31628083f3089f494f2ba644660", + "dataFormat": "", + "md5ext": "42b5a31628083f3089f494f2ba644660.wav", + "sampleCount": 30436, + "rate": 44100 }, { "name": "Snoring", - "md5": "5b1a88cd6db7e239642d7ca8a0d74a1a.wav", - "sampleCount": 103974, - "rate": 22050, - "format": "adpcm", "tags": [ "human", "wacky", "voice", "cartoon" - ] + ], + "assetId": "5b1a88cd6db7e239642d7ca8a0d74a1a", + "dataFormat": "adpcm", + "md5ext": "5b1a88cd6db7e239642d7ca8a0d74a1a.wav", + "sampleCount": 104649, + "rate": 22050 }, { "name": "Snort", - "md5": "362d7440a57cab29914fecea621e50d4.wav", - "sampleCount": 16421, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "horse" - ] + ], + "assetId": "362d7440a57cab29914fecea621e50d4", + "dataFormat": "adpcm", + "md5ext": "362d7440a57cab29914fecea621e50d4.wav", + "sampleCount": 17273, + "rate": 22050 }, { "name": "Space Ambience", - "md5": "f8903e89c1082987f18fc30b3de6d61a.wav", - "sampleCount": 220160, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "games", "background", "space" - ] + ], + "assetId": "f8903e89c1082987f18fc30b3de6d61a", + "dataFormat": "adpcm", + "md5ext": "f8903e89c1082987f18fc30b3de6d61a.wav", + "sampleCount": 220473, + "rate": 22050 }, { "name": "Space Flyby", - "md5": "49c2e36b7258338fb3a8576e646c6738.wav", - "sampleCount": 52770, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "games", "space", "transportation" - ] + ], + "assetId": "49c2e36b7258338fb3a8576e646c6738", + "dataFormat": "adpcm", + "md5ext": "49c2e36b7258338fb3a8576e646c6738.wav", + "sampleCount": 52833, + "rate": 22050 }, { "name": "Space Noise", - "md5": "a5cd5e83841aaaf34583d6ad53d551f5.wav", - "sampleCount": 58212, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games", "space" - ] + ], + "assetId": "a5cd5e83841aaaf34583d6ad53d551f5", + "dataFormat": "adpcm", + "md5ext": "a5cd5e83841aaaf34583d6ad53d551f5.wav", + "sampleCount": 58929, + "rate": 22050 }, { "name": "Space Ripple", - "md5": "ff8b8c3bf841a11fd5fe3afaa92be1b5.wav", - "sampleCount": 41149, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "ff8b8c3bf841a11fd5fe3afaa92be1b5", + "dataFormat": "", + "md5ext": "ff8b8c3bf841a11fd5fe3afaa92be1b5.wav", + "sampleCount": 164596, + "rate": 44100 }, { "name": "Spiral", - "md5": "c987c4e2c85d1a034ef047c2611aff25.wav", - "sampleCount": 28672, - "rate": 11025, - "format": "", "tags": [ "space", "effects", "electronic" - ] + ], + "assetId": "c987c4e2c85d1a034ef047c2611aff25", + "dataFormat": "", + "md5ext": "c987c4e2c85d1a034ef047c2611aff25.wav", + "sampleCount": 114688, + "rate": 44100 }, { "name": "Splash", - "md5": "6aed5e38d40b87a21d893d26fa2858c0.wav", - "sampleCount": 46080, - "rate": 22050, - "format": "adpcm", "tags": [ "sports", "water" - ] + ], + "assetId": "6aed5e38d40b87a21d893d26fa2858c0", + "dataFormat": "adpcm", + "md5ext": "6aed5e38d40b87a21d893d26fa2858c0.wav", + "sampleCount": 46737, + "rate": 22050 }, { "name": "Splash Cymbal", - "md5": "9d63ed5be96c43b06492e8b4a9cea8d8.wav", - "sampleCount": 9600, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "9d63ed5be96c43b06492e8b4a9cea8d8", + "dataFormat": "", + "md5ext": "9d63ed5be96c43b06492e8b4a9cea8d8.wav", + "sampleCount": 19200, + "rate": 44100 }, { "name": "Spooky String", - "md5": "6648b690e6e22c7504db7746879d51b4.wav", - "sampleCount": 51376, - "rate": 11025, - "format": "", "tags": [ "effects", "dramatic" - ] + ], + "assetId": "6648b690e6e22c7504db7746879d51b4", + "dataFormat": "", + "md5ext": "6648b690e6e22c7504db7746879d51b4.wav", + "sampleCount": 205504, + "rate": 44100 }, { "name": "Squawk", - "md5": "e140d7ff07de8fa35c3d1595bba835ac.wav", - "sampleCount": 8208, - "rate": 22050, - "format": "", "tags": [ "animals", "birds" - ] + ], + "assetId": "e140d7ff07de8fa35c3d1595bba835ac", + "dataFormat": "", + "md5ext": "e140d7ff07de8fa35c3d1595bba835ac.wav", + "sampleCount": 16416, + "rate": 44100 }, { "name": "Squeaks", - "md5": "62244fb9600ee90c780875deba2ba24f.wav", - "sampleCount": 53626, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "guinea pig" - ] + ], + "assetId": "62244fb9600ee90c780875deba2ba24f", + "dataFormat": "adpcm", + "md5ext": "62244fb9600ee90c780875deba2ba24f.wav", + "sampleCount": 53849, + "rate": 22050 }, { "name": "Squeaky Toy", - "md5": "09d36c3c7531a0a1224437f3994bad40.wav", - "sampleCount": 9982, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon", "horn" - ] + ], + "assetId": "09d36c3c7531a0a1224437f3994bad40", + "dataFormat": "adpcm", + "md5ext": "09d36c3c7531a0a1224437f3994bad40.wav", + "sampleCount": 10161, + "rate": 22050 }, { "name": "Squish Pop", - "md5": "853cc25eb47a35c88e3a1fe88b171ed4.wav", - "sampleCount": 9355, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "853cc25eb47a35c88e3a1fe88b171ed4", + "dataFormat": "adpcm", + "md5ext": "853cc25eb47a35c88e3a1fe88b171ed4.wav", + "sampleCount": 10161, + "rate": 22050 }, { "name": "String Accent", - "md5": "c1b5c86a10f43f87746b1c305d4fd8df.wav", - "sampleCount": 16896, - "rate": 11025, - "format": "", "tags": [ "effects", "music" - ] + ], + "assetId": "c1b5c86a10f43f87746b1c305d4fd8df", + "dataFormat": "", + "md5ext": "c1b5c86a10f43f87746b1c305d4fd8df.wav", + "sampleCount": 67584, + "rate": 44100 }, { "name": "String Pluck", - "md5": "d658129427a96764819cb9bd52076860.wav", - "sampleCount": 4976, - "rate": 11025, - "format": "", "tags": [ "effects", "music", "instruments" - ] + ], + "assetId": "d658129427a96764819cb9bd52076860", + "dataFormat": "", + "md5ext": "d658129427a96764819cb9bd52076860.wav", + "sampleCount": 19904, + "rate": 44100 }, { "name": "Suction Cup", - "md5": "76b9d125d013562dc4f423525b028a19.wav", - "sampleCount": 4882, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "76b9d125d013562dc4f423525b028a19", + "dataFormat": "adpcm", + "md5ext": "76b9d125d013562dc4f423525b028a19.wav", + "sampleCount": 5081, + "rate": 22050 }, { "name": "Suspense", - "md5": "12f86e0188510860970e04df45370c1d.wav", - "sampleCount": 16659, - "rate": 11025, - "format": "", "tags": [ "effects", "music", "dramatic" - ] + ], + "assetId": "12f86e0188510860970e04df45370c1d", + "dataFormat": "", + "md5ext": "12f86e0188510860970e04df45370c1d.wav", + "sampleCount": 66636, + "rate": 44100 }, { "name": "Tada", - "md5": "10eed5b6b49ec7baf1d4b3b3fad0ac99.wav", - "sampleCount": 55125, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "surprise", "wacky", "dramatic" - ] + ], + "assetId": "10eed5b6b49ec7baf1d4b3b3fad0ac99", + "dataFormat": "adpcm", + "md5ext": "10eed5b6b49ec7baf1d4b3b3fad0ac99.wav", + "sampleCount": 55881, + "rate": 22050 }, { "name": "Tambura", - "md5": "c2109f07f83086ec863e70887ef55fb6.wav", - "sampleCount": 22261, - "rate": 11025, - "format": "", "tags": [ "effects", "music", "instruments" - ] + ], + "assetId": "c2109f07f83086ec863e70887ef55fb6", + "dataFormat": "", + "md5ext": "c2109f07f83086ec863e70887ef55fb6.wav", + "sampleCount": 89044, + "rate": 44100 }, { "name": "Tap Conga", - "md5": "fd9a67157f57f9cc6fe3cdce38a6d4a8.wav", - "sampleCount": 6880, - "rate": 22050, - "format": "", "tags": [ "drums", "instrument", "percussion" - ] + ], + "assetId": "fd9a67157f57f9cc6fe3cdce38a6d4a8", + "dataFormat": "", + "md5ext": "fd9a67157f57f9cc6fe3cdce38a6d4a8.wav", + "sampleCount": 13760, + "rate": 44100 }, { "name": "Tap Snare", - "md5": "d55b3954d72c6275917f375e49b502f3.wav", - "sampleCount": 3296, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "d55b3954d72c6275917f375e49b502f3", + "dataFormat": "", + "md5ext": "d55b3954d72c6275917f375e49b502f3.wav", + "sampleCount": 6592, + "rate": 44100 }, { "name": "Techno", - "md5": "8700dac70c8e08f4a5d21411980304bb.wav", - "sampleCount": 175680, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "electronic" - ] + ], + "assetId": "8700dac70c8e08f4a5d21411980304bb", + "dataFormat": "adpcm", + "md5ext": "8700dac70c8e08f4a5d21411980304bb.wav", + "sampleCount": 175769, + "rate": 22050 }, { "name": "Techno2", - "md5": "693b428f3797561a11ad0ddbd897b5df.wav", - "sampleCount": 327168, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "electronic" - ] + ], + "assetId": "693b428f3797561a11ad0ddbd897b5df", + "dataFormat": "adpcm", + "md5ext": "693b428f3797561a11ad0ddbd897b5df.wav", + "sampleCount": 327153, + "rate": 22050 }, { "name": "Telephone Ring", - "md5": "276f97d3a9d0f9938b37db8225af97f5.wav", - "sampleCount": 74666, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "home" - ] + ], + "assetId": "276f97d3a9d0f9938b37db8225af97f5", + "dataFormat": "adpcm", + "md5ext": "276f97d3a9d0f9938b37db8225af97f5.wav", + "sampleCount": 75185, + "rate": 22050 }, { "name": "Telephone Ring2", - "md5": "d0096aa9ecc28c0729a99b0349399371.wav", - "sampleCount": 25373, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "home" - ] + ], + "assetId": "d0096aa9ecc28c0729a99b0349399371", + "dataFormat": "adpcm", + "md5ext": "d0096aa9ecc28c0729a99b0349399371.wav", + "sampleCount": 25401, + "rate": 22050 }, { "name": "Teleport", - "md5": "2d625187556c4323169fc1a8f29a7a7d.wav", - "sampleCount": 110250, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games", "space" - ] + ], + "assetId": "2d625187556c4323169fc1a8f29a7a7d", + "dataFormat": "adpcm", + "md5ext": "2d625187556c4323169fc1a8f29a7a7d.wav", + "sampleCount": 110745, + "rate": 22050 }, { "name": "Teleport2", - "md5": "7e5019890a930f3535604cf9cad63ba4.wav", - "sampleCount": 15898, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games", "space" - ] + ], + "assetId": "7e5019890a930f3535604cf9cad63ba4", + "dataFormat": "adpcm", + "md5ext": "7e5019890a930f3535604cf9cad63ba4.wav", + "sampleCount": 16257, + "rate": 22050 }, { "name": "Teleport3", - "md5": "58f76f299a1df2373d4fca3614221186.wav", - "sampleCount": 95440, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games", "space" - ] + ], + "assetId": "58f76f299a1df2373d4fca3614221186", + "dataFormat": "adpcm", + "md5ext": "58f76f299a1df2373d4fca3614221186.wav", + "sampleCount": 95505, + "rate": 22050 }, { "name": "Tennis Hit", - "md5": "01bd4d670cd586613705ee8273f22568.wav", - "sampleCount": 18176, - "rate": 22050, - "format": "adpcm", "tags": [ "sports", "effects" - ] + ], + "assetId": "01bd4d670cd586613705ee8273f22568", + "dataFormat": "adpcm", + "md5ext": "01bd4d670cd586613705ee8273f22568.wav", + "sampleCount": 18289, + "rate": 22050 }, { "name": "Thunder Storm", - "md5": "11f13be7e53b2e9116d59344c5efc66a.wav", - "sampleCount": 307513, - "rate": 22050, - "format": "adpcm", "tags": [ "weather", "rain", "ambience", "background", "dramatic" - ] + ], + "assetId": "11f13be7e53b2e9116d59344c5efc66a", + "dataFormat": "adpcm", + "md5ext": "11f13be7e53b2e9116d59344c5efc66a.wav", + "sampleCount": 307849, + "rate": 22050 }, { "name": "Tom Drum", - "md5": "5a8b8678d37a860dd6c08082d5cda3c2.wav", - "sampleCount": 35803, - "rate": 22050, - "format": "adpcm", "tags": [ "percussion", "drums", "music" - ] + ], + "assetId": "5a8b8678d37a860dd6c08082d5cda3c2", + "dataFormat": "adpcm", + "md5ext": "5a8b8678d37a860dd6c08082d5cda3c2.wav", + "sampleCount": 36577, + "rate": 22050 }, { "name": "Toy Honk", - "md5": "67aadcd28620ecdcdee2ad8eeebefa20.wav", - "sampleCount": 10726, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "transportation" - ] + ], + "assetId": "67aadcd28620ecdcdee2ad8eeebefa20", + "dataFormat": "adpcm", + "md5ext": "67aadcd28620ecdcdee2ad8eeebefa20.wav", + "sampleCount": 11177, + "rate": 22050 }, { "name": "Toy Zing", - "md5": "52cf0926d9bab8774194a37eba636c0e.wav", - "sampleCount": 14103, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "52cf0926d9bab8774194a37eba636c0e", + "dataFormat": "adpcm", + "md5ext": "52cf0926d9bab8774194a37eba636c0e.wav", + "sampleCount": 14225, + "rate": 22050 }, { "name": "Traffic", - "md5": "c983b482802b15a80983786019276c28.wav", - "sampleCount": 141977, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "transportation", "ambience", "background" - ] + ], + "assetId": "c983b482802b15a80983786019276c28", + "dataFormat": "adpcm", + "md5ext": "c983b482802b15a80983786019276c28.wav", + "sampleCount": 142241, + "rate": 22050 }, { "name": "Train Whistle", - "md5": "50f29d0e028ec5c11210d0e2f91f83dd.wav", - "sampleCount": 47594, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "transportation" - ] + ], + "assetId": "50f29d0e028ec5c11210d0e2f91f83dd", + "dataFormat": "adpcm", + "md5ext": "50f29d0e028ec5c11210d0e2f91f83dd.wav", + "sampleCount": 47753, + "rate": 22050 }, { "name": "Trap Beat", - "md5": "8c2ae70ee6a15c8d58004df7c4718de1.wav", - "sampleCount": 147326, - "rate": 22050, - "format": "", "tags": [ "loops", "music", "electronic", "EDM" - ] + ], + "assetId": "8c2ae70ee6a15c8d58004df7c4718de1", + "dataFormat": "", + "md5ext": "8c2ae70ee6a15c8d58004df7c4718de1.wav", + "sampleCount": 294652, + "rate": 44100 }, { "name": "Triumph", - "md5": "072f4d9a3dfd2a082d50ff90ac7dc8f2.wav", - "sampleCount": 89280, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "dramatic", "win" - ] + ], + "assetId": "072f4d9a3dfd2a082d50ff90ac7dc8f2", + "dataFormat": "adpcm", + "md5ext": "072f4d9a3dfd2a082d50ff90ac7dc8f2.wav", + "sampleCount": 89409, + "rate": 22050 }, { "name": "Tropical Birds", - "md5": "18e5a88512296cd96417449496bd8711.wav", - "sampleCount": 546917, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "background", "ambience" - ] + ], + "assetId": "18e5a88512296cd96417449496bd8711", + "dataFormat": "adpcm", + "md5ext": "18e5a88512296cd96417449496bd8711.wav", + "sampleCount": 546609, + "rate": 22050 }, { "name": "Trumpet1", - "md5": "851c9e2c38e5e71922231a8f64c37e70.wav", - "sampleCount": 25800, - "rate": 11025, - "format": "", "tags": [ "notes", "music", "instruments" - ] + ], + "assetId": "851c9e2c38e5e71922231a8f64c37e70", + "dataFormat": "", + "md5ext": "851c9e2c38e5e71922231a8f64c37e70.wav", + "sampleCount": 103200, + "rate": 44100 }, { "name": "Trumpet2", - "md5": "dd73f891deca0241b800ed203408b6f3.wav", - "sampleCount": 23424, - "rate": 11025, - "format": "", "tags": [ "notes", "music", "instruments" - ] + ], + "assetId": "dd73f891deca0241b800ed203408b6f3", + "dataFormat": "", + "md5ext": "dd73f891deca0241b800ed203408b6f3.wav", + "sampleCount": 93696, + "rate": 44100 }, { "name": "Video Game 1", - "md5": "fc6e9cc9ba13c7e4ebb1af6cd7c90c49.wav", - "sampleCount": 171419, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "8bit", "8-bit", "electronic" - ] + ], + "assetId": "fc6e9cc9ba13c7e4ebb1af6cd7c90c49", + "dataFormat": "adpcm", + "md5ext": "fc6e9cc9ba13c7e4ebb1af6cd7c90c49.wav", + "sampleCount": 171705, + "rate": 22050 }, { "name": "Video Game 2", - "md5": "287c477da485506c5b4ce37c57a64b5f.wav", - "sampleCount": 150479, - "rate": 22050, - "format": "adpcm", "tags": [ "loops", "music", "games", "electronic" - ] + ], + "assetId": "287c477da485506c5b4ce37c57a64b5f", + "dataFormat": "adpcm", + "md5ext": "287c477da485506c5b4ce37c57a64b5f.wav", + "sampleCount": 150369, + "rate": 22050 }, { "name": "Wah Beatbox", - "md5": "9021b7bb06f2399f18e2db4fb87095dc.wav", - "sampleCount": 6624, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "9021b7bb06f2399f18e2db4fb87095dc", + "dataFormat": "", + "md5ext": "9021b7bb06f2399f18e2db4fb87095dc.wav", + "sampleCount": 13248, + "rate": 44100 }, { "name": "Wand", - "md5": "d182adef7a68a5f38f1c78ab7d5afd6a.wav", - "sampleCount": 47447, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "fantasy" - ] + ], + "assetId": "d182adef7a68a5f38f1c78ab7d5afd6a", + "dataFormat": "adpcm", + "md5ext": "d182adef7a68a5f38f1c78ab7d5afd6a.wav", + "sampleCount": 47753, + "rate": 22050 }, { "name": "Water Drop", - "md5": "e133e625fd367d269e76964d4b722fc2.wav", - "sampleCount": 15131, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "e133e625fd367d269e76964d4b722fc2", + "dataFormat": "adpcm", + "md5ext": "e133e625fd367d269e76964d4b722fc2.wav", + "sampleCount": 15241, + "rate": 22050 }, { "name": "Whinny", - "md5": "f9513bacf2fc665de05a8dd9bcb88117.wav", - "sampleCount": 46108, - "rate": 22050, - "format": "adpcm", "tags": [ "animals", "horse" - ] + ], + "assetId": "f9513bacf2fc665de05a8dd9bcb88117", + "dataFormat": "adpcm", + "md5ext": "f9513bacf2fc665de05a8dd9bcb88117.wav", + "sampleCount": 46737, + "rate": 22050 }, { "name": "Whistle Thump", - "md5": "a3fab5681aedaa678982173ed9ca3d36.wav", - "sampleCount": 14441, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "a3fab5681aedaa678982173ed9ca3d36", + "dataFormat": "adpcm", + "md5ext": "a3fab5681aedaa678982173ed9ca3d36.wav", + "sampleCount": 15241, + "rate": 22050 }, { "name": "Whiz", - "md5": "d790e1887515deb4097f0946fbf597ad.wav", - "sampleCount": 19243, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "d790e1887515deb4097f0946fbf597ad", + "dataFormat": "adpcm", + "md5ext": "d790e1887515deb4097f0946fbf597ad.wav", + "sampleCount": 19305, + "rate": 22050 }, { "name": "Whoop", - "md5": "fbbbb76a2f53dae6ff1cf61b41f66038.wav", - "sampleCount": 54400, - "rate": 11025, - "format": "", "tags": [ "effects", "electronic", "space" - ] + ], + "assetId": "fbbbb76a2f53dae6ff1cf61b41f66038", + "dataFormat": "", + "md5ext": "fbbbb76a2f53dae6ff1cf61b41f66038.wav", + "sampleCount": 217600, + "rate": 44100 }, { "name": "Win", - "md5": "db480f6d5ae6d494dbb76ffb9bd995d5.wav", - "sampleCount": 44771, - "rate": 22050, - "format": "adpcm", "tags": [ "effects", "electronic", "games" - ] + ], + "assetId": "db480f6d5ae6d494dbb76ffb9bd995d5", + "dataFormat": "adpcm", + "md5ext": "db480f6d5ae6d494dbb76ffb9bd995d5.wav", + "sampleCount": 45721, + "rate": 22050 }, { "name": "Wobble", - "md5": "9913a64bfb5cfa6bb30ec24002cce56b.wav", - "sampleCount": 39950, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "effects", "cartoon" - ] + ], + "assetId": "9913a64bfb5cfa6bb30ec24002cce56b", + "dataFormat": "adpcm", + "md5ext": "9913a64bfb5cfa6bb30ec24002cce56b.wav", + "sampleCount": 40641, + "rate": 22050 }, { "name": "Wolf Howl", - "md5": "5e36d74bb16aa5085b901362788b0fbf.wav", - "sampleCount": 43008, - "rate": 11025, - "format": "", - "tags": [] + "tags": [], + "assetId": "5e36d74bb16aa5085b901362788b0fbf", + "dataFormat": "", + "md5ext": "5e36d74bb16aa5085b901362788b0fbf.wav", + "sampleCount": 172032, + "rate": 44100 }, { "name": "Wood Tap", - "md5": "de5b41c7080396986873d97e9e47acf6.wav", - "sampleCount": 2729, - "rate": 22050, - "format": "adpcm", "tags": [ "effects" - ] + ], + "assetId": "de5b41c7080396986873d97e9e47acf6", + "dataFormat": "adpcm", + "md5ext": "de5b41c7080396986873d97e9e47acf6.wav", + "sampleCount": 3049, + "rate": 22050 }, { "name": "Wub Beatbox", - "md5": "e1f32c057411da4237181ce72ae15d23.wav", - "sampleCount": 7392, - "rate": 22050, - "format": "", - "tags": [] + "tags": [], + "assetId": "e1f32c057411da4237181ce72ae15d23", + "dataFormat": "", + "md5ext": "e1f32c057411da4237181ce72ae15d23.wav", + "sampleCount": 14784, + "rate": 44100 }, { "name": "Xylo1", - "md5": "6ac484e97c1c1fe1384642e26a125e70.wav", - "sampleCount": 238232, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops" - ] + ], + "assetId": "6ac484e97c1c1fe1384642e26a125e70", + "dataFormat": "adpcm", + "md5ext": "6ac484e97c1c1fe1384642e26a125e70.wav", + "sampleCount": 238761, + "rate": 22050 }, { "name": "Xylo2", - "md5": "d38fc904a0acfc27854baf7335ed46f9.wav", - "sampleCount": 246552, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops" - ] + ], + "assetId": "d38fc904a0acfc27854baf7335ed46f9", + "dataFormat": "adpcm", + "md5ext": "d38fc904a0acfc27854baf7335ed46f9.wav", + "sampleCount": 246889, + "rate": 22050 }, { "name": "Xylo3", - "md5": "786a7a66e96c801ca2efed59b20bf025.wav", - "sampleCount": 208832, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops" - ] + ], + "assetId": "786a7a66e96c801ca2efed59b20bf025", + "dataFormat": "adpcm", + "md5ext": "786a7a66e96c801ca2efed59b20bf025.wav", + "sampleCount": 209297, + "rate": 22050 }, { "name": "Xylo4", - "md5": "b3ee7b6515eaf85aebab3c624c1423e9.wav", - "sampleCount": 77184, - "rate": 22050, - "format": "adpcm", "tags": [ "music", "loops" - ] + ], + "assetId": "b3ee7b6515eaf85aebab3c624c1423e9", + "dataFormat": "adpcm", + "md5ext": "b3ee7b6515eaf85aebab3c624c1423e9.wav", + "sampleCount": 77217, + "rate": 22050 }, { "name": "Ya", - "md5": "30987bbe464eb8db1e4c781dc238f81c.wav", - "sampleCount": 5691, - "rate": 11025, - "format": "", "tags": [ "voice", "hiphop" - ] + ], + "assetId": "30987bbe464eb8db1e4c781dc238f81c", + "dataFormat": "", + "md5ext": "30987bbe464eb8db1e4c781dc238f81c.wav", + "sampleCount": 22764, + "rate": 44100 }, { "name": "Zip", - "md5": "c5f35ef67ab1baccdd3b7df87b329d99.wav", - "sampleCount": 10467, - "rate": 22050, - "format": "adpcm", "tags": [ "wacky", "human" - ] + ], + "assetId": "c5f35ef67ab1baccdd3b7df87b329d99", + "dataFormat": "adpcm", + "md5ext": "c5f35ef67ab1baccdd3b7df87b329d99.wav", + "sampleCount": 11177, + "rate": 22050 }, { "name": "Zoop", - "md5": "01f5372ddac43001a2db4c82d71f37bb.wav", - "sampleCount": 2764, - "rate": 11025, - "format": "", "tags": [ "effects", "electronic", "space" - ] + ], + "assetId": "01f5372ddac43001a2db4c82d71f37bb", + "dataFormat": "", + "md5ext": "01f5372ddac43001a2db4c82d71f37bb.wav", + "sampleCount": 11056, + "rate": 44100 } ] \ No newline at end of file diff --git a/src/lib/libraries/sprites.json b/src/lib/libraries/sprites.json index 86cb267d949..be4cb21fa8d 100644 --- a/src/lib/libraries/sprites.json +++ b/src/lib/libraries/sprites.json @@ -1,125 +1,98 @@ [ { "name": "Abby", - "md5": "afab2d2141e9811bd89e385e9628cb5f.svg", - "type": "sprite", "tags": [ "people", "person", "drawing" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Abby", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "abby-a", - "baseLayerID": -1, - "baseLayerMD5": "afab2d2141e9811bd89e385e9628cb5f.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 100 - }, - { - "costumeName": "abby-b", - "baseLayerID": -1, - "baseLayerMD5": "1e0116c7c2e5e80c679d0b33f1f5cfb7.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 100 - }, - { - "costumeName": "abby-c", - "baseLayerID": -1, - "baseLayerMD5": "b6e23922f23b49ddc6f62f675e77417c.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 100 - }, - { - "costumeName": "abby-d", - "baseLayerID": -1, - "baseLayerMD5": "2d05d4da65e7b5009a491d8153d37253.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 101 - } - ], - "currentCostumeIndex": 0, - "scratchX": -20, - "scratchY": -38, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "809d9b47347a6af2860e7a3a35bce057", + "name": "abby-a", + "bitmapResolution": 1, + "md5ext": "809d9b47347a6af2860e7a3a35bce057.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 100 + }, + { + "assetId": "920f14335615fff9b8c55fccb8971984", + "name": "abby-b", + "bitmapResolution": 1, + "md5ext": "920f14335615fff9b8c55fccb8971984.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 100 + }, + { + "assetId": "34a175600dc009a521eb46fdbbbeeb67", + "name": "abby-c", + "bitmapResolution": 1, + "md5ext": "34a175600dc009a521eb46fdbbbeeb67.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 100 + }, + { + "assetId": "45de34b47a2ce22f6f5d28bb35a44ff5", + "name": "abby-d", + "bitmapResolution": 1, + "md5ext": "45de34b47a2ce22f6f5d28bb35a44ff5.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 101 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Amon", - "md5": "60f720956ab1840431dcf0616ce98f14.png", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Amon", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "amon", - "baseLayerID": -1, - "baseLayerMD5": "60f720956ab1840431dcf0616ce98f14.png", - "bitmapResolution": 2, - "rotationCenterX": 174, - "rotationCenterY": 162 - } - ], - "currentCostumeIndex": 0, - "scratchX": -79, - "scratchY": 11, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "60f720956ab1840431dcf0616ce98f14", + "name": "amon", + "bitmapResolution": 2, + "md5ext": "60f720956ab1840431dcf0616ce98f14.png", + "dataFormat": "png", + "rotationCenterX": 174, + "rotationCenterY": 162 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Andie", - "md5": "d2c433e02481b10584e34ccdcf5a046a.svg", - "type": "sprite", "tags": [ "sports", "basketball", @@ -129,465 +102,404 @@ "handicapable", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Andie", - "sounds": [ - { - "soundName": "Basketball Bounce", - "soundID": -1, - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "andie-a", - "baseLayerID": -1, - "baseLayerMD5": "d2c433e02481b10584e34ccdcf5a046a.svg", - "bitmapResolution": 1, - "rotationCenterX": 80, - "rotationCenterY": 65 - }, - { - "costumeName": "andie-b", - "baseLayerID": -1, - "baseLayerMD5": "045f92ad80d72521098ede6d7c80549a.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 91 - }, - { - "costumeName": "andie-c", - "baseLayerID": -1, - "baseLayerMD5": "c9bad70ad371b8d6d97daed7ab9def98.svg", - "bitmapResolution": 1, - "rotationCenterX": 46, - "rotationCenterY": 49 - }, - { - "costumeName": "andie-d", - "baseLayerID": -1, - "baseLayerMD5": "7c9db638cd671898ff07771112faff0f.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 57 - } - ], - "currentCostumeIndex": 0, - "scratchX": -150, - "scratchY": 90, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b36584db82bdd45014430aa918461ca0", + "name": "andie-a", + "bitmapResolution": 1, + "md5ext": "b36584db82bdd45014430aa918461ca0.svg", + "dataFormat": "svg", + "rotationCenterX": 80, + "rotationCenterY": 65 + }, + { + "assetId": "b3fc774e753fef520fb544127a48554b", + "name": "andie-b", + "bitmapResolution": 1, + "md5ext": "b3fc774e753fef520fb544127a48554b.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 91 + }, + { + "assetId": "ded71c8a0f39852178f1695b622c2d89", + "name": "andie-c", + "bitmapResolution": 1, + "md5ext": "ded71c8a0f39852178f1695b622c2d89.svg", + "dataFormat": "svg", + "rotationCenterX": 46, + "rotationCenterY": 49 + }, + { + "assetId": "d92aaf6cf44921905d51ca4a10a4f3d6", + "name": "andie-d", + "bitmapResolution": 1, + "md5ext": "d92aaf6cf44921905d51ca4a10a4f3d6.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 57 + } + ], + "sounds": [ + { + "assetId": "1727f65b5f22d151685b8e5917456a60", + "name": "Basketball Bounce", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav" + } + ], + "blocks": {} }, { "name": "Anina Dance", - "md5": "84c5e22b4303c7c1fb707125706c9aaa.png", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 13, - 2 - ], - "json": { - "objName": "Anina Dance", - "sounds": [ - { - "soundName": "dance celebrate", - "soundID": -1, - "md5": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "dance magic", - "soundID": -1, - "md5": "042309f190183383c0b1c1fc3edc2e84.wav", - "sampleCount": 187200, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "anina stance", - "baseLayerID": -1, - "baseLayerMD5": "84c5e22b4303c7c1fb707125706c9aaa.png", - "bitmapResolution": 2, - "rotationCenterX": 76, - "rotationCenterY": 252 - }, - { - "costumeName": "anina top stand", - "baseLayerID": -1, - "baseLayerMD5": "db6c03113f71b91f22a9f3351f90e5bf.png", - "bitmapResolution": 2, - "rotationCenterX": 74, - "rotationCenterY": 280 - }, - { - "costumeName": "anina top R step", - "baseLayerID": -1, - "baseLayerMD5": "2d208a34e74fdce9dab9d4c585dcfa2b.png", - "bitmapResolution": 2, - "rotationCenterX": 248, - "rotationCenterY": 272 - }, - { - "costumeName": "anina top L step", - "baseLayerID": -1, - "baseLayerMD5": "ed90e8b7a05c1552194af597ac0637cd.png", - "bitmapResolution": 2, - "rotationCenterX": 228, - "rotationCenterY": 274 - }, - { - "costumeName": "anina top freeze", - "baseLayerID": -1, - "baseLayerMD5": "b7693bd6250d4411ee622b67f8025924.png", - "bitmapResolution": 2, - "rotationCenterX": 110, - "rotationCenterY": 268 - }, - { - "costumeName": "anina R cross", - "baseLayerID": -1, - "baseLayerMD5": "3948aad16f8169c013c956dd152a09a6.png", - "bitmapResolution": 2, - "rotationCenterX": 126, - "rotationCenterY": 268 - }, - { - "costumeName": "anina pop front", - "baseLayerID": -1, - "baseLayerMD5": "4931a363e3e4efa20230f6ff2991c6b4.png", - "bitmapResolution": 2, - "rotationCenterX": 68, - "rotationCenterY": 270 - }, - { - "costumeName": "anina pop down", - "baseLayerID": -1, - "baseLayerMD5": "e3698b76cb0864df2fbaba80e6bd8067.png", - "bitmapResolution": 2, - "rotationCenterX": 74, - "rotationCenterY": 156 - }, - { - "costumeName": "anina pop left", - "baseLayerID": -1, - "baseLayerMD5": "d86bb27b4f8d7b70c39c96f29c6943b4.png", - "bitmapResolution": 2, - "rotationCenterX": 238, - "rotationCenterY": 266 - }, - { - "costumeName": "anina pop right", - "baseLayerID": -1, - "baseLayerMD5": "7bb9c790b02231e1272701167c26b17a.png", - "bitmapResolution": 2, - "rotationCenterX": 66, - "rotationCenterY": 268 - }, - { - "costumeName": "anina pop L arm", - "baseLayerID": -1, - "baseLayerMD5": "62c50c90535b64f2ae130a5c680ddcb4.png", - "bitmapResolution": 2, - "rotationCenterX": 68, - "rotationCenterY": 274 - }, - { - "costumeName": "anina pop stand", - "baseLayerID": -1, - "baseLayerMD5": "105f4f3d260dcb8bea02ea9ee5d18cf4.png", - "bitmapResolution": 2, - "rotationCenterX": 76, - "rotationCenterY": 276 - }, - { - "costumeName": "anina pop R arm", - "baseLayerID": -1, - "baseLayerMD5": "ca27e001a263ee6b5852508f39d021db.png", - "bitmapResolution": 2, - "rotationCenterX": 88, - "rotationCenterY": 272 - } - ], - "currentCostumeIndex": 0, - "scratchX": -27, - "scratchY": 1, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "84c5e22b4303c7c1fb707125706c9aaa", + "name": "anina stance", + "bitmapResolution": 2, + "md5ext": "84c5e22b4303c7c1fb707125706c9aaa.png", + "dataFormat": "png", + "rotationCenterX": 76, + "rotationCenterY": 252 + }, + { + "assetId": "db6c03113f71b91f22a9f3351f90e5bf", + "name": "anina top stand", + "bitmapResolution": 2, + "md5ext": "db6c03113f71b91f22a9f3351f90e5bf.png", + "dataFormat": "png", + "rotationCenterX": 74, + "rotationCenterY": 280 + }, + { + "assetId": "2d208a34e74fdce9dab9d4c585dcfa2b", + "name": "anina top R step", + "bitmapResolution": 2, + "md5ext": "2d208a34e74fdce9dab9d4c585dcfa2b.png", + "dataFormat": "png", + "rotationCenterX": 248, + "rotationCenterY": 272 + }, + { + "assetId": "ed90e8b7a05c1552194af597ac0637cd", + "name": "anina top L step", + "bitmapResolution": 2, + "md5ext": "ed90e8b7a05c1552194af597ac0637cd.png", + "dataFormat": "png", + "rotationCenterX": 228, + "rotationCenterY": 274 + }, + { + "assetId": "b7693bd6250d4411ee622b67f8025924", + "name": "anina top freeze", + "bitmapResolution": 2, + "md5ext": "b7693bd6250d4411ee622b67f8025924.png", + "dataFormat": "png", + "rotationCenterX": 110, + "rotationCenterY": 268 + }, + { + "assetId": "3948aad16f8169c013c956dd152a09a6", + "name": "anina R cross", + "bitmapResolution": 2, + "md5ext": "3948aad16f8169c013c956dd152a09a6.png", + "dataFormat": "png", + "rotationCenterX": 126, + "rotationCenterY": 268 + }, + { + "assetId": "4931a363e3e4efa20230f6ff2991c6b4", + "name": "anina pop front", + "bitmapResolution": 2, + "md5ext": "4931a363e3e4efa20230f6ff2991c6b4.png", + "dataFormat": "png", + "rotationCenterX": 68, + "rotationCenterY": 270 + }, + { + "assetId": "e3698b76cb0864df2fbaba80e6bd8067", + "name": "anina pop down", + "bitmapResolution": 2, + "md5ext": "e3698b76cb0864df2fbaba80e6bd8067.png", + "dataFormat": "png", + "rotationCenterX": 74, + "rotationCenterY": 156 + }, + { + "assetId": "d86bb27b4f8d7b70c39c96f29c6943b4", + "name": "anina pop left", + "bitmapResolution": 2, + "md5ext": "d86bb27b4f8d7b70c39c96f29c6943b4.png", + "dataFormat": "png", + "rotationCenterX": 238, + "rotationCenterY": 266 + }, + { + "assetId": "7bb9c790b02231e1272701167c26b17a", + "name": "anina pop right", + "bitmapResolution": 2, + "md5ext": "7bb9c790b02231e1272701167c26b17a.png", + "dataFormat": "png", + "rotationCenterX": 66, + "rotationCenterY": 268 + }, + { + "assetId": "62c50c90535b64f2ae130a5c680ddcb4", + "name": "anina pop L arm", + "bitmapResolution": 2, + "md5ext": "62c50c90535b64f2ae130a5c680ddcb4.png", + "dataFormat": "png", + "rotationCenterX": 68, + "rotationCenterY": 274 + }, + { + "assetId": "105f4f3d260dcb8bea02ea9ee5d18cf4", + "name": "anina pop stand", + "bitmapResolution": 2, + "md5ext": "105f4f3d260dcb8bea02ea9ee5d18cf4.png", + "dataFormat": "png", + "rotationCenterX": 76, + "rotationCenterY": 276 + }, + { + "assetId": "ca27e001a263ee6b5852508f39d021db", + "name": "anina pop R arm", + "bitmapResolution": 2, + "md5ext": "ca27e001a263ee6b5852508f39d021db.png", + "dataFormat": "png", + "rotationCenterX": 88, + "rotationCenterY": 272 + } + ], + "sounds": [ + { + "assetId": "0edb8fb88af19e6e17d0f8cf64c1d136", + "name": "dance celebrate", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 176785, + "md5ext": "0edb8fb88af19e6e17d0f8cf64c1d136.wav" + }, + { + "assetId": "042309f190183383c0b1c1fc3edc2e84", + "name": "dance magic", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 187961, + "md5ext": "042309f190183383c0b1c1fc3edc2e84.wav" + } + ], + "blocks": {} }, { "name": "Apple", - "md5": "831ccd4741a7a56d85f6698a21f4ca69.svg", - "type": "sprite", "tags": [ "food", "red", "crunchy", "fruit" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Apple", - "sounds": [ - { - "soundName": "Chomp", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "apple", - "baseLayerID": -1, - "baseLayerMD5": "831ccd4741a7a56d85f6698a21f4ca69.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 31 - } - ], - "currentCostumeIndex": 0, - "scratchX": 93, - "scratchY": -23, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3826a4091a33e4d26f87a2fac7cf796b", + "name": "apple", + "bitmapResolution": 1, + "md5ext": "3826a4091a33e4d26f87a2fac7cf796b.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 31 + } + ], + "sounds": [ + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "Chomp", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + } + ], + "blocks": {} }, { "name": "Arrow1", - "md5": "62f8794dd120e9b4ead4d098d50fc64b.svg", - "type": "sprite", "tags": [ "icons", "symbols", "game", "right" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Arrow1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "arrow1-a", - "baseLayerID": -1, - "baseLayerMD5": "62f8794dd120e9b4ead4d098d50fc64b.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 23 - }, - { - "costumeName": "arrow1-b", - "baseLayerID": -1, - "baseLayerMD5": "a157dc7e33d7c7a048af933de999e397.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 23 - }, - { - "costumeName": "arrow1-c", - "baseLayerID": -1, - "baseLayerMD5": "d3b389e91f7beb22b2b1a80af09990ee.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 28 - }, - { - "costumeName": "arrow1-d", - "baseLayerID": -1, - "baseLayerMD5": "412717ff731e9f19003a5840054057eb.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 28 - } - ], - "currentCostumeIndex": 0, - "scratchX": -36, - "scratchY": -14, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "be8fcd10da0b082f8d4775088ef7bd52", + "name": "arrow1-a", + "bitmapResolution": 1, + "md5ext": "be8fcd10da0b082f8d4775088ef7bd52.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 23 + }, + { + "assetId": "65b8e977641885010a10a46512fb95b4", + "name": "arrow1-b", + "bitmapResolution": 1, + "md5ext": "65b8e977641885010a10a46512fb95b4.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 23 + }, + { + "assetId": "dafcdfda65af14e172809984710f31a9", + "name": "arrow1-c", + "bitmapResolution": 1, + "md5ext": "dafcdfda65af14e172809984710f31a9.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 28 + }, + { + "assetId": "70ffa0bae8693418459f21f370584f6d", + "name": "arrow1-d", + "bitmapResolution": 1, + "md5ext": "70ffa0bae8693418459f21f370584f6d.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 28 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Avery", - "md5": "21393c9114c7d34b1df7ccd12c793672.svg", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Avery", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "avery-a", - "baseLayerID": -1, - "baseLayerMD5": "21393c9114c7d34b1df7ccd12c793672.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 94 - }, - { - "costumeName": "avery-b", - "baseLayerID": -1, - "baseLayerMD5": "cc55f2f09599edc4ae0876e8b3d187d0.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 94 - } - ], - "currentCostumeIndex": 0, - "scratchX": -171, - "scratchY": -76, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f52bde34d8027aab14b53f228fe5cc14", + "name": "avery-a", + "bitmapResolution": 1, + "md5ext": "f52bde34d8027aab14b53f228fe5cc14.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 94 + }, + { + "assetId": "944385ea927e8f9d72b9e19620487999", + "name": "avery-b", + "bitmapResolution": 1, + "md5ext": "944385ea927e8f9d72b9e19620487999.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 94 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Avery Walking", - "md5": "ed334e546806dfbf26d2591d7ddb12d0.svg", - "type": "sprite", "tags": [ "people", "walking" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Avery Walking", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "avery walking-a", - "baseLayerID": -1, - "baseLayerMD5": "ed334e546806dfbf26d2591d7ddb12d0.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 95 - }, - { - "costumeName": "avery walking-b", - "baseLayerID": -1, - "baseLayerMD5": "c295731e8666ad2e1575fb4b4f82988d.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 102 - }, - { - "costumeName": "avery walking-c", - "baseLayerID": -1, - "baseLayerMD5": "597a834225c9949e419dff7db1bc2453.svg", - "bitmapResolution": 1, - "rotationCenterX": 48, - "rotationCenterY": 95 - }, - { - "costumeName": "avery walking-d", - "baseLayerID": -1, - "baseLayerMD5": "ce9622d11d24607eec7988196b38c3c6.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 101 - } - ], - "currentCostumeIndex": 0, - "scratchX": -177, - "scratchY": 76, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "dc6a584704c09a3fbafb9825635a9fd4", + "name": "avery walking-a", + "bitmapResolution": 1, + "md5ext": "dc6a584704c09a3fbafb9825635a9fd4.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 95 + }, + { + "assetId": "448e54fb14b13d492885fc247e76b7f4", + "name": "avery walking-b", + "bitmapResolution": 1, + "md5ext": "448e54fb14b13d492885fc247e76b7f4.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 102 + }, + { + "assetId": "3a935fe75ac999e22b93d06b3081a271", + "name": "avery walking-c", + "bitmapResolution": 1, + "md5ext": "3a935fe75ac999e22b93d06b3081a271.svg", + "dataFormat": "svg", + "rotationCenterX": 48, + "rotationCenterY": 95 + }, + { + "assetId": "8f439476a738251043d488d7a4bc6870", + "name": "avery walking-d", + "bitmapResolution": 1, + "md5ext": "8f439476a738251043d488d7a4bc6870.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 101 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Ball", - "md5": "10117ddaefa98d819f2b1df93805622f.svg", - "type": "sprite", "tags": [ "round", "game", @@ -600,158 +512,138 @@ "purple", "things" ], - "info": [ - 0, - 5, - 2 - ], - "json": { - "objName": "Ball", - "sounds": [ - { - "soundName": "Boing", - "soundID": -1, - "md5": "53a3c2e27d1fb5fdb14aaf0cb41e7889.wav", - "sampleCount": 6804, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "ball-a", - "baseLayerID": -1, - "baseLayerMD5": "10117ddaefa98d819f2b1df93805622f.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 22 - }, - { - "costumeName": "ball-b", - "baseLayerID": -1, - "baseLayerMD5": "6e6330cad7750ea7e9dc88402661deb8.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 22 - }, - { - "costumeName": "ball-c", - "baseLayerID": -1, - "baseLayerMD5": "bb45ed5db278f15c17c012c34a6b160f.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 22 - }, - { - "costumeName": "ball-d", - "baseLayerID": -1, - "baseLayerMD5": "5d494659deae5c0de06b5885f5524276.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 22 - }, - { - "costumeName": "ball-e", - "baseLayerID": -1, - "baseLayerMD5": "e80c98bc62fd32e8df81642af11ffb1a.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 22 - } - ], - "currentCostumeIndex": 0, - "scratchX": -38, - "scratchY": -24, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3c6241985b581284ec191f9d1deffde8", + "name": "ball-a", + "bitmapResolution": 1, + "md5ext": "3c6241985b581284ec191f9d1deffde8.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 22 + }, + { + "assetId": "ad7dc51cafd73e8279073e33b0eab335", + "name": "ball-b", + "bitmapResolution": 1, + "md5ext": "ad7dc51cafd73e8279073e33b0eab335.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 22 + }, + { + "assetId": "f221a2edf87aff3615c0c003e616b31b", + "name": "ball-c", + "bitmapResolution": 1, + "md5ext": "f221a2edf87aff3615c0c003e616b31b.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 22 + }, + { + "assetId": "db144b2a19f4f1ab31e30d58f00447dc", + "name": "ball-d", + "bitmapResolution": 1, + "md5ext": "db144b2a19f4f1ab31e30d58f00447dc.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 22 + }, + { + "assetId": "1c44b7494dec047371f74c705f1d99fc", + "name": "ball-e", + "bitmapResolution": 1, + "md5ext": "1c44b7494dec047371f74c705f1d99fc.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 22 + } + ], + "sounds": [ + { + "assetId": "53a3c2e27d1fb5fdb14aaf0cb41e7889", + "name": "Boing", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 7113, + "md5ext": "53a3c2e27d1fb5fdb14aaf0cb41e7889.wav" + }, + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "Pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Ballerina", - "md5": "6051bb7008cf17c8853a6f81f04c8a0f.svg", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Ballerina", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "ballerina-a", - "baseLayerID": -1, - "baseLayerMD5": "6051bb7008cf17c8853a6f81f04c8a0f.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "ballerina-b", - "baseLayerID": -1, - "baseLayerMD5": "8bc5e47fb1439e29e11e9e3f2e20c6de.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "ballerina-c", - "baseLayerID": -1, - "baseLayerMD5": "6d3a07761b294f705987b0af58f8e335.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "ballerina-d", - "baseLayerID": -1, - "baseLayerMD5": "c3164795edf39e436272f425b4f5e487.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": -19, - "scratchY": -7, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5197d3778baf55da6b81b3ada1e10021", + "name": "ballerina-a", + "bitmapResolution": 1, + "md5ext": "5197d3778baf55da6b81b3ada1e10021.svg", + "dataFormat": "svg", + "rotationCenterX": 31.00008984350052, + "rotationCenterY": 49 + }, + { + "assetId": "4ccb1752a43f48aafe490c9c08e58c27", + "name": "ballerina-b", + "bitmapResolution": 1, + "md5ext": "4ccb1752a43f48aafe490c9c08e58c27.svg", + "dataFormat": "svg", + "rotationCenterX": 29.496239121982484, + "rotationCenterY": 23.769351839794098 + }, + { + "assetId": "fc02bf591dd3d91eeeb50c7424d08274", + "name": "ballerina-c", + "bitmapResolution": 1, + "md5ext": "fc02bf591dd3d91eeeb50c7424d08274.svg", + "dataFormat": "svg", + "rotationCenterX": 59.502591601941845, + "rotationCenterY": 59.184989331170854 + }, + { + "assetId": "5aae21aee33c3f1ae943af5ea11254bf", + "name": "ballerina-d", + "bitmapResolution": 1, + "md5ext": "5aae21aee33c3f1ae943af5ea11254bf.svg", + "dataFormat": "svg", + "rotationCenterX": 36.40099014292747, + "rotationCenterY": 77.95160112758442 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Balloon1", - "md5": "bc96a1fb5fe794377acd44807e421ce2.svg", - "type": "sprite", "tags": [ "party", "pop", @@ -762,64 +654,52 @@ "purple", "things" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Balloon1", - "sounds": [ - { - "soundName": "Pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "balloon1-a", - "baseLayerID": -1, - "baseLayerMD5": "bc96a1fb5fe794377acd44807e421ce2.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 94 - }, - { - "costumeName": "balloon1-b", - "baseLayerID": -1, - "baseLayerMD5": "d7bb51d9c38af6314bd2b4058d2a592d.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 94 - }, - { - "costumeName": "balloon1-c", - "baseLayerID": -1, - "baseLayerMD5": "247cef27b665d77d9efaca69327cae77.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 94 - } - ], - "currentCostumeIndex": 0, - "scratchX": -69, - "scratchY": 41, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d7974f9e15000c16222f94ee32d8227a", + "name": "balloon1-a", + "bitmapResolution": 1, + "md5ext": "d7974f9e15000c16222f94ee32d8227a.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 94 + }, + { + "assetId": "a2516ac2b8d7a348194908e630387ea9", + "name": "balloon1-b", + "bitmapResolution": 1, + "md5ext": "a2516ac2b8d7a348194908e630387ea9.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 94 + }, + { + "assetId": "63e5aea255610f9fdf0735e1e9a55a5c", + "name": "balloon1-c", + "bitmapResolution": 1, + "md5ext": "63e5aea255610f9fdf0735e1e9a55a5c.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 94 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "Pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Bananas", - "md5": "1a76b68e056954f5c8ac1f073df1533d.svg", - "type": "sprite", "tags": [ "food", "yellow", @@ -827,159 +707,119 @@ "potassium", "fruit" ], - "info": [ - 0, - 1, - 2 - ], - "json": { - "objName": "Bananas", - "sounds": [ - { - "soundName": "Chomp", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - }, - { - "soundName": "Bite", - "soundID": -1, - "md5": "0039635b1d6853face36581784558454.wav", - "sampleCount": 7672, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "bananas", - "baseLayerID": -1, - "baseLayerMD5": "1a76b68e056954f5c8ac1f073df1533d.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": 83, - "scratchY": -45, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e5d3d3eb61797f5999732a8f5efead24", + "name": "bananas", + "bitmapResolution": 1, + "md5ext": "e5d3d3eb61797f5999732a8f5efead24.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "Chomp", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + }, + { + "assetId": "0039635b1d6853face36581784558454", + "name": "Bite", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "0039635b1d6853face36581784558454.wav" + } + ], + "blocks": {} }, { "name": "Baseball", - "md5": "838dc2b2278619d3a9beefc6c8072a08.svg", - "type": "sprite", "tags": [ "baseball", "sports", "ball", "alex eben meyer" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Baseball", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "baseball", - "baseLayerID": -1, - "baseLayerMD5": "838dc2b2278619d3a9beefc6c8072a08.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 28 - } - ], - "currentCostumeIndex": 0, - "scratchX": 173, - "scratchY": -89, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "74e08fc57820f925c7689e7b754c5848", + "name": "baseball", + "bitmapResolution": 1, + "md5ext": "74e08fc57820f925c7689e7b754c5848.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 28 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Basketball", - "md5": "482f04cbffa835c4abf29ab996d3fbbd.svg", - "type": "sprite", "tags": [ "sports", "basketball", "alex eben meyer" ], - "info": [ - 0, - 1, - 2 - ], - "json": { - "objName": "Basketball", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - }, - { - "soundName": "basketball bounce", - "soundID": -1, - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "basketball", - "baseLayerID": -1, - "baseLayerMD5": "482f04cbffa835c4abf29ab996d3fbbd.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": 202, - "scratchY": -108, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6b0b2aaa12d655e96b5b34e92d9fbd4f", + "name": "basketball", + "bitmapResolution": 1, + "md5ext": "6b0b2aaa12d655e96b5b34e92d9fbd4f.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + }, + { + "assetId": "1727f65b5f22d151685b8e5917456a60", + "name": "basketball bounce", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav" + } + ], + "blocks": {} }, { "name": "Bat", - "md5": "75bf9a5c5ec7dc9325a0301b6f6e72dd.svg", - "type": "sprite", "tags": [ "fantasy", "spooky", @@ -988,462 +828,380 @@ "animals", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Bat", - "sounds": [ - { - "soundName": "owl", - "soundID": -1, - "md5": "e8b6d605f5a1bb36c29e4e21ef754209.wav", - "sampleCount": 8111, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "bat-a", - "baseLayerID": -1, - "baseLayerMD5": "75bf9a5c5ec7dc9325a0301b6f6e72dd.svg", - "bitmapResolution": 1, - "rotationCenterX": 80, - "rotationCenterY": 60 - }, - { - "costumeName": "bat-b", - "baseLayerID": -1, - "baseLayerMD5": "b92d4967a0c233b0e78d6e834653f846.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 61 - }, - { - "costumeName": "bat-c", - "baseLayerID": -1, - "baseLayerMD5": "56b1458bd81b8ac2401c216f7352343c.svg", - "bitmapResolution": 1, - "rotationCenterX": 68, - "rotationCenterY": 66 - }, - { - "costumeName": "bat-d", - "baseLayerID": -1, - "baseLayerMD5": "7f806f928a192aab0b0d03aa96a89a67.svg", - "bitmapResolution": 1, - "rotationCenterX": 29, - "rotationCenterY": 62 - } - ], - "currentCostumeIndex": 0, - "scratchX": -81, - "scratchY": 107, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4e4ced87ed37ee66c758bba077e0eae6", + "name": "bat-a", + "bitmapResolution": 1, + "md5ext": "4e4ced87ed37ee66c758bba077e0eae6.svg", + "dataFormat": "svg", + "rotationCenterX": 80, + "rotationCenterY": 60 + }, + { + "assetId": "bc6dd12fc9e407c7774959cdf427f8b5", + "name": "bat-b", + "bitmapResolution": 1, + "md5ext": "bc6dd12fc9e407c7774959cdf427f8b5.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 61 + }, + { + "assetId": "60f5bfce5d9b11bfcd199a6aa5454b3f", + "name": "bat-c", + "bitmapResolution": 1, + "md5ext": "60f5bfce5d9b11bfcd199a6aa5454b3f.svg", + "dataFormat": "svg", + "rotationCenterX": 68, + "rotationCenterY": 66 + }, + { + "assetId": "698c2a48e774f9959d57c9618b156c20", + "name": "bat-d", + "bitmapResolution": 1, + "md5ext": "698c2a48e774f9959d57c9618b156c20.svg", + "dataFormat": "svg", + "rotationCenterX": 29, + "rotationCenterY": 62 + } + ], + "sounds": [ + { + "assetId": "e8b6d605f5a1bb36c29e4e21ef754209", + "name": "owl", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 32444, + "md5ext": "e8b6d605f5a1bb36c29e4e21ef754209.wav" + } + ], + "blocks": {} }, { "name": "Batter", - "md5": "f7357c4cef5f31c6460e4f69dd0adabb.svg", - "type": "sprite", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Batter", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "batter-a", - "baseLayerID": -1, - "baseLayerMD5": "f7357c4cef5f31c6460e4f69dd0adabb.svg", - "bitmapResolution": 1, - "rotationCenterX": 46, - "rotationCenterY": 80 - }, - { - "costumeName": "batter-b", - "baseLayerID": -1, - "baseLayerMD5": "c60fe1da0dcddedfd152384c60cbd5cc.svg", - "bitmapResolution": 1, - "rotationCenterX": 16, - "rotationCenterY": 67 - }, - { - "costumeName": "batter-c", - "baseLayerID": -1, - "baseLayerMD5": "165c30e123e785d4cbbc0d9621f1c349.svg", - "bitmapResolution": 1, - "rotationCenterX": 94, - "rotationCenterY": 66 - }, - { - "costumeName": "batter-d", - "baseLayerID": -1, - "baseLayerMD5": "e82529d9c31b56a3dd098ccc94be68a6.svg", - "bitmapResolution": 1, - "rotationCenterX": 70, - "rotationCenterY": 102 - } - ], - "currentCostumeIndex": 0, - "scratchX": 121, - "scratchY": 70, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9d193bef6e3d6d8eba6d1470b8bf9351", + "name": "batter-a", + "bitmapResolution": 1, + "md5ext": "9d193bef6e3d6d8eba6d1470b8bf9351.svg", + "dataFormat": "svg", + "rotationCenterX": 46, + "rotationCenterY": 80 + }, + { + "assetId": "fdfde4bcbaca0f68e83fdf3f4ef0c660", + "name": "batter-b", + "bitmapResolution": 1, + "md5ext": "fdfde4bcbaca0f68e83fdf3f4ef0c660.svg", + "dataFormat": "svg", + "rotationCenterX": 16, + "rotationCenterY": 67 + }, + { + "assetId": "bd4fc003528acfa847e45ff82f346eee", + "name": "batter-c", + "bitmapResolution": 1, + "md5ext": "bd4fc003528acfa847e45ff82f346eee.svg", + "dataFormat": "svg", + "rotationCenterX": 94, + "rotationCenterY": 66 + }, + { + "assetId": "592ee9ab2aeefe65cb4fb95fcd046f33", + "name": "batter-d", + "bitmapResolution": 1, + "md5ext": "592ee9ab2aeefe65cb4fb95fcd046f33.svg", + "dataFormat": "svg", + "rotationCenterX": 70, + "rotationCenterY": 102 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Beachball", - "md5": "87d64cab74c64b31498cc85f07510ee4.svg", - "type": "sprite", "tags": [ "round", "sports", "bounce", "inflatable" ], - "info": [ - 0, - 1, - 2 - ], - "json": { - "objName": "Beachball", - "sounds": [ - { - "soundName": "Basketball Bounce", - "soundID": -1, - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "beachball", - "baseLayerID": -1, - "baseLayerMD5": "87d64cab74c64b31498cc85f07510ee4.svg", - "bitmapResolution": 1, - "rotationCenterX": 34, - "rotationCenterY": 33 - } - ], - "currentCostumeIndex": 0, - "scratchX": -83, - "scratchY": -24, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5198b5a03ebae60698e0906f59a5fc15", + "name": "beachball", + "bitmapResolution": 1, + "md5ext": "5198b5a03ebae60698e0906f59a5fc15.svg", + "dataFormat": "svg", + "rotationCenterX": 34, + "rotationCenterY": 33 + } + ], + "sounds": [ + { + "assetId": "1727f65b5f22d151685b8e5917456a60", + "name": "Basketball Bounce", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav" + }, + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Bear", - "md5": "5a4148d7684fc95f38c58a1672062c9e.svg", - "type": "sprite", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Bear", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "bear-a", - "baseLayerID": -1, - "baseLayerMD5": "5a4148d7684fc95f38c58a1672062c9e.svg", - "bitmapResolution": 1, - "rotationCenterX": 100, - "rotationCenterY": 90 - }, - { - "costumeName": "bear-b", - "baseLayerID": -1, - "baseLayerMD5": "92a64ce184c8515217e0e98e49624622.svg", - "bitmapResolution": 1, - "rotationCenterX": 94, - "rotationCenterY": 191 - } - ], - "currentCostumeIndex": 0, - "scratchX": 6, - "scratchY": -18, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "deef1eaa96d550ae6fc11524a1935024", + "name": "bear-a", + "bitmapResolution": 1, + "md5ext": "deef1eaa96d550ae6fc11524a1935024.svg", + "dataFormat": "svg", + "rotationCenterX": 100, + "rotationCenterY": 90 + }, + { + "assetId": "6f303e972f33fcb7ef36d0d8012d0975", + "name": "bear-b", + "bitmapResolution": 1, + "md5ext": "6f303e972f33fcb7ef36d0d8012d0975.svg", + "dataFormat": "svg", + "rotationCenterX": 94, + "rotationCenterY": 190.66666666666666 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Bear-walking", - "md5": "d15eddb1a0f0ff0fa867bc006b46685d.svg", - "type": "sprite", "tags": [ "animals", "ipzy", "walking" ], - "info": [ - 0, - 8, - 1 - ], - "json": { - "objName": "Bear-walking", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "bear-walk-a", - "baseLayerID": -1, - "baseLayerMD5": "d15eddb1a0f0ff0fa867bc006b46685d.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 94 - }, - { - "costumeName": "bear-walk-b", - "baseLayerID": -1, - "baseLayerMD5": "06e3f1bcf4f46b83df3820d92430f202.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 94 - }, - { - "costumeName": "bear-walk-c", - "baseLayerID": -1, - "baseLayerMD5": "13a3584040c9903b1824bb249d7f8a0e.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 94 - }, - { - "costumeName": "bear-walk-d", - "baseLayerID": -1, - "baseLayerMD5": "c5d49a105619c497be45a5d2c43a740a.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 94 - }, - { - "costumeName": "bear-walk-e", - "baseLayerID": -1, - "baseLayerMD5": "ece252d79c2d30c647c43c58986d9671.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 94 - }, - { - "costumeName": "bear-walk-f", - "baseLayerID": -1, - "baseLayerMD5": "ff66b87efec0e647dc30ec58df168ec4.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 94 - }, - { - "costumeName": "bear-walk-g", - "baseLayerID": -1, - "baseLayerMD5": "d1404b12adf0d6b1b881f0dca47ce21a.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 94 - }, - { - "costumeName": "bear-walk-h", - "baseLayerID": -1, - "baseLayerMD5": "489055be58a7d9806e1d50455c88c399.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 94 - } - ], - "currentCostumeIndex": 0, - "scratchX": -13, - "scratchY": -35, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6d4d06e3f4cd0c9455b777b9a40782b6", + "name": "bear-walk-a", + "bitmapResolution": 1, + "md5ext": "6d4d06e3f4cd0c9455b777b9a40782b6.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 94 + }, + { + "assetId": "7453709bef16e33e6f989aee14d7fc07", + "name": "bear-walk-b", + "bitmapResolution": 1, + "md5ext": "7453709bef16e33e6f989aee14d7fc07.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 94 + }, + { + "assetId": "6d50c5fe63ab5f77d10144a68ca535a6", + "name": "bear-walk-c", + "bitmapResolution": 1, + "md5ext": "6d50c5fe63ab5f77d10144a68ca535a6.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 94 + }, + { + "assetId": "e531b307381c2aa148be4ccc36db0333", + "name": "bear-walk-d", + "bitmapResolution": 1, + "md5ext": "e531b307381c2aa148be4ccc36db0333.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 94 + }, + { + "assetId": "0a38a860f2e573b8dc5b09f390d30fbd", + "name": "bear-walk-e", + "bitmapResolution": 1, + "md5ext": "0a38a860f2e573b8dc5b09f390d30fbd.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 94 + }, + { + "assetId": "f36c80d2e731be95df7ec6d07f89fa00", + "name": "bear-walk-f", + "bitmapResolution": 1, + "md5ext": "f36c80d2e731be95df7ec6d07f89fa00.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 94 + }, + { + "assetId": "d2a5f124f988def1d214e6d0813a48f3", + "name": "bear-walk-g", + "bitmapResolution": 1, + "md5ext": "d2a5f124f988def1d214e6d0813a48f3.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 94 + }, + { + "assetId": "36d06aa23c684fc996952adb0e76e6b4", + "name": "bear-walk-h", + "bitmapResolution": 1, + "md5ext": "36d06aa23c684fc996952adb0e76e6b4.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 94 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Beetle", - "md5": "e1ce8f153f011fdd52486c91c6ed594d.svg", - "type": "sprite", "tags": [ "animals", "insect", "bug", "antennae" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Beetle", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "beetle", - "baseLayerID": -1, - "baseLayerMD5": "e1ce8f153f011fdd52486c91c6ed594d.svg", - "bitmapResolution": 1, - "rotationCenterX": 43, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": 77, - "scratchY": -42, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "46d0dfd4ae7e9bfe3a6a2e35a4905eae", + "name": "beetle", + "bitmapResolution": 1, + "md5ext": "46d0dfd4ae7e9bfe3a6a2e35a4905eae.svg", + "dataFormat": "svg", + "rotationCenterX": 43, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Bell", - "md5": "f35056c772395455d703773657e1da6e.svg", - "type": "sprite", "tags": [ "music", "holiday", "ring", "things" ], - "info": [ - 0, - 1, - 2 - ], - "json": { - "objName": "Bell", - "sounds": [ - { - "soundName": "xylo1", - "soundID": -1, - "md5": "6ac484e97c1c1fe1384642e26a125e70.wav", - "sampleCount": 238232, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "bell toll", - "soundID": -1, - "md5": "25d61e79cbeba4041eebeaebd7bf9598.wav", - "sampleCount": 45168, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "bell1", - "baseLayerID": -1, - "baseLayerMD5": "f35056c772395455d703773657e1da6e.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 69 - } - ], - "currentCostumeIndex": 0, - "scratchX": 96, - "scratchY": 8, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "8c0234fe1bfd36f5a72e975fbbc18bfd", + "name": "bell1", + "bitmapResolution": 1, + "md5ext": "8c0234fe1bfd36f5a72e975fbbc18bfd.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 69 + } + ], + "sounds": [ + { + "assetId": "6ac484e97c1c1fe1384642e26a125e70", + "name": "xylo1", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 238761, + "md5ext": "6ac484e97c1c1fe1384642e26a125e70.wav" + }, + { + "assetId": "25d61e79cbeba4041eebeaebd7bf9598", + "name": "bell toll", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 180672, + "md5ext": "25d61e79cbeba4041eebeaebd7bf9598.wav" + } + ], + "blocks": {} }, { "name": "Ben", - "md5": "322e13bd17d02acfdc048a5ef2167be8.svg", - "type": "sprite", "tags": [ "sports", "soccer", @@ -1451,387 +1209,316 @@ "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 2 - ], - "json": { - "objName": "Ben", - "sounds": [ - { - "soundName": "Goal Cheer", - "soundID": -1, - "md5": "a434069c58e79d42f5d21abb1c318919.wav", - "sampleCount": 84096, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Referee Whistle", - "soundID": -1, - "md5": "8468b9b3f11a665ee4d215afd8463b97.wav", - "sampleCount": 14034, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "ben-a", - "baseLayerID": -1, - "baseLayerMD5": "322e13bd17d02acfdc048a5ef2167be8.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 69 - }, - { - "costumeName": "ben-b", - "baseLayerID": -1, - "baseLayerMD5": "59ba1e80ba75b1d06c37db4b9b4fde27.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 69 - }, - { - "costumeName": "ben-c", - "baseLayerID": -1, - "baseLayerMD5": "940ec2fa85d666dde95a51bcbccd266e.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 71 - }, - { - "costumeName": "ben-d", - "baseLayerID": -1, - "baseLayerMD5": "3043a50a91b9d484a8cd32eb82f2d88f.svg", - "bitmapResolution": 1, - "rotationCenterX": 44, - "rotationCenterY": 71 - } - ], - "currentCostumeIndex": 0, - "scratchX": -15, - "scratchY": 93, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2cd77b8a9961e7ad4da905e7731b7c1b", + "name": "ben-a", + "bitmapResolution": 1, + "md5ext": "2cd77b8a9961e7ad4da905e7731b7c1b.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 69 + }, + { + "assetId": "165d993c30dfdb9e829d0d98867d7826", + "name": "ben-b", + "bitmapResolution": 1, + "md5ext": "165d993c30dfdb9e829d0d98867d7826.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 69 + }, + { + "assetId": "9f9f88aea3457084d8d734040b0b9067", + "name": "ben-c", + "bitmapResolution": 1, + "md5ext": "9f9f88aea3457084d8d734040b0b9067.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 71 + }, + { + "assetId": "acc208e29f0422c2bcffa3b8873abc63", + "name": "ben-d", + "bitmapResolution": 1, + "md5ext": "acc208e29f0422c2bcffa3b8873abc63.svg", + "dataFormat": "svg", + "rotationCenterX": 44, + "rotationCenterY": 71 + } + ], + "sounds": [ + { + "assetId": "a434069c58e79d42f5d21abb1c318919", + "name": "Goal Cheer", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 84329, + "md5ext": "a434069c58e79d42f5d21abb1c318919.wav" + }, + { + "assetId": "8468b9b3f11a665ee4d215afd8463b97", + "name": "Referee Whistle", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 14225, + "md5ext": "8468b9b3f11a665ee4d215afd8463b97.wav" + } + ], + "blocks": {} }, { "name": "Bowl", - "md5": "86f616639846f06fef29931e6b9b59de.svg", - "type": "sprite", "tags": [ "thing", "food" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Bowl", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "bowl-a", - "baseLayerID": -1, - "baseLayerMD5": "86f616639846f06fef29931e6b9b59de.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 15 - } - ], - "currentCostumeIndex": 0, - "scratchX": 17, - "scratchY": 18, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d147f16e3e2583719c073ac5b55fe3ca", + "name": "bowl-a", + "bitmapResolution": 1, + "md5ext": "d147f16e3e2583719c073ac5b55fe3ca.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 15 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Bowtie", - "md5": "7d876f3ba4b04f3193a701ed30b4490c.svg", - "type": "sprite", "tags": [ "fashion", "clothing", "bowtie" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Bowtie", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "bowtie", - "baseLayerID": -1, - "baseLayerMD5": "7d876f3ba4b04f3193a701ed30b4490c.svg", - "bitmapResolution": 1, - "rotationCenterX": 15, - "rotationCenterY": 8 - } - ], - "currentCostumeIndex": 0, - "scratchX": -65, - "scratchY": 58, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4b032ba44b8077439e73815542e7ed23", + "name": "bowtie", + "bitmapResolution": 1, + "md5ext": "4b032ba44b8077439e73815542e7ed23.svg", + "dataFormat": "svg", + "rotationCenterX": 15, + "rotationCenterY": 8 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Bread", - "md5": "68366160ce0ac1221cdde4455eca9cba.svg", - "type": "sprite", "tags": [ "food", "ipzy" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Bread", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "bread", - "baseLayerID": -1, - "baseLayerMD5": "68366160ce0ac1221cdde4455eca9cba.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 12 - } - ], - "currentCostumeIndex": 0, - "scratchX": 6, - "scratchY": 49, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "585de1550446d4420f8a10fdecac995b", + "name": "bread", + "bitmapResolution": 1, + "md5ext": "585de1550446d4420f8a10fdecac995b.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 12 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Broom", - "md5": "836197f784bc4c4decfb1a5a60ca6c56.svg", - "type": "sprite", "tags": [ "fantasy", "ipzy", "flying", "things" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Broom", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "broom", - "baseLayerID": -1, - "baseLayerMD5": "836197f784bc4c4decfb1a5a60ca6c56.svg", - "bitmapResolution": 1, - "rotationCenterX": 135, - "rotationCenterY": 25 - } - ], - "currentCostumeIndex": 0, - "scratchX": -14, - "scratchY": -59, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "556288a1c996345c751a3dc88b570cfa", + "name": "broom", + "bitmapResolution": 1, + "md5ext": "556288a1c996345c751a3dc88b570cfa.svg", + "dataFormat": "svg", + "rotationCenterX": 135, + "rotationCenterY": 25 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Buildings", - "md5": "d713270e235851e5962becd73a951771.svg", - "type": "sprite", "tags": [ "things", "city", "flying", "architecture" ], - "info": [ - 0, - 10, - 1 - ], - "json": { - "objName": "Buildings", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "building-a", - "baseLayerID": -1, - "baseLayerMD5": "d713270e235851e5962becd73a951771.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 30 - }, - { - "costumeName": "building-b", - "baseLayerID": -1, - "baseLayerMD5": "8c2d59c50a97d33b096f629258f02be6.svg", - "bitmapResolution": 1, - "rotationCenterX": 46, - "rotationCenterY": -11 - }, - { - "costumeName": "building-c", - "baseLayerID": -1, - "baseLayerMD5": "7f3f51f495c39809bed95991dfa1f80d.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 17 - }, - { - "costumeName": "building-d", - "baseLayerID": -1, - "baseLayerMD5": "bbe68ab80b36e4c71f4e28414c7f781e.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": -10 - }, - { - "costumeName": "building-e", - "baseLayerID": -1, - "baseLayerMD5": "1beeb8f034a1128c9a799297b0b7fc26.svg", - "bitmapResolution": 1, - "rotationCenterX": 36, - "rotationCenterY": 55 - }, - { - "costumeName": "building-f", - "baseLayerID": -1, - "baseLayerMD5": "451e0a565e95d945fe2addfe609ee9df.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 27 - }, - { - "costumeName": "building-g", - "baseLayerID": -1, - "baseLayerMD5": "58b3c9b7a41dde698fa2b427b502c1fa.svg", - "bitmapResolution": 1, - "rotationCenterX": 64, - "rotationCenterY": -65 - }, - { - "costumeName": "building-h", - "baseLayerID": -1, - "baseLayerMD5": "e952c8b14eeac894302d07d37a45ed99.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 136 - }, - { - "costumeName": "building-i", - "baseLayerID": -1, - "baseLayerMD5": "b00b1123e3bfcb600242528d059ffcfb.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": -12 - }, - { - "costumeName": "building-j", - "baseLayerID": -1, - "baseLayerMD5": "e08fd1a7397efcfe0e3691f945693cb4.svg", - "bitmapResolution": 1, - "rotationCenterX": 29, - "rotationCenterY": 33 - } - ], - "currentCostumeIndex": 0, - "scratchX": 4, - "scratchY": -24, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e8c9508b1f6a0a432e09c10ef9ada67c", + "name": "building-a", + "bitmapResolution": 1, + "md5ext": "e8c9508b1f6a0a432e09c10ef9ada67c.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 30 + }, + { + "assetId": "a8c977a3b85ffe8c8b453c9d668989b8", + "name": "building-b", + "bitmapResolution": 1, + "md5ext": "a8c977a3b85ffe8c8b453c9d668989b8.svg", + "dataFormat": "svg", + "rotationCenterX": 46, + "rotationCenterY": -11 + }, + { + "assetId": "e4764cfc384a499f92da3ea745bcebe2", + "name": "building-c", + "bitmapResolution": 1, + "md5ext": "e4764cfc384a499f92da3ea745bcebe2.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 17 + }, + { + "assetId": "d1fcce0aac589a17324943a3b759fc2a", + "name": "building-d", + "bitmapResolution": 1, + "md5ext": "d1fcce0aac589a17324943a3b759fc2a.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": -10 + }, + { + "assetId": "bb47a3d5d03a34937557c558c6cb5d18", + "name": "building-e", + "bitmapResolution": 1, + "md5ext": "bb47a3d5d03a34937557c558c6cb5d18.svg", + "dataFormat": "svg", + "rotationCenterX": 36, + "rotationCenterY": 55 + }, + { + "assetId": "80b120b7152ed72fded84fef485f4f79", + "name": "building-f", + "bitmapResolution": 1, + "md5ext": "80b120b7152ed72fded84fef485f4f79.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 27 + }, + { + "assetId": "4212ff1769c169bfa0db043b18fdade8", + "name": "building-g", + "bitmapResolution": 1, + "md5ext": "4212ff1769c169bfa0db043b18fdade8.svg", + "dataFormat": "svg", + "rotationCenterX": 64, + "rotationCenterY": -65 + }, + { + "assetId": "8f64966be60d332b345598819c67a8b6", + "name": "building-h", + "bitmapResolution": 1, + "md5ext": "8f64966be60d332b345598819c67a8b6.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 136 + }, + { + "assetId": "fcedb6b25a2db6de28b39130f978b0bf", + "name": "building-i", + "bitmapResolution": 1, + "md5ext": "fcedb6b25a2db6de28b39130f978b0bf.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": -12 + }, + { + "assetId": "148034b1557cc3dae39953e43ab50ff0", + "name": "building-j", + "bitmapResolution": 1, + "md5ext": "148034b1557cc3dae39953e43ab50ff0.svg", + "dataFormat": "svg", + "rotationCenterX": 29, + "rotationCenterY": 33 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Butterfly 1", - "md5": "8419d4851defd1e862e4f7c1699d2190.svg", - "type": "sprite", "tags": [ "animals", "insect", @@ -1839,64 +1526,52 @@ "wetland", "owen davey" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Butterfly 1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "butterfly1-a", - "baseLayerID": -1, - "baseLayerMD5": "8419d4851defd1e862e4f7c1699d2190.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 49 - }, - { - "costumeName": "butterfly1-b", - "baseLayerID": -1, - "baseLayerMD5": "0873714e8d55d9eeb0bc8e8ab64441cc.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 49 - }, - { - "costumeName": "butterfly1-c", - "baseLayerID": -1, - "baseLayerMD5": "9c422631ca8d46413487f5dd627b65c6.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 49 - } - ], - "currentCostumeIndex": 0, - "scratchX": -107, - "scratchY": 104, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "fe98df7367e314d9640bfaa54fc239be", + "name": "butterfly1-a", + "bitmapResolution": 1, + "md5ext": "fe98df7367e314d9640bfaa54fc239be.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 49 + }, + { + "assetId": "49c9f952007d870a046cff93b6e5e098", + "name": "butterfly1-b", + "bitmapResolution": 1, + "md5ext": "49c9f952007d870a046cff93b6e5e098.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 49 + }, + { + "assetId": "34b76c1835c6a7fc2c47956e49bb0f52", + "name": "butterfly1-c", + "bitmapResolution": 1, + "md5ext": "34b76c1835c6a7fc2c47956e49bb0f52.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 49 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Butterfly 2", - "md5": "836d4cc7889f4a1cbcb0303934f31f79.svg", - "type": "sprite", "tags": [ "animals", "drawing", @@ -1906,269 +1581,203 @@ "antennae", "flappers" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Butterfly 2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "butterfly2-a", - "baseLayerID": -1, - "baseLayerMD5": "836d4cc7889f4a1cbcb0303934f31f79.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "butterfly2-b", - "baseLayerID": -1, - "baseLayerMD5": "55dd0671a359d7c35f7b78f4176660e8.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": -98, - "scratchY": -16, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "372ae0abd2e8e50a20bc12cb160d8746", + "name": "butterfly2-a", + "bitmapResolution": 1, + "md5ext": "372ae0abd2e8e50a20bc12cb160d8746.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + }, + { + "assetId": "e96f4c6913107c9b790d37bb65507c14", + "name": "butterfly2-b", + "bitmapResolution": 1, + "md5ext": "e96f4c6913107c9b790d37bb65507c14.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Button1", - "md5": "7ef67c5bc8cf7df64fdb3b1d6b250f71.svg", - "type": "sprite", "tags": [ "icons", "round", "green", "games" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Button1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "button1", - "baseLayerID": -1, - "baseLayerMD5": "7ef67c5bc8cf7df64fdb3b1d6b250f71.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": -22, - "scratchY": -30, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "21fb7fa07eac4794fded0be4e18e20a2", + "name": "button1", + "bitmapResolution": 1, + "md5ext": "21fb7fa07eac4794fded0be4e18e20a2.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Button2", - "md5": "c0051ff23e9aae78295964206793c1e3.svg", - "type": "sprite", "tags": [ "icons", "blue", "games" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Button2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "button2-a", - "baseLayerID": -1, - "baseLayerMD5": "c0051ff23e9aae78295964206793c1e3.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - }, - { - "costumeName": "button2-b", - "baseLayerID": -1, - "baseLayerMD5": "712a561dc0ad66e348b8247e566b50ef.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": -27, - "scratchY": -16, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "af4cd54e776031bc9cc54ddd6892f97b", + "name": "button2-a", + "bitmapResolution": 1, + "md5ext": "af4cd54e776031bc9cc54ddd6892f97b.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + }, + { + "assetId": "329bf3d86050ceaea2b27e2c5d2baec1", + "name": "button2-b", + "bitmapResolution": 1, + "md5ext": "329bf3d86050ceaea2b27e2c5d2baec1.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Button3", - "md5": "ffb2a9c21084c58fdb677c8d12a97519.svg", - "type": "sprite", "tags": [ "icons", "gray", "blue", "games" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Button3", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "button3-a", - "baseLayerID": -1, - "baseLayerMD5": "ffb2a9c21084c58fdb677c8d12a97519.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - }, - { - "costumeName": "button3-b", - "baseLayerID": -1, - "baseLayerMD5": "7a9ccb55e4da36f48811ab125d2492e0.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": -58, - "scratchY": 10, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5021f6b7d166873ef0711c4d4a351912", + "name": "button3-a", + "bitmapResolution": 1, + "md5ext": "5021f6b7d166873ef0711c4d4a351912.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + }, + { + "assetId": "a3b357ea21773bcb3545a227ee877e9a", + "name": "button3-b", + "bitmapResolution": 1, + "md5ext": "a3b357ea21773bcb3545a227ee877e9a.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Button4", - "md5": "ecfe263bc256349777e571eaf39761d4.svg", - "type": "sprite", "tags": [ "icons", "checkmark" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Button4", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "button4-a", - "baseLayerID": -1, - "baseLayerMD5": "ecfe263bc256349777e571eaf39761d4.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 34 - }, - { - "costumeName": "button4-b", - "baseLayerID": -1, - "baseLayerMD5": "9c49edde00b80cd22d636a0577a9b1c9.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 34 - } - ], - "currentCostumeIndex": 0, - "scratchX": -32, - "scratchY": 48, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "71ced7c192168c7b221d16b4eaff440e", + "name": "button4-a", + "bitmapResolution": 1, + "md5ext": "71ced7c192168c7b221d16b4eaff440e.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 34 + }, + { + "assetId": "7d34ad26633abbc752c9cd93ace0a81f", + "name": "button4-b", + "bitmapResolution": 1, + "md5ext": "7d34ad26633abbc752c9cd93ace0a81f.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 34 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Button5", - "md5": "71e97245b7be4fd6fe3ba8cdeecadaf1.svg", - "type": "sprite", "tags": [ "icons", "symbols", @@ -2176,56 +1785,43 @@ "red", "black" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Button5", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "button5-a", - "baseLayerID": -1, - "baseLayerMD5": "71e97245b7be4fd6fe3ba8cdeecadaf1.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - }, - { - "costumeName": "button5-b", - "baseLayerID": -1, - "baseLayerMD5": "54cd55512f7571060e6e64168e541222.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": 37, - "scratchY": 37, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "94957f2f79e8970d8b2cd0f74a0c1ffc", + "name": "button5-a", + "bitmapResolution": 1, + "md5ext": "94957f2f79e8970d8b2cd0f74a0c1ffc.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + }, + { + "assetId": "a4bb9a9e06e65337798471035719985a", + "name": "button5-b", + "bitmapResolution": 1, + "md5ext": "a4bb9a9e06e65337798471035719985a.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Cake", - "md5": "e1e8e8a765b8778d6181035c5c66984d.svg", - "type": "sprite", "tags": [ "food", "bakery", @@ -2236,251 +1832,203 @@ "dragable", "lie" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Cake", - "sounds": [ - { - "soundName": "Birthday", - "soundID": -1, - "md5": "89691587a169d935a58c48c3d4e78534.wav", - "sampleCount": 161408, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "cake-a", - "baseLayerID": -1, - "baseLayerMD5": "e1e8e8a765b8778d6181035c5c66984d.svg", - "bitmapResolution": 1, - "rotationCenterX": 64, - "rotationCenterY": 50 - }, - { - "costumeName": "cake-b", - "baseLayerID": -1, - "baseLayerMD5": "460268a804e7682c9fabf37e4b70071c.svg", - "bitmapResolution": 1, - "rotationCenterX": 64, - "rotationCenterY": 42 - } - ], - "currentCostumeIndex": 0, - "scratchX": 53, - "scratchY": 34, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "862488bf66b67c5330cae9235b853b6e", + "name": "cake-a", + "bitmapResolution": 1, + "md5ext": "862488bf66b67c5330cae9235b853b6e.svg", + "dataFormat": "svg", + "rotationCenterX": 64, + "rotationCenterY": 50 + }, + { + "assetId": "dfe9c5d40da0dcc386fad524c36d3579", + "name": "cake-b", + "bitmapResolution": 1, + "md5ext": "dfe9c5d40da0dcc386fad524c36d3579.svg", + "dataFormat": "svg", + "rotationCenterX": 64, + "rotationCenterY": 42 + } + ], + "sounds": [ + { + "assetId": "89691587a169d935a58c48c3d4e78534", + "name": "Birthday", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 322816, + "md5ext": "89691587a169d935a58c48c3d4e78534.wav" + } + ], + "blocks": {} }, { "name": "Calvrett", - "md5": "452683db3ad7a882f5ab9de496441592.png", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Calvrett", - "sounds": [ - { - "soundName": "dance chill out", - "soundID": -1, - "md5": "b235da45581b1f212c9e9cce70d2a2dc.wav", - "sampleCount": 222822, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "calvrett jumping", - "baseLayerID": -1, - "baseLayerMD5": "452683db3ad7a882f5ab9de496441592.png", - "bitmapResolution": 2, - "rotationCenterX": 168, - "rotationCenterY": 216 - }, - { - "costumeName": "calvrett thinking", - "baseLayerID": -1, - "baseLayerMD5": "728ec1ebc275b53809023a36c66eeaa3.png", - "bitmapResolution": 2, - "rotationCenterX": 106, - "rotationCenterY": 170 - } - ], - "currentCostumeIndex": 0, - "scratchX": 39, - "scratchY": -9, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "452683db3ad7a882f5ab9de496441592", + "name": "calvrett jumping", + "bitmapResolution": 2, + "md5ext": "452683db3ad7a882f5ab9de496441592.png", + "dataFormat": "png", + "rotationCenterX": 168, + "rotationCenterY": 216 + }, + { + "assetId": "728ec1ebc275b53809023a36c66eeaa3", + "name": "calvrett thinking", + "bitmapResolution": 2, + "md5ext": "728ec1ebc275b53809023a36c66eeaa3.png", + "dataFormat": "png", + "rotationCenterX": 106, + "rotationCenterY": 170 + } + ], + "sounds": [ + { + "assetId": "b235da45581b1f212c9e9cce70d2a2dc", + "name": "dance chill out", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 223521, + "md5ext": "b235da45581b1f212c9e9cce70d2a2dc.wav" + } + ], + "blocks": {} }, { "name": "Casey", - "md5": "b7269d70079e96299666cc7b3f8eabc3.svg", - "type": "sprite", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Casey", - "sounds": [ - { - "soundName": "basketball bounce", - "soundID": -1, - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "casey-a", - "baseLayerID": -1, - "baseLayerMD5": "b7269d70079e96299666cc7b3f8eabc3.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 62 - }, - { - "costumeName": "casey-b", - "baseLayerID": -1, - "baseLayerMD5": "d22f6e818106f247f91e1c7c315863c3.svg", - "bitmapResolution": 1, - "rotationCenterX": 60, - "rotationCenterY": 74 - }, - { - "costumeName": "casey-c", - "baseLayerID": -1, - "baseLayerMD5": "a6ea02408a3f8366dfd704aae9a6ed0b.svg", - "bitmapResolution": 1, - "rotationCenterX": 57, - "rotationCenterY": 72 - }, - { - "costumeName": "casey-d", - "baseLayerID": -1, - "baseLayerMD5": "033ef301acfdfbc38774a14a559c1654.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 74 - } - ], - "currentCostumeIndex": 0, - "scratchX": -138, - "scratchY": 11, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e5a47371f3e9f853b36560cda35344b6", + "name": "casey-a", + "bitmapResolution": 1, + "md5ext": "e5a47371f3e9f853b36560cda35344b6.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 62 + }, + { + "assetId": "e09e5ef2bdeb69163a543f3216c1f54c", + "name": "casey-b", + "bitmapResolution": 1, + "md5ext": "e09e5ef2bdeb69163a543f3216c1f54c.svg", + "dataFormat": "svg", + "rotationCenterX": 60, + "rotationCenterY": 74 + }, + { + "assetId": "50bd5162671b8a30fcfa3082a9e79ec4", + "name": "casey-c", + "bitmapResolution": 1, + "md5ext": "50bd5162671b8a30fcfa3082a9e79ec4.svg", + "dataFormat": "svg", + "rotationCenterX": 57, + "rotationCenterY": 72 + }, + { + "assetId": "ebc3de539e02801d420268eb189c5a47", + "name": "casey-d", + "bitmapResolution": 1, + "md5ext": "ebc3de539e02801d420268eb189c5a47.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 74 + } + ], + "sounds": [ + { + "assetId": "1727f65b5f22d151685b8e5917456a60", + "name": "basketball bounce", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav" + } + ], + "blocks": {} }, { "name": "Cassy Dance", - "md5": "6cb3686db1fa658b6541cc9fa3ccfcc7.png", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Cassy Dance", - "sounds": [ - { - "soundName": "dance around", - "soundID": -1, - "md5": "8bcea76415eaf98ec1cbc3825845b934.wav", - "sampleCount": 343746, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "cassy-a", - "baseLayerID": -1, - "baseLayerMD5": "6cb3686db1fa658b6541cc9fa3ccfcc7.png", - "bitmapResolution": 2, - "rotationCenterX": 104, - "rotationCenterY": 192 - }, - { - "costumeName": "cassy-b", - "baseLayerID": -1, - "baseLayerMD5": "f801cec764da5ef6374e1d557296d14e.png", - "bitmapResolution": 2, - "rotationCenterX": 140, - "rotationCenterY": 192 - }, - { - "costumeName": "cassy-c", - "baseLayerID": -1, - "baseLayerMD5": "63483bbf72fc55719918a335e1a16426.png", - "bitmapResolution": 2, - "rotationCenterX": 74, - "rotationCenterY": 188 - }, - { - "costumeName": "cassy-d", - "baseLayerID": -1, - "baseLayerMD5": "aca39a47cf3affd8a83d3287d2856c29.png", - "bitmapResolution": 2, - "rotationCenterX": 94, - "rotationCenterY": 180 - } - ], - "currentCostumeIndex": 0, - "scratchX": -88, - "scratchY": 44, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6cb3686db1fa658b6541cc9fa3ccfcc7", + "name": "cassy-a", + "bitmapResolution": 2, + "md5ext": "6cb3686db1fa658b6541cc9fa3ccfcc7.png", + "dataFormat": "png", + "rotationCenterX": 104, + "rotationCenterY": 192 + }, + { + "assetId": "f801cec764da5ef6374e1d557296d14e", + "name": "cassy-b", + "bitmapResolution": 2, + "md5ext": "f801cec764da5ef6374e1d557296d14e.png", + "dataFormat": "png", + "rotationCenterX": 140, + "rotationCenterY": 192 + }, + { + "assetId": "63483bbf72fc55719918a335e1a16426", + "name": "cassy-c", + "bitmapResolution": 2, + "md5ext": "63483bbf72fc55719918a335e1a16426.png", + "dataFormat": "png", + "rotationCenterX": 74, + "rotationCenterY": 188 + }, + { + "assetId": "aca39a47cf3affd8a83d3287d2856c29", + "name": "cassy-d", + "bitmapResolution": 2, + "md5ext": "aca39a47cf3affd8a83d3287d2856c29.png", + "dataFormat": "png", + "rotationCenterX": 94, + "rotationCenterY": 180 + } + ], + "sounds": [ + { + "assetId": "8bcea76415eaf98ec1cbc3825845b934", + "name": "dance around", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 343409, + "md5ext": "8bcea76415eaf98ec1cbc3825845b934.wav" + } + ], + "blocks": {} }, { "name": "Cat", - "md5": "b7853f557e4426412e64bb3da6531a99.svg", - "type": "sprite", "tags": [ "animals", "cat", @@ -2490,56 +2038,43 @@ "orange", "scratch cat" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Cat", - "sounds": [ - { - "soundName": "Meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "cat-a", - "baseLayerID": -1, - "baseLayerMD5": "b7853f557e4426412e64bb3da6531a99.svg", - "bitmapResolution": 1, - "rotationCenterX": 48, - "rotationCenterY": 50 - }, - { - "costumeName": "cat-b", - "baseLayerID": -1, - "baseLayerMD5": "e6ddc55a6ddd9cc9d84fe0b4c21e016f.svg", - "bitmapResolution": 1, - "rotationCenterX": 46, - "rotationCenterY": 53 - } - ], - "currentCostumeIndex": 0, - "scratchX": 24, - "scratchY": 16, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "bcf454acf82e4504149f7ffe07081dbc", + "name": "cat-a", + "bitmapResolution": 1, + "md5ext": "bcf454acf82e4504149f7ffe07081dbc.svg", + "dataFormat": "svg", + "rotationCenterX": 48, + "rotationCenterY": 50 + }, + { + "assetId": "0fb9be3e8397c983338cb71dc84d0b25", + "name": "cat-b", + "bitmapResolution": 1, + "md5ext": "0fb9be3e8397c983338cb71dc84d0b25.svg", + "dataFormat": "svg", + "rotationCenterX": 46, + "rotationCenterY": 53 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "Meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Cat 2", - "md5": "01ae57fd339529445cb890978ef8a054.svg", - "type": "sprite", "tags": [ "cat", "kitty", @@ -2547,735 +2082,853 @@ "animals", "mammal" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Cat 2", - "sounds": [ - { - "soundName": "meow2", - "soundID": -1, - "md5": "cf51a0c4088942d95bcc20af13202710.wav", - "sampleCount": 6512, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "cat 2", - "baseLayerID": -1, - "baseLayerMD5": "01ae57fd339529445cb890978ef8a054.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -71, - "scratchY": 1, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "7499cf6ec438d0c7af6f896bc6adc294", + "name": "cat 2", + "bitmapResolution": 1, + "md5ext": "7499cf6ec438d0c7af6f896bc6adc294.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "cf51a0c4088942d95bcc20af13202710", + "name": "meow2", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 26048, + "md5ext": "cf51a0c4088942d95bcc20af13202710.wav" + } + ], + "blocks": {} }, { "name": "Cat Flying", - "md5": "bf6b9f91e6928be67eda5154ca5fb2c6.svg", - "type": "sprite", "tags": [ "animals", "cat", "kitty", "kitten" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Cat Flying", - "sounds": [ - { - "soundName": "Pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "cat flying-a", - "baseLayerID": -1, - "baseLayerMD5": "bf6b9f91e6928be67eda5154ca5fb2c6.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 37 - }, - { - "costumeName": "cat flying-b", - "baseLayerID": -1, - "baseLayerMD5": "6a5f707419e619463135f5bae599fa5b.svg", - "bitmapResolution": 1, - "rotationCenterX": 44, - "rotationCenterY": 46 - } - ], - "currentCostumeIndex": 0, - "scratchX": -53, - "scratchY": -14, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a1ab94c8172c3b97ed9a2bf7c32172cd", + "name": "cat flying-a", + "bitmapResolution": 1, + "md5ext": "a1ab94c8172c3b97ed9a2bf7c32172cd.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 37 + }, + { + "assetId": "6667936a2793aade66c765c329379ad0", + "name": "cat flying-b", + "bitmapResolution": 1, + "md5ext": "6667936a2793aade66c765c329379ad0.svg", + "dataFormat": "svg", + "rotationCenterX": 44, + "rotationCenterY": 46 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "Pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Catcher", - "md5": "27c88c54a59b9fff7e3e4763a6e9874e.svg", - "type": "sprite", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Catcher", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "catcher-a", - "baseLayerID": -1, - "baseLayerMD5": "27c88c54a59b9fff7e3e4763a6e9874e.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 51 - }, - { - "costumeName": "catcher-b", - "baseLayerID": 0, - "baseLayerMD5": "799a822cffc9460c0bf1b387cbd5e06b.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 47 - }, - { - "costumeName": "catcher-c", - "baseLayerID": -1, - "baseLayerMD5": "a6f2bf8b354e8d1a789f8e6f83133d02.svg", - "bitmapResolution": 1, - "rotationCenterX": 60, - "rotationCenterY": 87 - }, - { - "costumeName": "catcher-d", - "baseLayerID": -1, - "baseLayerMD5": "c86af45d9168bfb81259e5bb40be1778.svg", - "bitmapResolution": 1, - "rotationCenterX": 86, - "rotationCenterY": 46 - } - ], - "currentCostumeIndex": 0, - "scratchX": -6, - "scratchY": 70, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "895cdda4f2bd9d6f50ff07188e7ce395", + "name": "catcher-a", + "bitmapResolution": 1, + "md5ext": "895cdda4f2bd9d6f50ff07188e7ce395.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 51 + }, + { + "assetId": "a31e30677637ae4de975d40b6d822853", + "name": "catcher-b", + "bitmapResolution": 1, + "md5ext": "a31e30677637ae4de975d40b6d822853.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 47 + }, + { + "assetId": "99af13802e9bfd7b4a4bfb8ead825c0c", + "name": "catcher-c", + "bitmapResolution": 1, + "md5ext": "99af13802e9bfd7b4a4bfb8ead825c0c.svg", + "dataFormat": "svg", + "rotationCenterX": 60, + "rotationCenterY": 87 + }, + { + "assetId": "8aa875f077c405e2045f5ab60705e712", + "name": "catcher-d", + "bitmapResolution": 1, + "md5ext": "8aa875f077c405e2045f5ab60705e712.svg", + "dataFormat": "svg", + "rotationCenterX": 86, + "rotationCenterY": 46 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Centaur", - "md5": "45c1890ae0ab41f24f67ea74bec006c9.svg", - "type": "sprite", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 0, - 4, - 2 - ], - "json": { - "objName": "Centaur", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - }, - { - "soundName": "snort", - "soundID": -1, - "md5": "362d7440a57cab29914fecea621e50d4.wav", - "sampleCount": 16421, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "centaur-a", - "baseLayerID": -1, - "baseLayerMD5": "45c1890ae0ab41f24f67ea74bec006c9.svg", - "bitmapResolution": 1, - "rotationCenterX": 110, - "rotationCenterY": 140 - }, - { - "costumeName": "centaur-b", - "baseLayerID": -1, - "baseLayerMD5": "783e8cd43e0c1feca25f639cb5cbc7da.svg", - "bitmapResolution": 1, - "rotationCenterX": 110, - "rotationCenterY": 140 - }, - { - "costumeName": "centaur-c", - "baseLayerID": -1, - "baseLayerMD5": "d09f7160383c6399354c3d9960e852db.svg", - "bitmapResolution": 1, - "rotationCenterX": 110, - "rotationCenterY": 140 - }, - { - "costumeName": "centaur-d", - "baseLayerID": -1, - "baseLayerMD5": "1ba8b4d384f995688c1b7048d1935697.svg", - "bitmapResolution": 1, - "rotationCenterX": 110, - "rotationCenterY": 140 - } - ], - "currentCostumeIndex": 0, - "scratchX": 32, - "scratchY": 8, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d722329bd9373ad80625e5be6d52f3ed", + "name": "centaur-a", + "bitmapResolution": 1, + "md5ext": "d722329bd9373ad80625e5be6d52f3ed.svg", + "dataFormat": "svg", + "rotationCenterX": 110, + "rotationCenterY": 140 + }, + { + "assetId": "2373556e776cad3ba4d6ee04fc34550b", + "name": "centaur-b", + "bitmapResolution": 1, + "md5ext": "2373556e776cad3ba4d6ee04fc34550b.svg", + "dataFormat": "svg", + "rotationCenterX": 110, + "rotationCenterY": 140 + }, + { + "assetId": "d7aa990538915b7ef1f496d7e8486ade", + "name": "centaur-c", + "bitmapResolution": 1, + "md5ext": "d7aa990538915b7ef1f496d7e8486ade.svg", + "dataFormat": "svg", + "rotationCenterX": 110, + "rotationCenterY": 140 + }, + { + "assetId": "c00ffa6c5dd0baf9f456b897ff974377", + "name": "centaur-d", + "bitmapResolution": 1, + "md5ext": "c00ffa6c5dd0baf9f456b897ff974377.svg", + "dataFormat": "svg", + "rotationCenterX": 110, + "rotationCenterY": 140 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + }, + { + "assetId": "362d7440a57cab29914fecea621e50d4", + "name": "snort", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 17273, + "md5ext": "362d7440a57cab29914fecea621e50d4.wav" + } + ], + "blocks": {} }, { "name": "Champ99", - "md5": "7b073f47fbd9421e0d60daacc157f506.png", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 7, - 1 - ], - "json": { - "objName": "Champ99", - "sounds": [ - { - "soundName": "dance celebrate", - "soundID": -1, - "md5": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "champ99-a", - "baseLayerID": -1, - "baseLayerMD5": "7b073f47fbd9421e0d60daacc157f506.png", - "bitmapResolution": 2, - "rotationCenterX": 248, - "rotationCenterY": 306 - }, - { - "costumeName": "champ99-b", - "baseLayerID": -1, - "baseLayerMD5": "d6ae13605610aa008d48b0c8b25a57d3.png", - "bitmapResolution": 2, - "rotationCenterX": 164, - "rotationCenterY": 290 - }, - { - "costumeName": "champ99-c", - "baseLayerID": -1, - "baseLayerMD5": "26fdff424232926001d20041c3d5673b.png", - "bitmapResolution": 2, - "rotationCenterX": 152, - "rotationCenterY": 270 - }, - { - "costumeName": "champ99-d", - "baseLayerID": -1, - "baseLayerMD5": "a28ffc2b129fb359ff22c79c48341267.png", - "bitmapResolution": 2, - "rotationCenterX": 188, - "rotationCenterY": 260 - }, - { - "costumeName": "champ99-e", - "baseLayerID": -1, - "baseLayerMD5": "56f3220fa82d99dcfc7d27d433ed01e4.png", - "bitmapResolution": 2, - "rotationCenterX": 190, - "rotationCenterY": 248 - }, - { - "costumeName": "champ99-f", - "baseLayerID": -1, - "baseLayerMD5": "68453506ae4b6b60a3fc6817ba39d492.png", - "bitmapResolution": 2, - "rotationCenterX": 114, - "rotationCenterY": 250 - }, - { - "costumeName": "champ99-g", - "baseLayerID": -1, - "baseLayerMD5": "20318b14a332fd618ec91e7c1de8be9a.png", - "bitmapResolution": 2, - "rotationCenterX": 132, - "rotationCenterY": 258 - } - ], - "currentCostumeIndex": 0, - "scratchX": -6, - "scratchY": 13, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "7b073f47fbd9421e0d60daacc157f506", + "name": "champ99-a", + "bitmapResolution": 2, + "md5ext": "7b073f47fbd9421e0d60daacc157f506.png", + "dataFormat": "png", + "rotationCenterX": 248, + "rotationCenterY": 306 + }, + { + "assetId": "d6ae13605610aa008d48b0c8b25a57d3", + "name": "champ99-b", + "bitmapResolution": 2, + "md5ext": "d6ae13605610aa008d48b0c8b25a57d3.png", + "dataFormat": "png", + "rotationCenterX": 164, + "rotationCenterY": 290 + }, + { + "assetId": "26fdff424232926001d20041c3d5673b", + "name": "champ99-c", + "bitmapResolution": 2, + "md5ext": "26fdff424232926001d20041c3d5673b.png", + "dataFormat": "png", + "rotationCenterX": 152, + "rotationCenterY": 270 + }, + { + "assetId": "a28ffc2b129fb359ff22c79c48341267", + "name": "champ99-d", + "bitmapResolution": 2, + "md5ext": "a28ffc2b129fb359ff22c79c48341267.png", + "dataFormat": "png", + "rotationCenterX": 188, + "rotationCenterY": 260 + }, + { + "assetId": "56f3220fa82d99dcfc7d27d433ed01e4", + "name": "champ99-e", + "bitmapResolution": 2, + "md5ext": "56f3220fa82d99dcfc7d27d433ed01e4.png", + "dataFormat": "png", + "rotationCenterX": 190, + "rotationCenterY": 248 + }, + { + "assetId": "68453506ae4b6b60a3fc6817ba39d492", + "name": "champ99-f", + "bitmapResolution": 2, + "md5ext": "68453506ae4b6b60a3fc6817ba39d492.png", + "dataFormat": "png", + "rotationCenterX": 114, + "rotationCenterY": 250 + }, + { + "assetId": "20318b14a332fd618ec91e7c1de8be9a", + "name": "champ99-g", + "bitmapResolution": 2, + "md5ext": "20318b14a332fd618ec91e7c1de8be9a.png", + "dataFormat": "png", + "rotationCenterX": 132, + "rotationCenterY": 258 + } + ], + "sounds": [ + { + "assetId": "0edb8fb88af19e6e17d0f8cf64c1d136", + "name": "dance celebrate", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 176785, + "md5ext": "0edb8fb88af19e6e17d0f8cf64c1d136.wav" + } + ], + "blocks": {} + }, + { + "name": "Characters 1", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "03bc23a9fa12c1244c83a07a81f20bfd", + "name": "character1-a", + "bitmapResolution": 1, + "md5ext": "03bc23a9fa12c1244c83a07a81f20bfd.svg", + "dataFormat": "svg", + "rotationCenterX": 49.8898709690844, + "rotationCenterY": 124.76092657062226 + }, + { + "assetId": "f26b130c2c58b812be21d1a9745863a1", + "name": "character1-b", + "bitmapResolution": 1, + "md5ext": "f26b130c2c58b812be21d1a9745863a1.svg", + "dataFormat": "svg", + "rotationCenterX": 54.60290188300769, + "rotationCenterY": 122.98040317401274 + }, + { + "assetId": "cc0be722cf93eef63726bd606ab11c5c", + "name": "character1-c", + "bitmapResolution": 1, + "md5ext": "cc0be722cf93eef63726bd606ab11c5c.svg", + "dataFormat": "svg", + "rotationCenterX": 54.60291410943074, + "rotationCenterY": 126.85057804587933 + }, + { + "assetId": "6be261800647c53becb1f93ed31ed13e", + "name": "character1-d", + "bitmapResolution": 1, + "md5ext": "6be261800647c53becb1f93ed31ed13e.svg", + "dataFormat": "svg", + "rotationCenterX": 54.602918664146046, + "rotationCenterY": 123.84994499999999 + }, + { + "assetId": "6f78ce6a87d114162ed9fbef30f9a0fd", + "name": "character1-e", + "bitmapResolution": 1, + "md5ext": "6f78ce6a87d114162ed9fbef30f9a0fd.svg", + "dataFormat": "svg", + "rotationCenterX": 65.725, + "rotationCenterY": 120.67006881854581 + }, + { + "assetId": "527ba82c5e82f43c8fca0be905dbe20a", + "name": "character1-f", + "bitmapResolution": 1, + "md5ext": "527ba82c5e82f43c8fca0be905dbe20a.svg", + "dataFormat": "svg", + "rotationCenterX": 54.60291455471537, + "rotationCenterY": 126.76429674297606 + }, + { + "assetId": "1e303bb57aac0cb4678e85de4251f3f4", + "name": "character1-g", + "bitmapResolution": 1, + "md5ext": "1e303bb57aac0cb4678e85de4251f3f4.svg", + "dataFormat": "svg", + "rotationCenterX": 54.60291143772301, + "rotationCenterY": 125.34991500000001 + }, + { + "assetId": "0f18f9e90d0ed68ebec23da087eb2603", + "name": "character1-h", + "bitmapResolution": 1, + "md5ext": "0f18f9e90d0ed68ebec23da087eb2603.svg", + "dataFormat": "svg", + "rotationCenterX": 54.60291643772288, + "rotationCenterY": 126.34996499999997 + }, + { + "assetId": "5e2f620e5687a36e1954414054c69ccc", + "name": "character1-i", + "bitmapResolution": 1, + "md5ext": "5e2f620e5687a36e1954414054c69ccc.svg", + "dataFormat": "svg", + "rotationCenterX": 59.662344830457954, + "rotationCenterY": 124.64983500000002 + }, + { + "assetId": "1044a68cc743f83564e36a6bca16830b", + "name": "character1-j", + "bitmapResolution": 1, + "md5ext": "1044a68cc743f83564e36a6bca16830b.svg", + "dataFormat": "svg", + "rotationCenterX": 57.80000000000001, + "rotationCenterY": 127.9064156368213 + }, + { + "assetId": "b37d0e0d46f07cb2cbdc5285e176bf62", + "name": "character1-k", + "bitmapResolution": 1, + "md5ext": "b37d0e0d46f07cb2cbdc5285e176bf62.svg", + "dataFormat": "svg", + "rotationCenterX": 55.00291821886171, + "rotationCenterY": 122.96517404562759 + }, + { + "assetId": "984043e1e7c544999c31f952d1d43a56", + "name": "character1-l", + "bitmapResolution": 1, + "md5ext": "984043e1e7c544999c31f952d1d43a56.svg", + "dataFormat": "svg", + "rotationCenterX": 56, + "rotationCenterY": 124.849995 + }, + { + "assetId": "6d5ddfc69f9c6a3f1d2ded1428237931", + "name": "character1-m", + "bitmapResolution": 1, + "md5ext": "6d5ddfc69f9c6a3f1d2ded1428237931.svg", + "dataFormat": "svg", + "rotationCenterX": 56, + "rotationCenterY": 126.73041545130786 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 1123, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} + }, + { + "name": "Characters 2", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "7084b3baab935de819cc5ab46f7cecf8", + "name": "character2-a", + "bitmapResolution": 1, + "md5ext": "7084b3baab935de819cc5ab46f7cecf8.svg", + "dataFormat": "svg", + "rotationCenterX": 47.99056799868501, + "rotationCenterY": 127.80503283089969 + }, + { + "assetId": "df7cbf2913bcea721df2e0360644f193", + "name": "character2-b", + "bitmapResolution": 1, + "md5ext": "df7cbf2913bcea721df2e0360644f193.svg", + "dataFormat": "svg", + "rotationCenterX": 44.99552075655663, + "rotationCenterY": 125.14875889583388 + }, + { + "assetId": "e0eacf1e575adc559c41e3a81a892168", + "name": "character2-c", + "bitmapResolution": 1, + "md5ext": "e0eacf1e575adc559c41e3a81a892168.svg", + "dataFormat": "svg", + "rotationCenterX": 47.95809, + "rotationCenterY": 123.53880000000001 + }, + { + "assetId": "e8b44b0e904fd4bb7430c26b743f1520", + "name": "character2-d", + "bitmapResolution": 1, + "md5ext": "e8b44b0e904fd4bb7430c26b743f1520.svg", + "dataFormat": "svg", + "rotationCenterX": 44.995540756556636, + "rotationCenterY": 128.2061488659535 + }, + { + "assetId": "67d425b11544caa0fe9228f355c6485b", + "name": "character2-e", + "bitmapResolution": 1, + "md5ext": "67d425b11544caa0fe9228f355c6485b.svg", + "dataFormat": "svg", + "rotationCenterX": 48.00809000000001, + "rotationCenterY": 122.45 + }, + { + "assetId": "db3f436fcb6fb28828a4c932b60feb5e", + "name": "character2-f", + "bitmapResolution": 1, + "md5ext": "db3f436fcb6fb28828a4c932b60feb5e.svg", + "dataFormat": "svg", + "rotationCenterX": 48.53553350541961, + "rotationCenterY": 126.89993965793039 + }, + { + "assetId": "93e035270675f933b94ee951d7e475e3", + "name": "character2-g", + "bitmapResolution": 1, + "md5ext": "93e035270675f933b94ee951d7e475e3.svg", + "dataFormat": "svg", + "rotationCenterX": 47.53308999999999, + "rotationCenterY": 125.43368141092515 + }, + { + "assetId": "f4f2778df2840de5a6449a49f3efb599", + "name": "character2-h", + "bitmapResolution": 1, + "md5ext": "f4f2778df2840de5a6449a49f3efb599.svg", + "dataFormat": "svg", + "rotationCenterX": 44.953870756556626, + "rotationCenterY": 128.08851543576878 + }, + { + "assetId": "1cf73a791959e07b5bafe18474f93b78", + "name": "character2-i", + "bitmapResolution": 1, + "md5ext": "1cf73a791959e07b5bafe18474f93b78.svg", + "dataFormat": "svg", + "rotationCenterX": 48.00809000000001, + "rotationCenterY": 126.87082000000001 + }, + { + "assetId": "bf0d808f7bf0c11c338b4fea0a735874", + "name": "character2-j", + "bitmapResolution": 1, + "md5ext": "bf0d808f7bf0c11c338b4fea0a735874.svg", + "dataFormat": "svg", + "rotationCenterX": 48.64271853726632, + "rotationCenterY": 128.03860864267807 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 1123, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Cheesy Puffs", - "md5": "82772a61ec74974e84c686c61ea0b7d5.png", - "type": "sprite", "tags": [ "food" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Cheesy Puffs", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "cheesy puffs", - "baseLayerID": -1, - "baseLayerMD5": "82772a61ec74974e84c686c61ea0b7d5.png", - "bitmapResolution": 2, - "rotationCenterX": 87, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": -7, - "scratchY": -20, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "82772a61ec74974e84c686c61ea0b7d5", + "name": "cheesy puffs", + "bitmapResolution": 2, + "md5ext": "82772a61ec74974e84c686c61ea0b7d5.png", + "dataFormat": "png", + "rotationCenterX": 87, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Chick", - "md5": "7cd74ad0da97a828e8499ee181c9dbb1.svg", - "type": "sprite", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Chick", - "sounds": [ - { - "soundName": "Chirp", - "soundID": -1, - "md5": "3b8236bbb288019d93ae38362e865972.wav", - "sampleCount": 5301, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "chick-a", - "baseLayerID": -1, - "baseLayerMD5": "7cd74ad0da97a828e8499ee181c9dbb1.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 37 - }, - { - "costumeName": "chick-b", - "baseLayerID": -1, - "baseLayerMD5": "07c2dad5f7063fddf7705f4817fad4f6.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 37 - }, - { - "costumeName": "chick-c", - "baseLayerID": -1, - "baseLayerMD5": "272d3e4503a4123df62f25b67bad6f03.svg", - "bitmapResolution": 1, - "rotationCenterX": 21, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -1, - "scratchY": -122, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "80abbc427366bca477ccf1ef0faf240a", + "name": "chick-a", + "bitmapResolution": 1, + "md5ext": "80abbc427366bca477ccf1ef0faf240a.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 37 + }, + { + "assetId": "5e23c8c28ffd390df7deb2414be37781", + "name": "chick-b", + "bitmapResolution": 1, + "md5ext": "5e23c8c28ffd390df7deb2414be37781.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 37 + }, + { + "assetId": "77911bbe5e11ede35871e8002a26356d", + "name": "chick-c", + "bitmapResolution": 1, + "md5ext": "77911bbe5e11ede35871e8002a26356d.svg", + "dataFormat": "svg", + "rotationCenterX": 21, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "3b8236bbb288019d93ae38362e865972", + "name": "Chirp", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 6097, + "md5ext": "3b8236bbb288019d93ae38362e865972.wav" + } + ], + "blocks": {} }, { "name": "City Bus", - "md5": "accf64aceae7997b7533fb51624ca297.svg", - "type": "sprite", "tags": [ "city", "bus", "vehicle", "car" ], - "info": [ - 0, - 2, - 2 - ], - "json": { - "objName": "City Bus", - "sounds": [ - { - "soundName": "clown honk", - "soundID": -1, - "md5": "ec66961f188e9b8a9c75771db744d096.wav", - "sampleCount": 9009, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "car vroom", - "soundID": -1, - "md5": "ead1da4a87ff6cb53441142f7ac37b8f.wav", - "sampleCount": 43358, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "City Bus-a", - "baseLayerID": -1, - "baseLayerMD5": "accf64aceae7997b7533fb51624ca297.svg", - "bitmapResolution": 1, - "rotationCenterX": 107, - "rotationCenterY": 67 - }, - { - "costumeName": "City Bus-b", - "baseLayerID": -1, - "baseLayerMD5": "b9ea0e326ffa98bc58a73bdf17c9542b.svg", - "bitmapResolution": 1, - "rotationCenterX": 107, - "rotationCenterY": 67 - } - ], - "currentCostumeIndex": 0, - "scratchX": 158, - "scratchY": -54, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e9694adbff9422363e2ea03166015393", + "name": "City Bus-a", + "bitmapResolution": 1, + "md5ext": "e9694adbff9422363e2ea03166015393.svg", + "dataFormat": "svg", + "rotationCenterX": 106.89883432142048, + "rotationCenterY": 66.13799999999999 + }, + { + "assetId": "7d7e26014a346b894db8ab1819f2167f", + "name": "City Bus-b", + "bitmapResolution": 1, + "md5ext": "7d7e26014a346b894db8ab1819f2167f.svg", + "dataFormat": "svg", + "rotationCenterX": 106.73206234507279, + "rotationCenterY": 66.60003072266578 + } + ], + "sounds": [ + { + "assetId": "ec66961f188e9b8a9c75771db744d096", + "name": "clown honk", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 9145, + "md5ext": "ec66961f188e9b8a9c75771db744d096.wav" + }, + { + "assetId": "ead1da4a87ff6cb53441142f7ac37b8f", + "name": "car vroom", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "ead1da4a87ff6cb53441142f7ac37b8f.wav" + } + ], + "blocks": {} }, { "name": "Cloud", - "md5": "47005a1f20309f577a03a67abbb6b94e.svg", - "type": "sprite", "tags": [ "thing", "weather", "whether" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Cloud", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "cloud", - "baseLayerID": -1, - "baseLayerMD5": "47005a1f20309f577a03a67abbb6b94e.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 45 - } - ], - "currentCostumeIndex": 0, - "scratchX": 81, - "scratchY": -12, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c9630e30e59e4565e785a26f58568904", + "name": "cloud", + "bitmapResolution": 1, + "md5ext": "c9630e30e59e4565e785a26f58568904.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 45 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Clouds", - "md5": "c7d7de8e29179407f03b054fa640f4d0.svg", - "type": "sprite", "tags": [ "flying", "weather", "things", "sky" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Clouds", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "cloud-a", - "baseLayerID": -1, - "baseLayerMD5": "c7d7de8e29179407f03b054fa640f4d0.svg", - "bitmapResolution": 1, - "rotationCenterX": 76, - "rotationCenterY": 19 - }, - { - "costumeName": "cloud-b", - "baseLayerID": -1, - "baseLayerMD5": "d8595350ebb460494c9189dabb968336.svg", - "bitmapResolution": 1, - "rotationCenterX": 101, - "rotationCenterY": 20 - }, - { - "costumeName": "cloud-c", - "baseLayerID": -1, - "baseLayerMD5": "395fc991e64ac0a4aa46758ab4bc65cb.svg", - "bitmapResolution": 1, - "rotationCenterX": 97, - "rotationCenterY": 9 - }, - { - "costumeName": "cloud-d", - "baseLayerID": -1, - "baseLayerMD5": "1767e704acb11ffa409f77cc79ba7e86.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 21 - } - ], - "currentCostumeIndex": 0, - "scratchX": -21, - "scratchY": 16, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9f5958f46d21e33d3f6d7caffbe0daa9", + "name": "cloud-a", + "bitmapResolution": 1, + "md5ext": "9f5958f46d21e33d3f6d7caffbe0daa9.svg", + "dataFormat": "svg", + "rotationCenterX": 76, + "rotationCenterY": 19 + }, + { + "assetId": "9105d7dd90b5f2a4b85a1e71aff8703f", + "name": "cloud-b", + "bitmapResolution": 1, + "md5ext": "9105d7dd90b5f2a4b85a1e71aff8703f.svg", + "dataFormat": "svg", + "rotationCenterX": 101, + "rotationCenterY": 20 + }, + { + "assetId": "0188b2c7c85176b462881c6bca7a7748", + "name": "cloud-c", + "bitmapResolution": 1, + "md5ext": "0188b2c7c85176b462881c6bca7a7748.svg", + "dataFormat": "svg", + "rotationCenterX": 97, + "rotationCenterY": 9 + }, + { + "assetId": "9f2eccce13e3e5fd212efd59ff1d96a0", + "name": "cloud-d", + "bitmapResolution": 1, + "md5ext": "9f2eccce13e3e5fd212efd59ff1d96a0.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 21 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Convertible", - "md5": "5b883f396844ff5cfecd7c95553fa4fb.png", - "type": "sprite", "tags": [ "car", "transportation" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Convertible", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "convertible", - "baseLayerID": -1, - "baseLayerMD5": "5b883f396844ff5cfecd7c95553fa4fb.png", - "bitmapResolution": 2, - "rotationCenterX": 180, - "rotationCenterY": 44 - } - ], - "currentCostumeIndex": 0, - "scratchX": 36, - "scratchY": -11, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5b883f396844ff5cfecd7c95553fa4fb", + "name": "convertible", + "bitmapResolution": 2, + "md5ext": "5b883f396844ff5cfecd7c95553fa4fb.png", + "dataFormat": "png", + "rotationCenterX": 180, + "rotationCenterY": 44 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Convertible 2", - "md5": "b6ac3c9e1789cba2302d2ef82d62d019.svg", - "type": "sprite", "tags": [ "transportation", "car", "things" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Convertible 2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "convertible 3", - "baseLayerID": -1, - "baseLayerMD5": "b6ac3c9e1789cba2302d2ef82d62d019.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": 7, - "scratchY": 13, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "621817ef84ad81f5690fac95adab2ede", + "name": "convertible 3", + "bitmapResolution": 1, + "md5ext": "621817ef84ad81f5690fac95adab2ede.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Crab", - "md5": "114249a5660f7948663d95de575cfd8d.svg", - "type": "sprite", "tags": [ "animals", "crustacean", @@ -3288,664 +2941,560 @@ "summer", "arthropod" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Crab", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "crab-a", - "baseLayerID": -1, - "baseLayerMD5": "114249a5660f7948663d95de575cfd8d.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "crab-b", - "baseLayerID": -1, - "baseLayerMD5": "9bf050664e68c10d2616e85f2873be09.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": 45, - "scratchY": -33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f7cdd2acbc6d7559d33be8675059c79e", + "name": "crab-a", + "bitmapResolution": 1, + "md5ext": "f7cdd2acbc6d7559d33be8675059c79e.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + }, + { + "assetId": "49839aa1b0feed02a3c759db5f8dee71", + "name": "crab-b", + "bitmapResolution": 1, + "md5ext": "49839aa1b0feed02a3c759db5f8dee71.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Crystal", - "md5": "8520264d48537bea17b7f6d18e9bb558.svg", - "type": "sprite", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 0, - 2, - 2 - ], - "json": { - "objName": "Crystal", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "collect", - "soundID": -1, - "md5": "32514c51e03db680e9c63857b840ae78.wav", - "sampleCount": 13320, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "crystal-a", - "baseLayerID": -1, - "baseLayerMD5": "8520264d48537bea17b7f6d18e9bb558.svg", - "bitmapResolution": 1, - "rotationCenterX": 15, - "rotationCenterY": 15 - }, - { - "costumeName": "crystal-b", - "baseLayerID": -1, - "baseLayerMD5": "b62ce1dc2d34741bad036664a01912fb.svg", - "bitmapResolution": 1, - "rotationCenterX": 12, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -110, - "scratchY": 7, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ecd1e7805b37db4caf207b7eef2b7a42", + "name": "crystal-a", + "bitmapResolution": 1, + "md5ext": "ecd1e7805b37db4caf207b7eef2b7a42.svg", + "dataFormat": "svg", + "rotationCenterX": 15, + "rotationCenterY": 15 + }, + { + "assetId": "0a7b872042cecaf30cc154c0144f002b", + "name": "crystal-b", + "bitmapResolution": 1, + "md5ext": "0a7b872042cecaf30cc154c0144f002b.svg", + "dataFormat": "svg", + "rotationCenterX": 12, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + }, + { + "assetId": "32514c51e03db680e9c63857b840ae78", + "name": "collect", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 14225, + "md5ext": "32514c51e03db680e9c63857b840ae78.wav" + } + ], + "blocks": {} }, { "name": "D-Money Dance", - "md5": "dafbdfe454c5ec7029b5c1e07fcabc90.png", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 13, - 1 - ], - "json": { - "objName": "D-Money Dance", - "sounds": [ - { - "soundName": "dance celebrate", - "soundID": -1, - "md5": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "dm stance", - "baseLayerID": -1, - "baseLayerMD5": "dafbdfe454c5ec7029b5c1e07fcabc90.png", - "bitmapResolution": 2, - "rotationCenterX": 106, - "rotationCenterY": 238 - }, - { - "costumeName": "dm top stand", - "baseLayerID": -1, - "baseLayerMD5": "a22da98e5e63de7b2883355afd0184f0.png", - "bitmapResolution": 2, - "rotationCenterX": 82, - "rotationCenterY": 244 - }, - { - "costumeName": "dm top R leg", - "baseLayerID": -1, - "baseLayerMD5": "12db59633a1709a2c39534d35263791f.png", - "bitmapResolution": 2, - "rotationCenterX": 218, - "rotationCenterY": 232 - }, - { - "costumeName": "dm top L leg", - "baseLayerID": -1, - "baseLayerMD5": "344384a6a3f1bdf494cc7af31e928d36.png", - "bitmapResolution": 2, - "rotationCenterX": 230, - "rotationCenterY": 240 - }, - { - "costumeName": "dm freeze", - "baseLayerID": -1, - "baseLayerMD5": "a4b5d644d9abdbcab236acf19b2a2e81.png", - "bitmapResolution": 2, - "rotationCenterX": 220, - "rotationCenterY": 234 - }, - { - "costumeName": "dm pop front", - "baseLayerID": -1, - "baseLayerMD5": "70da166596bb484eae1bfbaad5c03d54.png", - "bitmapResolution": 2, - "rotationCenterX": 92, - "rotationCenterY": 234 - }, - { - "costumeName": "dm pop down", - "baseLayerID": -1, - "baseLayerMD5": "729812366245c0dafd456339c9d94e08.png", - "bitmapResolution": 2, - "rotationCenterX": 64, - "rotationCenterY": 74 - }, - { - "costumeName": "dm pop left", - "baseLayerID": -1, - "baseLayerMD5": "32ec7b5332cfebd1cfed7f6b79c76e67.png", - "bitmapResolution": 2, - "rotationCenterX": 204, - "rotationCenterY": 250 - }, - { - "costumeName": "dm pop right", - "baseLayerID": -1, - "baseLayerMD5": "19bd7995d37e3baade673b2fe7cb982b.png", - "bitmapResolution": 2, - "rotationCenterX": 78, - "rotationCenterY": 238 - }, - { - "costumeName": "dm pop L arm", - "baseLayerID": -1, - "baseLayerMD5": "3cdebabdb41f6c3e84561cf3ea87bac3.png", - "bitmapResolution": 2, - "rotationCenterX": 90, - "rotationCenterY": 238 - }, - { - "costumeName": "dm pop stand", - "baseLayerID": -1, - "baseLayerMD5": "05529eb3c09294bd15f57c6f10d5894e.png", - "bitmapResolution": 2, - "rotationCenterX": 100, - "rotationCenterY": 244 - }, - { - "costumeName": "dm pop R arm", - "baseLayerID": -1, - "baseLayerMD5": "50faf1630ea383c0b8c77f70a9329797.png", - "bitmapResolution": 2, - "rotationCenterX": 80, - "rotationCenterY": 240 - }, - { - "costumeName": "dm top R leg2", - "baseLayerID": -1, - "baseLayerMD5": "fcb8c2b6cf9b7e6ce9df521b2486deb3.png", - "bitmapResolution": 2, - "rotationCenterX": 218, - "rotationCenterY": 232 - } - ], - "currentCostumeIndex": 0, - "scratchX": -29, - "scratchY": 34, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "dafbdfe454c5ec7029b5c1e07fcabc90", + "name": "dm stance", + "bitmapResolution": 2, + "md5ext": "dafbdfe454c5ec7029b5c1e07fcabc90.png", + "dataFormat": "png", + "rotationCenterX": 106, + "rotationCenterY": 238 + }, + { + "assetId": "a22da98e5e63de7b2883355afd0184f0", + "name": "dm top stand", + "bitmapResolution": 2, + "md5ext": "a22da98e5e63de7b2883355afd0184f0.png", + "dataFormat": "png", + "rotationCenterX": 82, + "rotationCenterY": 244 + }, + { + "assetId": "12db59633a1709a2c39534d35263791f", + "name": "dm top R leg", + "bitmapResolution": 2, + "md5ext": "12db59633a1709a2c39534d35263791f.png", + "dataFormat": "png", + "rotationCenterX": 218, + "rotationCenterY": 232 + }, + { + "assetId": "344384a6a3f1bdf494cc7af31e928d36", + "name": "dm top L leg", + "bitmapResolution": 2, + "md5ext": "344384a6a3f1bdf494cc7af31e928d36.png", + "dataFormat": "png", + "rotationCenterX": 230, + "rotationCenterY": 240 + }, + { + "assetId": "a4b5d644d9abdbcab236acf19b2a2e81", + "name": "dm freeze", + "bitmapResolution": 2, + "md5ext": "a4b5d644d9abdbcab236acf19b2a2e81.png", + "dataFormat": "png", + "rotationCenterX": 220, + "rotationCenterY": 234 + }, + { + "assetId": "70da166596bb484eae1bfbaad5c03d54", + "name": "dm pop front", + "bitmapResolution": 2, + "md5ext": "70da166596bb484eae1bfbaad5c03d54.png", + "dataFormat": "png", + "rotationCenterX": 92, + "rotationCenterY": 234 + }, + { + "assetId": "729812366245c0dafd456339c9d94e08", + "name": "dm pop down", + "bitmapResolution": 2, + "md5ext": "729812366245c0dafd456339c9d94e08.png", + "dataFormat": "png", + "rotationCenterX": 64, + "rotationCenterY": 74 + }, + { + "assetId": "32ec7b5332cfebd1cfed7f6b79c76e67", + "name": "dm pop left", + "bitmapResolution": 2, + "md5ext": "32ec7b5332cfebd1cfed7f6b79c76e67.png", + "dataFormat": "png", + "rotationCenterX": 204, + "rotationCenterY": 250 + }, + { + "assetId": "19bd7995d37e3baade673b2fe7cb982b", + "name": "dm pop right", + "bitmapResolution": 2, + "md5ext": "19bd7995d37e3baade673b2fe7cb982b.png", + "dataFormat": "png", + "rotationCenterX": 78, + "rotationCenterY": 238 + }, + { + "assetId": "3cdebabdb41f6c3e84561cf3ea87bac3", + "name": "dm pop L arm", + "bitmapResolution": 2, + "md5ext": "3cdebabdb41f6c3e84561cf3ea87bac3.png", + "dataFormat": "png", + "rotationCenterX": 90, + "rotationCenterY": 238 + }, + { + "assetId": "05529eb3c09294bd15f57c6f10d5894e", + "name": "dm pop stand", + "bitmapResolution": 2, + "md5ext": "05529eb3c09294bd15f57c6f10d5894e.png", + "dataFormat": "png", + "rotationCenterX": 100, + "rotationCenterY": 244 + }, + { + "assetId": "50faf1630ea383c0b8c77f70a9329797", + "name": "dm pop R arm", + "bitmapResolution": 2, + "md5ext": "50faf1630ea383c0b8c77f70a9329797.png", + "dataFormat": "png", + "rotationCenterX": 80, + "rotationCenterY": 240 + } + ], + "sounds": [ + { + "assetId": "0edb8fb88af19e6e17d0f8cf64c1d136", + "name": "dance celebrate", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 176785, + "md5ext": "0edb8fb88af19e6e17d0f8cf64c1d136.wav" + } + ], + "blocks": {} }, { "name": "Dan", - "md5": "307250744e230fb15e7062238bf2634c.png", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Dan", - "sounds": [ - { - "soundName": "dance magic", - "soundID": -1, - "md5": "042309f190183383c0b1c1fc3edc2e84.wav", - "sampleCount": 187200, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "dan-a", - "baseLayerID": -1, - "baseLayerMD5": "307250744e230fb15e7062238bf2634c.png", - "bitmapResolution": 2, - "rotationCenterX": 72, - "rotationCenterY": 196 - }, - { - "costumeName": "dan-b", - "baseLayerID": -1, - "baseLayerMD5": "89b55d049f4b3811676311df00681385.png", - "bitmapResolution": 2, - "rotationCenterX": 94, - "rotationCenterY": 200 - } - ], - "currentCostumeIndex": 0, - "scratchX": 9, - "scratchY": -38, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "307250744e230fb15e7062238bf2634c", + "name": "dan-a", + "bitmapResolution": 2, + "md5ext": "307250744e230fb15e7062238bf2634c.png", + "dataFormat": "png", + "rotationCenterX": 72, + "rotationCenterY": 196 + }, + { + "assetId": "89b55d049f4b3811676311df00681385", + "name": "dan-b", + "bitmapResolution": 2, + "md5ext": "89b55d049f4b3811676311df00681385.png", + "dataFormat": "png", + "rotationCenterX": 94, + "rotationCenterY": 200 + } + ], + "sounds": [ + { + "assetId": "042309f190183383c0b1c1fc3edc2e84", + "name": "dance magic", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 187961, + "md5ext": "042309f190183383c0b1c1fc3edc2e84.wav" + } + ], + "blocks": {} }, { "name": "Dani", - "md5": "e620d1c3143b5ff05a0e4df89576e054.svg", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Dani", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Dani-a", - "baseLayerID": -1, - "baseLayerMD5": "e620d1c3143b5ff05a0e4df89576e054.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 141 - }, - { - "costumeName": "Dani-b", - "baseLayerID": -1, - "baseLayerMD5": "4de54672f1c7af00623a0ee3bc490ba7.svg", - "bitmapResolution": 1, - "rotationCenterX": 86, - "rotationCenterY": 141 - }, - { - "costumeName": "Dani-c", - "baseLayerID": -1, - "baseLayerMD5": "b4a303342f9b7ed6a74059054347dd30.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 138 - } - ], - "currentCostumeIndex": 0, - "scratchX": -86, - "scratchY": -9, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6518333c95cf96a9aaf73a4a948e002f", + "name": "Dani-a", + "bitmapResolution": 1, + "md5ext": "6518333c95cf96a9aaf73a4a948e002f.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 141 + }, + { + "assetId": "2cba86439098a7e0daa46e0ff8a59f7c", + "name": "Dani-b", + "bitmapResolution": 1, + "md5ext": "2cba86439098a7e0daa46e0ff8a59f7c.svg", + "dataFormat": "svg", + "rotationCenterX": 86, + "rotationCenterY": 141 + }, + { + "assetId": "b5f989e21b56af371209369c331b821e", + "name": "Dani-c", + "bitmapResolution": 1, + "md5ext": "b5f989e21b56af371209369c331b821e.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 138 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Dee", - "md5": "aa239b7ccdce6bddf06900c709525764.svg", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Dee", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dee-a", - "baseLayerID": -1, - "baseLayerMD5": "aa239b7ccdce6bddf06900c709525764.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 99 - }, - { - "costumeName": "dee-b", - "baseLayerID": -1, - "baseLayerMD5": "62b4ac1b735599e21af77c390b178095.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 99 - }, - { - "costumeName": "dee-c", - "baseLayerID": -1, - "baseLayerMD5": "6aa6196ce3245e93b8d1299f33adffcd.svg", - "bitmapResolution": 1, - "rotationCenterX": 36, - "rotationCenterY": 102 - }, - { - "costumeName": "dee-d", - "baseLayerID": -1, - "baseLayerMD5": "2159a6be8f7ff450d0b5e938ca34a3f4.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 99 - }, - { - "costumeName": "dee-e", - "baseLayerID": -1, - "baseLayerMD5": "e358d2a7e3a0a680928657161ce81a0a.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 99 - } - ], - "currentCostumeIndex": 0, - "scratchX": 84, - "scratchY": -39, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "43bd4c241a94b3aea883472d7dab5afc", + "name": "dee-a", + "bitmapResolution": 1, + "md5ext": "43bd4c241a94b3aea883472d7dab5afc.svg", + "dataFormat": "svg", + "rotationCenterX": 52, + "rotationCenterY": 99 + }, + { + "assetId": "e4c6ada3509f7033d14bac2c0eea49dc", + "name": "dee-b", + "bitmapResolution": 1, + "md5ext": "e4c6ada3509f7033d14bac2c0eea49dc.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 99 + }, + { + "assetId": "1de3bbee2771b0ff16c4658d5ad98b0b", + "name": "dee-c", + "bitmapResolution": 1, + "md5ext": "1de3bbee2771b0ff16c4658d5ad98b0b.svg", + "dataFormat": "svg", + "rotationCenterX": 36, + "rotationCenterY": 102 + }, + { + "assetId": "320a892c86e9b039ba9d6d50a4897276", + "name": "dee-d", + "bitmapResolution": 1, + "md5ext": "320a892c86e9b039ba9d6d50a4897276.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 99 + }, + { + "assetId": "c57c4593701165cdea6de9b014c7c06d", + "name": "dee-e", + "bitmapResolution": 1, + "md5ext": "c57c4593701165cdea6de9b014c7c06d.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 99 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Devin", - "md5": "b1897e56265470b55fa65fabe2423c55.svg", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Devin", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "devin-a", - "baseLayerID": -1, - "baseLayerMD5": "b1897e56265470b55fa65fabe2423c55.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 95 - }, - { - "costumeName": "devin-b", - "baseLayerID": -1, - "baseLayerMD5": "873fbd641768c8f753a6568da97633e7.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 96 - }, - { - "costumeName": "devin-c", - "baseLayerID": -1, - "baseLayerMD5": "eac3c03d86cebb42c8f30e373cb7f623.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 95 - }, - { - "costumeName": "devin-d", - "baseLayerID": -1, - "baseLayerMD5": "fa6a75afb0e4b822b91d8bb20d40c68f.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 95 - } - ], - "currentCostumeIndex": 0, - "scratchX": 82, - "scratchY": -18, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5f614017dba0ce6bff063f6c62041035", + "name": "devin-a", + "bitmapResolution": 1, + "md5ext": "5f614017dba0ce6bff063f6c62041035.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 95 + }, + { + "assetId": "9d7414a719d6cc5e0e9071ede200a29c", + "name": "devin-b", + "bitmapResolution": 1, + "md5ext": "9d7414a719d6cc5e0e9071ede200a29c.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 96 + }, + { + "assetId": "5ab51aeaa296e955e75a7a3c103ebb99", + "name": "devin-c", + "bitmapResolution": 1, + "md5ext": "5ab51aeaa296e955e75a7a3c103ebb99.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 95 + }, + { + "assetId": "bfc7c20b64f86d4b207780f3da695fa4", + "name": "devin-d", + "bitmapResolution": 1, + "md5ext": "bfc7c20b64f86d4b207780f3da695fa4.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 95 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Dinosaur1", - "md5": "e70ab4de006f3df64e776abf912a62be.svg", - "type": "sprite", "tags": [ "animals", "dinosaur", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Dinosaur1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dinosaur1-a", - "baseLayerID": -1, - "baseLayerMD5": "e70ab4de006f3df64e776abf912a62be.svg", - "bitmapResolution": 1, - "rotationCenterX": 98, - "rotationCenterY": 92 - }, - { - "costumeName": "dinosaur1-b", - "baseLayerID": -1, - "baseLayerMD5": "af2d8211a65dce9871d49fa70671ce0c.svg", - "bitmapResolution": 1, - "rotationCenterX": 98, - "rotationCenterY": 47 - }, - { - "costumeName": "dinosaur1-c", - "baseLayerID": -1, - "baseLayerMD5": "78f7e20f0e187fdca81195e4cc134175.svg", - "bitmapResolution": 1, - "rotationCenterX": 81, - "rotationCenterY": 91 - }, - { - "costumeName": "dinosaur1-d", - "baseLayerID": -1, - "baseLayerMD5": "91f3dba45e8cec7bdff31ed5acde2c85.svg", - "bitmapResolution": 1, - "rotationCenterX": 99, - "rotationCenterY": 91 - } - ], - "currentCostumeIndex": 0, - "scratchX": -138, - "scratchY": -51, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "45b02fbd582c15a50e1953830b59b377", + "name": "dinosaur1-a", + "bitmapResolution": 1, + "md5ext": "45b02fbd582c15a50e1953830b59b377.svg", + "dataFormat": "svg", + "rotationCenterX": 98, + "rotationCenterY": 92 + }, + { + "assetId": "7f89417968116ada83d4ddaad22403b3", + "name": "dinosaur1-b", + "bitmapResolution": 1, + "md5ext": "7f89417968116ada83d4ddaad22403b3.svg", + "dataFormat": "svg", + "rotationCenterX": 98, + "rotationCenterY": 47 + }, + { + "assetId": "22d94ee5daf557284465425a61186234", + "name": "dinosaur1-c", + "bitmapResolution": 1, + "md5ext": "22d94ee5daf557284465425a61186234.svg", + "dataFormat": "svg", + "rotationCenterX": 81, + "rotationCenterY": 91 + }, + { + "assetId": "af158d368bf3da576369be1130e18acd", + "name": "dinosaur1-d", + "bitmapResolution": 1, + "md5ext": "af158d368bf3da576369be1130e18acd.svg", + "dataFormat": "svg", + "rotationCenterX": 99, + "rotationCenterY": 91 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Dinosaur2", - "md5": "f49719e8f2440f5d328f2604e97eb71d.svg", - "type": "sprite", "tags": [ "animals", "dinosaur", "triceratops", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Dinosaur2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dinosaur2-a", - "baseLayerID": -1, - "baseLayerMD5": "f49719e8f2440f5d328f2604e97eb71d.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 67 - }, - { - "costumeName": "dinosaur2-b", - "baseLayerID": -1, - "baseLayerMD5": "1af6b3af3bf2cda862bbe01034a336bb.svg", - "bitmapResolution": 1, - "rotationCenterX": 76, - "rotationCenterY": 67 - }, - { - "costumeName": "dinosaur2-c", - "baseLayerID": -1, - "baseLayerMD5": "e83b30a4517bbe155e2b4a6367c8f70b.svg", - "bitmapResolution": 1, - "rotationCenterX": 64, - "rotationCenterY": 67 - }, - { - "costumeName": "dinosaur2-d", - "baseLayerID": -1, - "baseLayerMD5": "8244f1fb159237179d1caaa69c070060.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 67 - } - ], - "currentCostumeIndex": 0, - "scratchX": 10, - "scratchY": 26, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "7799f2848136d11f48ca5f3105d336ef", + "name": "dinosaur2-a", + "bitmapResolution": 1, + "md5ext": "7799f2848136d11f48ca5f3105d336ef.svg", + "dataFormat": "svg", + "rotationCenterX": 63, + "rotationCenterY": 67 + }, + { + "assetId": "d926c5758d130fcfd9a7ae7dac47e47d", + "name": "dinosaur2-b", + "bitmapResolution": 1, + "md5ext": "d926c5758d130fcfd9a7ae7dac47e47d.svg", + "dataFormat": "svg", + "rotationCenterX": 76, + "rotationCenterY": 67 + }, + { + "assetId": "0e43f8e573bf232505b207b92efac2ac", + "name": "dinosaur2-c", + "bitmapResolution": 1, + "md5ext": "0e43f8e573bf232505b207b92efac2ac.svg", + "dataFormat": "svg", + "rotationCenterX": 64, + "rotationCenterY": 67 + }, + { + "assetId": "e606ba27dfe94daf3d8e3fdf599e37cf", + "name": "dinosaur2-d", + "bitmapResolution": 1, + "md5ext": "e606ba27dfe94daf3d8e3fdf599e37cf.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 67 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Dinosaur3", - "md5": "c4867c44f38df5bde472844878d5beea.svg", - "type": "sprite", "tags": [ "animals", "dinosaur", @@ -3953,80 +3502,70 @@ "flying", "alex eben meyer" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Dinosaur3", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dinosaur3-a", - "baseLayerID": -1, - "baseLayerMD5": "c4867c44f38df5bde472844878d5beea.svg", - "bitmapResolution": 1, - "rotationCenterX": 113, - "rotationCenterY": 42 - }, - { - "costumeName": "dinosaur3-b", - "baseLayerID": -1, - "baseLayerMD5": "b682c1e58ea1c6bea737670f57517b6f.svg", - "bitmapResolution": 1, - "rotationCenterX": 113, - "rotationCenterY": 59 - }, - { - "costumeName": "dinosaur3-c", - "baseLayerID": -1, - "baseLayerMD5": "47a617ca48f4782efeeb60199cff801e.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 59 - }, - { - "costumeName": "dinosaur3-d", - "baseLayerID": -1, - "baseLayerMD5": "710ff3380d6872b04785db97dc0565c6.svg", - "bitmapResolution": 1, - "rotationCenterX": 113, - "rotationCenterY": 65 - }, - { - "costumeName": "dinosaur3-e", - "baseLayerID": -1, - "baseLayerMD5": "6f40025c1157f37858adf7fa85090e64.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": -76, - "scratchY": 101, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d85ec1b97f73564ef26fec73d5056c68", + "name": "dinosaur3-a", + "bitmapResolution": 1, + "md5ext": "d85ec1b97f73564ef26fec73d5056c68.svg", + "dataFormat": "svg", + "rotationCenterX": 113, + "rotationCenterY": 42 + }, + { + "assetId": "e731d1f1ebf4bc0ea55b850ffe5a5f96", + "name": "dinosaur3-b", + "bitmapResolution": 1, + "md5ext": "e731d1f1ebf4bc0ea55b850ffe5a5f96.svg", + "dataFormat": "svg", + "rotationCenterX": 113, + "rotationCenterY": 59 + }, + { + "assetId": "ae98efa1c3c3700602e1344db86aaf72", + "name": "dinosaur3-c", + "bitmapResolution": 1, + "md5ext": "ae98efa1c3c3700602e1344db86aaf72.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 59 + }, + { + "assetId": "cf4fb77a4e9839f83d3fa5fc0982ccd3", + "name": "dinosaur3-d", + "bitmapResolution": 1, + "md5ext": "cf4fb77a4e9839f83d3fa5fc0982ccd3.svg", + "dataFormat": "svg", + "rotationCenterX": 113, + "rotationCenterY": 65 + }, + { + "assetId": "5381feb0fc1b50ddc2793342daddffef", + "name": "dinosaur3-e", + "bitmapResolution": 1, + "md5ext": "5381feb0fc1b50ddc2793342daddffef.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Dinosaur4", - "md5": "d87b5e3c45f5d234c7aa47107c788f18.svg", - "type": "sprite", "tags": [ "animals", "dinosaur", @@ -4035,183 +3574,166 @@ "trex", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Dinosaur4", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dinosaur4-a", - "baseLayerID": 0, - "baseLayerMD5": "d87b5e3c45f5d234c7aa47107c788f18.svg", - "bitmapResolution": 1, - "rotationCenterX": 60, - "rotationCenterY": 52 - }, - { - "costumeName": "dinosaur4-b", - "baseLayerID": -1, - "baseLayerMD5": "cfe906702bbd30bc3bb8acb53079b6b0.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 52 - }, - { - "costumeName": "dinosaur4-c", - "baseLayerID": -1, - "baseLayerMD5": "1879b07cfe788b0258afada17aa46973.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 52 - }, - { - "costumeName": "dinosaur4-d", - "baseLayerID": -1, - "baseLayerMD5": "52c17657698ab82881ed3ccf83080684.svg", - "bitmapResolution": 1, - "rotationCenterX": 89, - "rotationCenterY": 88 - } - ], - "currentCostumeIndex": 0, - "scratchX": 128, - "scratchY": -19, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a98e3f93853513e7c00bab4c61752312", + "name": "dinosaur4-a", + "bitmapResolution": 1, + "md5ext": "a98e3f93853513e7c00bab4c61752312.svg", + "dataFormat": "svg", + "rotationCenterX": 60, + "rotationCenterY": 52 + }, + { + "assetId": "ac99ef62e3e018b8db550bb2a187cbe9", + "name": "dinosaur4-b", + "bitmapResolution": 1, + "md5ext": "ac99ef62e3e018b8db550bb2a187cbe9.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 52 + }, + { + "assetId": "c63cca929380152b978d8671fe6003f7", + "name": "dinosaur4-c", + "bitmapResolution": 1, + "md5ext": "c63cca929380152b978d8671fe6003f7.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 52 + }, + { + "assetId": "723bd1559f8baae4184fa24a6513362b", + "name": "dinosaur4-d", + "bitmapResolution": 1, + "md5ext": "723bd1559f8baae4184fa24a6513362b.svg", + "dataFormat": "svg", + "rotationCenterX": 89, + "rotationCenterY": 88 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Dinosaur5", - "md5": "42e3bf118c775ba54239af4276800a0a.png", - "type": "sprite", "tags": [ "animals", "dinosaur", "leigh mcg" ], - "info": [ - 0, - 8, - 2 - ], - "json": { - "objName": "Dinosaur5", - "sounds": [ - { - "soundName": "dance funky", - "soundID": -1, - "md5": "51c00a150d33c4639203184bb24c637b.wav", - "sampleCount": 111870, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "bite", - "soundID": -1, - "md5": "6759a83e9b92cd6082b68611e858fd23.wav", - "sampleCount": 8136, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "Dinosaur5-a", - "baseLayerID": -1, - "baseLayerMD5": "42e3bf118c775ba54239af4276800a0a.png", - "bitmapResolution": 2, - "rotationCenterX": 104, - "rotationCenterY": 150 - }, - { - "costumeName": "Dinosaur5-b", - "baseLayerID": -1, - "baseLayerMD5": "5a0832162a0cfa7adab6090c42e89714.png", - "bitmapResolution": 2, - "rotationCenterX": 112, - "rotationCenterY": 166 - }, - { - "costumeName": "Dinosaur5-c", - "baseLayerID": -1, - "baseLayerMD5": "26fca11e4251d60ed7aa5d08f4ae2a69.png", - "bitmapResolution": 2, - "rotationCenterX": 112, - "rotationCenterY": 150 - }, - { - "costumeName": "Dinosaur5-d", - "baseLayerID": -1, - "baseLayerMD5": "c4044a3badea77ced4f2db69aff866ed.png", - "bitmapResolution": 2, - "rotationCenterX": 90, - "rotationCenterY": 134 - }, - { - "costumeName": "Dinosaur5-e", - "baseLayerID": -1, - "baseLayerMD5": "f49b3b098a24474f20c8f4686681c611.png", - "bitmapResolution": 2, - "rotationCenterX": 88, - "rotationCenterY": 150 - }, - { - "costumeName": "Dinosaur5-f", - "baseLayerID": -1, - "baseLayerMD5": "9d200a7c2e93eac8cf52ede3a87d7969.png", - "bitmapResolution": 2, - "rotationCenterX": 94, - "rotationCenterY": 166 - }, - { - "costumeName": "Dinosaur5-g", - "baseLayerID": -1, - "baseLayerMD5": "5882227a9e2f0f3b2014c49328969762.png", - "bitmapResolution": 2, - "rotationCenterX": 102, - "rotationCenterY": 150 - }, - { - "costumeName": "Dinosaur5-h", - "baseLayerID": -1, - "baseLayerMD5": "3b2cf97b1cc7fc535162ba5849a0e29c.png", - "bitmapResolution": 2, - "rotationCenterX": 108, - "rotationCenterY": 134 - } - ], - "currentCostumeIndex": 0, - "scratchX": 0, - "scratchY": 0, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "42e3bf118c775ba54239af4276800a0a", + "name": "Dinosaur5-a", + "bitmapResolution": 2, + "md5ext": "42e3bf118c775ba54239af4276800a0a.png", + "dataFormat": "png", + "rotationCenterX": 104, + "rotationCenterY": 150 + }, + { + "assetId": "5a0832162a0cfa7adab6090c42e89714", + "name": "Dinosaur5-b", + "bitmapResolution": 2, + "md5ext": "5a0832162a0cfa7adab6090c42e89714.png", + "dataFormat": "png", + "rotationCenterX": 112, + "rotationCenterY": 166 + }, + { + "assetId": "26fca11e4251d60ed7aa5d08f4ae2a69", + "name": "Dinosaur5-c", + "bitmapResolution": 2, + "md5ext": "26fca11e4251d60ed7aa5d08f4ae2a69.png", + "dataFormat": "png", + "rotationCenterX": 112, + "rotationCenterY": 150 + }, + { + "assetId": "c4044a3badea77ced4f2db69aff866ed", + "name": "Dinosaur5-d", + "bitmapResolution": 2, + "md5ext": "c4044a3badea77ced4f2db69aff866ed.png", + "dataFormat": "png", + "rotationCenterX": 90, + "rotationCenterY": 134 + }, + { + "assetId": "f49b3b098a24474f20c8f4686681c611", + "name": "Dinosaur5-e", + "bitmapResolution": 2, + "md5ext": "f49b3b098a24474f20c8f4686681c611.png", + "dataFormat": "png", + "rotationCenterX": 88, + "rotationCenterY": 150 + }, + { + "assetId": "9d200a7c2e93eac8cf52ede3a87d7969", + "name": "Dinosaur5-f", + "bitmapResolution": 2, + "md5ext": "9d200a7c2e93eac8cf52ede3a87d7969.png", + "dataFormat": "png", + "rotationCenterX": 94, + "rotationCenterY": 166 + }, + { + "assetId": "5882227a9e2f0f3b2014c49328969762", + "name": "Dinosaur5-g", + "bitmapResolution": 2, + "md5ext": "5882227a9e2f0f3b2014c49328969762.png", + "dataFormat": "png", + "rotationCenterX": 102, + "rotationCenterY": 150 + }, + { + "assetId": "3b2cf97b1cc7fc535162ba5849a0e29c", + "name": "Dinosaur5-h", + "bitmapResolution": 2, + "md5ext": "3b2cf97b1cc7fc535162ba5849a0e29c.png", + "dataFormat": "png", + "rotationCenterX": 108, + "rotationCenterY": 134 + } + ], + "sounds": [ + { + "assetId": "51c00a150d33c4639203184bb24c637b", + "name": "dance funky", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 111761, + "md5ext": "51c00a150d33c4639203184bb24c637b.wav" + }, + { + "assetId": "6759a83e9b92cd6082b68611e858fd23", + "name": "bite", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "6759a83e9b92cd6082b68611e858fd23.wav" + } + ], + "blocks": {} }, { "name": "Diver1", - "md5": "853803d5600b66538474909c5438c8ee.svg", - "type": "sprite", "tags": [ "people", "underwater", @@ -4220,48 +3742,34 @@ "summer", "swimming" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Diver1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "diver1", - "baseLayerID": -1, - "baseLayerMD5": "853803d5600b66538474909c5438c8ee.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": 11, - "scratchY": 48, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a24f23a0f5d77cfb59721ef8f6bfe5c7", + "name": "diver1", + "bitmapResolution": 1, + "md5ext": "a24f23a0f5d77cfb59721ef8f6bfe5c7.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Diver2", - "md5": "248d3e69ada69a64b1077149ef6a931a.svg", - "type": "sprite", "tags": [ "people", "underwater", @@ -4270,168 +3778,129 @@ "summer", "swimming" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Diver2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "diver2", - "baseLayerID": -1, - "baseLayerMD5": "248d3e69ada69a64b1077149ef6a931a.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": 89, - "scratchY": -48, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ef8136a42b7d20961756e551bc87b37f", + "name": "diver2", + "bitmapResolution": 1, + "md5ext": "ef8136a42b7d20961756e551bc87b37f.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Dog1", - "md5": "39ddefa0cc58f3b1b06474d63d81ef56.svg", - "type": "sprite", "tags": [ "animals", "puppy", "puppies", "mammals" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Dog1", - "sounds": [ - { - "soundName": "dog1", - "soundID": -1, - "md5": "b15adefc3c12f758b6dc6a045362532f.wav", - "sampleCount": 3672, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dog1-a", - "baseLayerID": -1, - "baseLayerMD5": "39ddefa0cc58f3b1b06474d63d81ef56.svg", - "bitmapResolution": 1, - "rotationCenterX": 83, - "rotationCenterY": 80 - }, - { - "costumeName": "dog1-b", - "baseLayerID": -1, - "baseLayerMD5": "598f4aa3d8f671375d1d2b3acf753416.svg", - "bitmapResolution": 1, - "rotationCenterX": 83, - "rotationCenterY": 80 - } - ], - "currentCostumeIndex": 0, - "scratchX": 78, - "scratchY": -36, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "35cd78a8a71546a16c530d0b2d7d5a7f", + "name": "dog1-a", + "bitmapResolution": 1, + "md5ext": "35cd78a8a71546a16c530d0b2d7d5a7f.svg", + "dataFormat": "svg", + "rotationCenterX": 83, + "rotationCenterY": 80 + }, + { + "assetId": "d5a72e1eb23a91df4b53c0b16493d1e6", + "name": "dog1-b", + "bitmapResolution": 1, + "md5ext": "d5a72e1eb23a91df4b53c0b16493d1e6.svg", + "dataFormat": "svg", + "rotationCenterX": 83, + "rotationCenterY": 80 + } + ], + "sounds": [ + { + "assetId": "b15adefc3c12f758b6dc6a045362532f", + "name": "dog1", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 7344, + "md5ext": "b15adefc3c12f758b6dc6a045362532f.wav" + } + ], + "blocks": {} }, { "name": "Dog2", - "md5": "e921f865b19b27cd99e16a341dbf09c2.svg", - "type": "sprite", "tags": [ "animals", "puppy", "puppies", "mammals" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Dog2", - "sounds": [ - { - "soundName": "dog1", - "soundID": -1, - "md5": "b15adefc3c12f758b6dc6a045362532f.wav", - "sampleCount": 3672, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dog2-a", - "baseLayerID": -1, - "baseLayerMD5": "e921f865b19b27cd99e16a341dbf09c2.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "dog2-b", - "baseLayerID": -1, - "baseLayerMD5": "891f2fb7daf79ba8b224a9173eeb0a63.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "dog2-c", - "baseLayerID": -1, - "baseLayerMD5": "cd236d5eef4431dea82983ac9eec406b.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": 99, - "scratchY": 27, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "66b435d333f34d02d5ae49a598bcc5b3", + "name": "dog2-a", + "bitmapResolution": 1, + "md5ext": "66b435d333f34d02d5ae49a598bcc5b3.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + }, + { + "assetId": "6afc06388d69f99e28d883126f9b2734", + "name": "dog2-b", + "bitmapResolution": 1, + "md5ext": "6afc06388d69f99e28d883126f9b2734.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + }, + { + "assetId": "4708bff29b3a295a03ac1d5e2d16ec75", + "name": "dog2-c", + "bitmapResolution": 1, + "md5ext": "4708bff29b3a295a03ac1d5e2d16ec75.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "b15adefc3c12f758b6dc6a045362532f", + "name": "dog1", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 7344, + "md5ext": "b15adefc3c12f758b6dc6a045362532f.wav" + } + ], + "blocks": {} }, { "name": "Donut", - "md5": "9e7b4d153421dae04a24571d7e079e85.svg", - "type": "sprite", "tags": [ "food", "sweets", @@ -4442,319 +3911,259 @@ "sprinkles", "sprankles" ], - "info": [ - 0, - 1, - 2 - ], - "json": { - "objName": "Donut", - "sounds": [ - { - "soundName": "Bite", - "soundID": -1, - "md5": "0039635b1d6853face36581784558454.wav", - "sampleCount": 7672, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Chomp", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "donut", - "baseLayerID": -1, - "baseLayerMD5": "9e7b4d153421dae04a24571d7e079e85.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 15 - } - ], - "currentCostumeIndex": 0, - "scratchX": -2, - "scratchY": 43, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "316a67c9e966fd015b4538f54be456db", + "name": "donut", + "bitmapResolution": 1, + "md5ext": "316a67c9e966fd015b4538f54be456db.svg", + "dataFormat": "svg", + "rotationCenterX": 72.11747235252724, + "rotationCenterY": 14.658782444689848 + } + ], + "sounds": [ + { + "assetId": "0039635b1d6853face36581784558454", + "name": "Bite", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "0039635b1d6853face36581784558454.wav" + }, + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "Chomp", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + } + ], + "blocks": {} }, { "name": "Dorian", - "md5": "503f1d4d0fe61d071e1dd8b5233cceb0.svg", - "type": "sprite", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Dorian", - "sounds": [ - { - "soundName": "basketball bounce", - "soundID": -1, - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "dorian-a", - "baseLayerID": -1, - "baseLayerMD5": "503f1d4d0fe61d071e1dd8b5233cceb0.svg", - "bitmapResolution": 1, - "rotationCenterX": 60, - "rotationCenterY": 65 - }, - { - "costumeName": "dorian-b", - "baseLayerID": -1, - "baseLayerMD5": "d5f795ef2395bcd11ceee0b0c24c9341.svg", - "bitmapResolution": 1, - "rotationCenterX": 60, - "rotationCenterY": 65 - }, - { - "costumeName": "dorian-c", - "baseLayerID": -1, - "baseLayerMD5": "4ad4ddf4251b9b5bcb16d8d77213685f.svg", - "bitmapResolution": 1, - "rotationCenterX": 77, - "rotationCenterY": 67 - }, - { - "costumeName": "dorian-d", - "baseLayerID": -1, - "baseLayerMD5": "67fba4e187ecf42749bdd44e64f29192.svg", - "bitmapResolution": 1, - "rotationCenterX": 77, - "rotationCenterY": 53 - } - ], - "currentCostumeIndex": 0, - "scratchX": -24, - "scratchY": -57, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a9a064a1f28c9e22b594dcea1d46025b", + "name": "dorian-a", + "bitmapResolution": 1, + "md5ext": "a9a064a1f28c9e22b594dcea1d46025b.svg", + "dataFormat": "svg", + "rotationCenterX": 60, + "rotationCenterY": 65 + }, + { + "assetId": "7d20ec98603857c031c1f4ad2bd8ea51", + "name": "dorian-b", + "bitmapResolution": 1, + "md5ext": "7d20ec98603857c031c1f4ad2bd8ea51.svg", + "dataFormat": "svg", + "rotationCenterX": 60, + "rotationCenterY": 65 + }, + { + "assetId": "8f2be2387efcbb5d4878886adaa2a88e", + "name": "dorian-c", + "bitmapResolution": 1, + "md5ext": "8f2be2387efcbb5d4878886adaa2a88e.svg", + "dataFormat": "svg", + "rotationCenterX": 77, + "rotationCenterY": 67 + }, + { + "assetId": "603d3dd151984c0eaa2822f70a234c28", + "name": "dorian-d", + "bitmapResolution": 1, + "md5ext": "603d3dd151984c0eaa2822f70a234c28.svg", + "dataFormat": "svg", + "rotationCenterX": 77, + "rotationCenterY": 53 + } + ], + "sounds": [ + { + "assetId": "1727f65b5f22d151685b8e5917456a60", + "name": "basketball bounce", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav" + } + ], + "blocks": {} }, { "name": "Dot", - "md5": "3b9e6830365aeadb63c21b681777b783.svg", - "type": "sprite", "tags": [ "space", "dog", "animals", "wren mcdonald" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Dot", - "sounds": [ - { - "soundName": "bark", - "soundID": -1, - "md5": "cd8fa8390b0efdd281882533fbfcfcfb.wav", - "sampleCount": 3168, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dot-a", - "baseLayerID": -1, - "baseLayerMD5": "3b9e6830365aeadb63c21b681777b783.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 67 - }, - { - "costumeName": "dot-b", - "baseLayerID": -1, - "baseLayerMD5": "a80a07906ffbb9671dba3633223859af.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 67 - }, - { - "costumeName": "dot-c", - "baseLayerID": -1, - "baseLayerMD5": "1e1bdccbab5b566beb7f91b5ec01352f.svg", - "bitmapResolution": 1, - "rotationCenterX": 51, - "rotationCenterY": 69 - }, - { - "costumeName": "dot-d", - "baseLayerID": -1, - "baseLayerMD5": "06d70d5de0e25f97c1c606e513ab019c.svg", - "bitmapResolution": 1, - "rotationCenterX": 57, - "rotationCenterY": 67 - } - ], - "currentCostumeIndex": 0, - "scratchX": -162, - "scratchY": -69, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "106461f60e34ce231b323e2dd2d9f05b", + "name": "dot-a", + "bitmapResolution": 1, + "md5ext": "106461f60e34ce231b323e2dd2d9f05b.svg", + "dataFormat": "svg", + "rotationCenterX": 52, + "rotationCenterY": 67 + }, + { + "assetId": "21482022f9930400302bc8ec70643717", + "name": "dot-b", + "bitmapResolution": 1, + "md5ext": "21482022f9930400302bc8ec70643717.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 67 + }, + { + "assetId": "9e5a6cc6970ce4932a09affba70a45b0", + "name": "dot-c", + "bitmapResolution": 1, + "md5ext": "9e5a6cc6970ce4932a09affba70a45b0.svg", + "dataFormat": "svg", + "rotationCenterX": 50.53907324990831, + "rotationCenterY": 68.96764494984302 + }, + { + "assetId": "fb047c94113ee4c6664305a338525e6a", + "name": "dot-d", + "bitmapResolution": 1, + "md5ext": "fb047c94113ee4c6664305a338525e6a.svg", + "dataFormat": "svg", + "rotationCenterX": 56.58074394930321, + "rotationCenterY": 66.76919584395038 + } + ], + "sounds": [ + { + "assetId": "cd8fa8390b0efdd281882533fbfcfcfb", + "name": "bark", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 6336, + "md5ext": "cd8fa8390b0efdd281882533fbfcfcfb.wav" + } + ], + "blocks": {} }, { "name": "Dove", - "md5": "6dde2b880ad6ddeaea2a53821befb86d.svg", - "type": "sprite", "tags": [ "animals", "bird", "flying" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Dove", - "sounds": [ - { - "soundName": "bird", - "soundID": -1, - "md5": "18bd4b634a3f992a16b30344c7d810e0.wav", - "sampleCount": 3840, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dove-a", - "baseLayerID": -1, - "baseLayerMD5": "6dde2b880ad6ddeaea2a53821befb86d.svg", - "bitmapResolution": 1, - "rotationCenterX": 86, - "rotationCenterY": 59 - }, - { - "costumeName": "dove-b", - "baseLayerID": -1, - "baseLayerMD5": "1c0bc118044d7f6033bc9cd1ef555590.svg", - "bitmapResolution": 1, - "rotationCenterX": 88, - "rotationCenterY": 57 - } - ], - "currentCostumeIndex": 0, - "scratchX": -71, - "scratchY": 24, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0f83ab55012a7affd94e38250d55a0a0", + "name": "dove-a", + "bitmapResolution": 1, + "md5ext": "0f83ab55012a7affd94e38250d55a0a0.svg", + "dataFormat": "svg", + "rotationCenterX": 86, + "rotationCenterY": 59 + }, + { + "assetId": "778a699a044a0a8c10f44c3194e21ef2", + "name": "dove-b", + "bitmapResolution": 1, + "md5ext": "778a699a044a0a8c10f44c3194e21ef2.svg", + "dataFormat": "svg", + "rotationCenterX": 88, + "rotationCenterY": 57 + } + ], + "sounds": [ + { + "assetId": "18bd4b634a3f992a16b30344c7d810e0", + "name": "bird", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 15360, + "md5ext": "18bd4b634a3f992a16b30344c7d810e0.wav" + } + ], + "blocks": {} }, { "name": "Dragon", - "md5": "8aed65cee4cfe22b4f4b8e749092dbbb.svg", - "type": "sprite", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Dragon", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "dragon-a", - "baseLayerID": -1, - "baseLayerMD5": "8aed65cee4cfe22b4f4b8e749092dbbb.svg", - "bitmapResolution": 1, - "rotationCenterX": 210, - "rotationCenterY": 150 - }, - { - "costumeName": "dragon-b", - "baseLayerID": -1, - "baseLayerMD5": "c3360f16bb78b136d9911325da9fda49.svg", - "bitmapResolution": 1, - "rotationCenterX": 210, - "rotationCenterY": 150 - }, - { - "costumeName": "dragon-c", - "baseLayerID": -1, - "baseLayerMD5": "e81af82ebde008c167ebc6874df3ecb4.svg", - "bitmapResolution": 1, - "rotationCenterX": 210, - "rotationCenterY": 150 - } - ], - "currentCostumeIndex": 0, - "scratchX": -36, - "scratchY": -7, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "12ead885460d96a19132e5970839d36d", + "name": "dragon-a", + "bitmapResolution": 1, + "md5ext": "12ead885460d96a19132e5970839d36d.svg", + "dataFormat": "svg", + "rotationCenterX": 124.12215277545062, + "rotationCenterY": 106.25815347723332 + }, + { + "assetId": "3f672475ad4ca5d1f9331cffd4223140", + "name": "dragon-b", + "bitmapResolution": 1, + "md5ext": "3f672475ad4ca5d1f9331cffd4223140.svg", + "dataFormat": "svg", + "rotationCenterX": 152.5, + "rotationCenterY": 99 + }, + { + "assetId": "e0aa0083fa0b97da97600d4dbb2055e5", + "name": "dragon-c", + "bitmapResolution": 1, + "md5ext": "e0aa0083fa0b97da97600d4dbb2055e5.svg", + "dataFormat": "svg", + "rotationCenterX": 124.4550776985194, + "rotationCenterY": 105.92484014389998 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Dragonfly", - "md5": "87aaecd2fb73580e6f1f38c5a2e579a9.svg", - "type": "sprite", "tags": [ "animals", "insect", @@ -4762,469 +4171,389 @@ "wetland", "owen davey" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Dragonfly", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Dragonfly-a", - "baseLayerID": -1, - "baseLayerMD5": "87aaecd2fb73580e6f1f38c5a2e579a9.svg", - "bitmapResolution": 1, - "rotationCenterX": 108, - "rotationCenterY": 52 - }, - { - "costumeName": "Dragonfly-b", - "baseLayerID": -1, - "baseLayerMD5": "4e775a49bd5a7a6d38392731924f72e0.svg", - "bitmapResolution": 1, - "rotationCenterX": 108, - "rotationCenterY": 46 - } - ], - "currentCostumeIndex": 0, - "scratchX": 138, - "scratchY": 107, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5cdfe67af929e3fb095e83c9c4b0bd78", + "name": "Dragonfly-a", + "bitmapResolution": 1, + "md5ext": "5cdfe67af929e3fb095e83c9c4b0bd78.svg", + "dataFormat": "svg", + "rotationCenterX": 108, + "rotationCenterY": 52 + }, + { + "assetId": "17b864c1ddd4b349a6c4bd5709167307", + "name": "Dragonfly-b", + "bitmapResolution": 1, + "md5ext": "17b864c1ddd4b349a6c4bd5709167307.svg", + "dataFormat": "svg", + "rotationCenterX": 108, + "rotationCenterY": 46 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Dress", - "md5": "fa7e0b37a324c212d0f1ce0f701a1ae0.svg", - "type": "sprite", "tags": [ "fashion", "dress", "clothing" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Dress", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "dress-a", - "baseLayerID": -1, - "baseLayerMD5": "fa7e0b37a324c212d0f1ce0f701a1ae0.svg", - "bitmapResolution": 1, - "rotationCenterX": 57, - "rotationCenterY": 83 - }, - { - "costumeName": "dress-b", - "baseLayerID": -1, - "baseLayerMD5": "308b6ad8e6cfe5c2b2c1e3a1eb9cc404.svg", - "bitmapResolution": 1, - "rotationCenterX": 58, - "rotationCenterY": 83 - }, - { - "costumeName": "dress-c", - "baseLayerID": -1, - "baseLayerMD5": "1f7a725ba285dc97cb142d4b812db624.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 83 - } - ], - "currentCostumeIndex": 0, - "scratchX": -65, - "scratchY": -50, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ddbea537af6012ebac18d16d65c07479", + "name": "dress-a", + "bitmapResolution": 1, + "md5ext": "ddbea537af6012ebac18d16d65c07479.svg", + "dataFormat": "svg", + "rotationCenterX": 57, + "rotationCenterY": 83 + }, + { + "assetId": "4e22e6fd72500f0a25b959283bfd0a32", + "name": "dress-b", + "bitmapResolution": 1, + "md5ext": "4e22e6fd72500f0a25b959283bfd0a32.svg", + "dataFormat": "svg", + "rotationCenterX": 58, + "rotationCenterY": 83 + }, + { + "assetId": "c5fb135d89573570010b0d96c94bcec6", + "name": "dress-c", + "bitmapResolution": 1, + "md5ext": "c5fb135d89573570010b0d96c94bcec6.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 83 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Drum", - "md5": "dd66742bc2a3cfe5a6f9f540afd2e15c.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 2 - ], - "json": { - "objName": "Drum", - "sounds": [ - { - "soundName": "High Tom", - "soundID": -1, - "md5": "d623f99b3c8d33932eb2c6c9cfd817c5.wav", - "sampleCount": 12320, - "rate": 22050, - "format": "" - }, - { - "soundName": "Low Tom", - "soundID": -1, - "md5": "1569bbbd8952b0575e5a5cb5aefb50ba.wav", - "sampleCount": 20000, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "drum-a", - "baseLayerID": -1, - "baseLayerMD5": "dd66742bc2a3cfe5a6f9f540afd2e15c.svg", - "bitmapResolution": 1, - "rotationCenterX": 43, - "rotationCenterY": 60 - }, - { - "costumeName": "drum-b", - "baseLayerID": -1, - "baseLayerMD5": "9c9d371da382c227e43f09b1a748c554.svg", - "bitmapResolution": 1, - "rotationCenterX": 43, - "rotationCenterY": 60 - } - ], - "currentCostumeIndex": 0, - "scratchX": -43, - "scratchY": -29, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ce6971317035091341ec40571c9056e9", + "name": "drum-a", + "bitmapResolution": 1, + "md5ext": "ce6971317035091341ec40571c9056e9.svg", + "dataFormat": "svg", + "rotationCenterX": 43, + "rotationCenterY": 60 + }, + { + "assetId": "47531b5675be696d0540eb120d5d0678", + "name": "drum-b", + "bitmapResolution": 1, + "md5ext": "47531b5675be696d0540eb120d5d0678.svg", + "dataFormat": "svg", + "rotationCenterX": 43, + "rotationCenterY": 60 + } + ], + "sounds": [ + { + "assetId": "d623f99b3c8d33932eb2c6c9cfd817c5", + "name": "High Tom", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 24640, + "md5ext": "d623f99b3c8d33932eb2c6c9cfd817c5.wav" + }, + { + "assetId": "1569bbbd8952b0575e5a5cb5aefb50ba", + "name": "Low Tom", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 40000, + "md5ext": "1569bbbd8952b0575e5a5cb5aefb50ba.wav" + } + ], + "blocks": {} }, { "name": "Drum Kit", - "md5": "131d040d86ecea62ccd175a8709c7866.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 5 - ], - "json": { - "objName": "Drum Kit", - "sounds": [ - { - "soundName": "Drum Bass1", - "soundID": -1, - "md5": "48328c874353617451e4c7902cc82817.wav", - "sampleCount": 6528, - "rate": 22050, - "format": "" - }, - { - "soundName": "Drum Bass2", - "soundID": -1, - "md5": "711a1270d1cf2e5de9b145ee539213e4.wav", - "sampleCount": 3791, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Drum Bass3", - "soundID": -1, - "md5": "c21704337b16359ea631b5f8eb48f765.wav", - "sampleCount": 8576, - "rate": 22050, - "format": "" - }, - { - "soundName": "High Tom", - "soundID": -1, - "md5": "d623f99b3c8d33932eb2c6c9cfd817c5.wav", - "sampleCount": 12320, - "rate": 22050, - "format": "" - }, - { - "soundName": "Low Tom", - "soundID": -1, - "md5": "1569bbbd8952b0575e5a5cb5aefb50ba.wav", - "sampleCount": 20000, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "drum-kit", - "baseLayerID": -1, - "baseLayerMD5": "131d040d86ecea62ccd175a8709c7866.svg", - "bitmapResolution": 1, - "rotationCenterX": 58, - "rotationCenterY": 78 - }, - { - "costumeName": "drum-kit-b", - "baseLayerID": -1, - "baseLayerMD5": "ff14be049146cf9ab142e0951cb9b735.svg", - "bitmapResolution": 1, - "rotationCenterX": 58, - "rotationCenterY": 78 - } - ], - "currentCostumeIndex": 0, - "scratchX": 4, - "scratchY": -31, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "baf6344b6f55b074786a383c1097697d", + "name": "drum-kit", + "bitmapResolution": 1, + "md5ext": "baf6344b6f55b074786a383c1097697d.svg", + "dataFormat": "svg", + "rotationCenterX": 58, + "rotationCenterY": 78 + }, + { + "assetId": "3f4fb4836338c55f883607c403b2b25e", + "name": "drum-kit-b", + "bitmapResolution": 1, + "md5ext": "3f4fb4836338c55f883607c403b2b25e.svg", + "dataFormat": "svg", + "rotationCenterX": 58, + "rotationCenterY": 78 + } + ], + "sounds": [ + { + "assetId": "48328c874353617451e4c7902cc82817", + "name": "Drum Bass1", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 13056, + "md5ext": "48328c874353617451e4c7902cc82817.wav" + }, + { + "assetId": "711a1270d1cf2e5de9b145ee539213e4", + "name": "Drum Bass2", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 4065, + "md5ext": "711a1270d1cf2e5de9b145ee539213e4.wav" + }, + { + "assetId": "c21704337b16359ea631b5f8eb48f765", + "name": "Drum Bass3", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 17152, + "md5ext": "c21704337b16359ea631b5f8eb48f765.wav" + }, + { + "assetId": "d623f99b3c8d33932eb2c6c9cfd817c5", + "name": "High Tom", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 24640, + "md5ext": "d623f99b3c8d33932eb2c6c9cfd817c5.wav" + }, + { + "assetId": "1569bbbd8952b0575e5a5cb5aefb50ba", + "name": "Low Tom", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 40000, + "md5ext": "1569bbbd8952b0575e5a5cb5aefb50ba.wav" + } + ], + "blocks": {} }, { "name": "Drum-cymbal", - "md5": "d6d41862fda966df1455d2dbff5e1988.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 4 - ], - "json": { - "objName": "Drum-cymbal", - "sounds": [ - { - "soundName": "crash cymbal", - "soundID": -1, - "md5": "f2c47a46f614f467a7ac802ed9ec3d8e.wav", - "sampleCount": 25220, - "rate": 22050, - "format": "" - }, - { - "soundName": "splash cymbal", - "soundID": -1, - "md5": "9d63ed5be96c43b06492e8b4a9cea8d8.wav", - "sampleCount": 9600, - "rate": 22050, - "format": "" - }, - { - "soundName": "bell cymbal", - "soundID": -1, - "md5": "efddec047de95492f775a1b5b2e8d19e.wav", - "sampleCount": 19328, - "rate": 22050, - "format": "" - }, - { - "soundName": "roll cymbal", - "soundID": -1, - "md5": "da8355d753cd2a5ddd19cb2bb41c1547.wav", - "sampleCount": 26432, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "drum-cymbal-a", - "baseLayerID": -1, - "baseLayerMD5": "d6d41862fda966df1455d2dbff5e1988.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 74 - }, - { - "costumeName": "drum-cymbal-b", - "baseLayerID": -1, - "baseLayerMD5": "e6b7d7d8874bc4b7be58afe927157554.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 74 - } - ], - "currentCostumeIndex": 0, - "scratchX": -50, - "scratchY": -19, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "78398692e6fa226568df0374c4358da4", + "name": "drum-cymbal-a", + "bitmapResolution": 1, + "md5ext": "78398692e6fa226568df0374c4358da4.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 74 + }, + { + "assetId": "08355ec8cc4b3263f502adfdea993cda", + "name": "drum-cymbal-b", + "bitmapResolution": 1, + "md5ext": "08355ec8cc4b3263f502adfdea993cda.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 74 + } + ], + "sounds": [ + { + "assetId": "f2c47a46f614f467a7ac802ed9ec3d8e", + "name": "crash cymbal", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 50440, + "md5ext": "f2c47a46f614f467a7ac802ed9ec3d8e.wav" + }, + { + "assetId": "9d63ed5be96c43b06492e8b4a9cea8d8", + "name": "splash cymbal", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 19200, + "md5ext": "9d63ed5be96c43b06492e8b4a9cea8d8.wav" + }, + { + "assetId": "efddec047de95492f775a1b5b2e8d19e", + "name": "bell cymbal", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 38656, + "md5ext": "efddec047de95492f775a1b5b2e8d19e.wav" + }, + { + "assetId": "da8355d753cd2a5ddd19cb2bb41c1547", + "name": "roll cymbal", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 52864, + "md5ext": "da8355d753cd2a5ddd19cb2bb41c1547.wav" + } + ], + "blocks": {} }, { "name": "Drum-highhat", - "md5": "81fb79151a63cb096258607451cc2cf5.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Drum-highhat", - "sounds": [ - { - "soundName": "hihat cymbal", - "soundID": -1, - "md5": "2d01f60d0f20ab39facbf707899c6b2a.wav", - "sampleCount": 2752, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "drum-highhat-a", - "baseLayerID": -1, - "baseLayerMD5": "81fb79151a63cb096258607451cc2cf5.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 73 - }, - { - "costumeName": "drum-highhat-b", - "baseLayerID": -1, - "baseLayerMD5": "e3c273e4ad1a24583064f9b61fcd753a.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 73 - } - ], - "currentCostumeIndex": 0, - "scratchX": 64, - "scratchY": -33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "15b2a31a57d0cd911ad0b1c265dcf59e", + "name": "drum-highhat-a", + "bitmapResolution": 1, + "md5ext": "15b2a31a57d0cd911ad0b1c265dcf59e.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 73 + }, + { + "assetId": "866b3a49ee2a45998940e2d737c4c502", + "name": "drum-highhat-b", + "bitmapResolution": 1, + "md5ext": "866b3a49ee2a45998940e2d737c4c502.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 73 + } + ], + "sounds": [ + { + "assetId": "2d01f60d0f20ab39facbf707899c6b2a", + "name": "hihat cymbal", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 5504, + "md5ext": "2d01f60d0f20ab39facbf707899c6b2a.wav" + } + ], + "blocks": {} }, { "name": "Drum-snare", - "md5": "ace58710b8fa5fca8fb5bbca15e7d19c.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 3 - ], - "json": { - "objName": "Drum-snare", - "sounds": [ - { - "soundName": "tap snare", - "soundID": -1, - "md5": "d55b3954d72c6275917f375e49b502f3.wav", - "sampleCount": 3296, - "rate": 22050, - "format": "" - }, - { - "soundName": "flam snare", - "soundID": -1, - "md5": "3b6cce9f8c56c0537ca61eee3945cd1d.wav", - "sampleCount": 4416, - "rate": 22050, - "format": "" - }, - { - "soundName": "sidestick snare", - "soundID": -1, - "md5": "f6868ee5cf626fc4ef3ca1119dc95592.wav", - "sampleCount": 2336, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "drum-snare-a", - "baseLayerID": -1, - "baseLayerMD5": "ace58710b8fa5fca8fb5bbca15e7d19c.svg", - "bitmapResolution": 1, - "rotationCenterX": 21, - "rotationCenterY": 32 - }, - { - "costumeName": "drum-snare-b", - "baseLayerID": -1, - "baseLayerMD5": "f6120839d3f73b262571add2444c443a.svg", - "bitmapResolution": 1, - "rotationCenterX": 34, - "rotationCenterY": 48 - } - ], - "currentCostumeIndex": 0, - "scratchX": 45, - "scratchY": -33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c42bb05aab3cacddcd88712e33ab8df0", + "name": "drum-snare-a", + "bitmapResolution": 1, + "md5ext": "c42bb05aab3cacddcd88712e33ab8df0.svg", + "dataFormat": "svg", + "rotationCenterX": 21, + "rotationCenterY": 32 + }, + { + "assetId": "28298d93f5282041267a92bd67308107", + "name": "drum-snare-b", + "bitmapResolution": 1, + "md5ext": "28298d93f5282041267a92bd67308107.svg", + "dataFormat": "svg", + "rotationCenterX": 34, + "rotationCenterY": 48 + } + ], + "sounds": [ + { + "assetId": "d55b3954d72c6275917f375e49b502f3", + "name": "tap snare", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 6592, + "md5ext": "d55b3954d72c6275917f375e49b502f3.wav" + }, + { + "assetId": "3b6cce9f8c56c0537ca61eee3945cd1d", + "name": "flam snare", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 8832, + "md5ext": "3b6cce9f8c56c0537ca61eee3945cd1d.wav" + }, + { + "assetId": "f6868ee5cf626fc4ef3ca1119dc95592", + "name": "sidestick snare", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 4672, + "md5ext": "f6868ee5cf626fc4ef3ca1119dc95592.wav" + } + ], + "blocks": {} }, { "name": "Drums Conga", - "md5": "b3da94523b6d3df2dd30602399599ab4.svg", - "type": "sprite", "tags": [ "drums", "drum", @@ -5232,80 +4561,70 @@ "instrument", "percussion" ], - "info": [ - 0, - 2, - 4 - ], - "json": { - "objName": "Drums Conga", - "sounds": [ - { - "soundName": "High Conga", - "soundID": -1, - "md5": "16144544de90e98a92a265d4fc3241ea.wav", - "sampleCount": 8192, - "rate": 22050, - "format": "" - }, - { - "soundName": "Low Conga", - "soundID": -1, - "md5": "0b6f94487cd8a1cf0bb77e15966656c3.wav", - "sampleCount": 8384, - "rate": 22050, - "format": "" - }, - { - "soundName": "Muted Conga", - "soundID": -1, - "md5": "1d4abbe3c9bfe198a88badb10762de75.wav", - "sampleCount": 4544, - "rate": 22050, - "format": "" - }, - { - "soundName": "Tap Conga", - "soundID": -1, - "md5": "fd9a67157f57f9cc6fe3cdce38a6d4a8.wav", - "sampleCount": 6880, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Drums Conga-a", - "baseLayerID": -1, - "baseLayerMD5": "b3da94523b6d3df2dd30602399599ab4.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 66 - }, - { - "costumeName": "Drums Conga-b", - "baseLayerID": -1, - "baseLayerMD5": "037703c2b65f051c12e9b22dcf93856c.svg", - "bitmapResolution": 1, - "rotationCenterX": 66, - "rotationCenterY": 94 - } - ], - "currentCostumeIndex": 0, - "scratchX": 61, - "scratchY": -87, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2b2eacfce0fb1af023e6ca0f5ef6defe", + "name": "Drums Conga-a", + "bitmapResolution": 1, + "md5ext": "2b2eacfce0fb1af023e6ca0f5ef6defe.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 66 + }, + { + "assetId": "bdad2f140cfbd021f38241fc9acc7fd2", + "name": "Drums Conga-b", + "bitmapResolution": 1, + "md5ext": "bdad2f140cfbd021f38241fc9acc7fd2.svg", + "dataFormat": "svg", + "rotationCenterX": 66, + "rotationCenterY": 94 + } + ], + "sounds": [ + { + "assetId": "16144544de90e98a92a265d4fc3241ea", + "name": "High Conga", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 16384, + "md5ext": "16144544de90e98a92a265d4fc3241ea.wav" + }, + { + "assetId": "0b6f94487cd8a1cf0bb77e15966656c3", + "name": "Low Conga", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 16768, + "md5ext": "0b6f94487cd8a1cf0bb77e15966656c3.wav" + }, + { + "assetId": "1d4abbe3c9bfe198a88badb10762de75", + "name": "Muted Conga", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 9088, + "md5ext": "1d4abbe3c9bfe198a88badb10762de75.wav" + }, + { + "assetId": "fd9a67157f57f9cc6fe3cdce38a6d4a8", + "name": "Tap Conga", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 13760, + "md5ext": "fd9a67157f57f9cc6fe3cdce38a6d4a8.wav" + } + ], + "blocks": {} }, { "name": "Drums Tabla", - "md5": "68ce53b53fcc68744584c28d20144c4f.svg", - "type": "sprite", "tags": [ "drums", "drum", @@ -5313,80 +4632,70 @@ "instrument", "percussion" ], - "info": [ - 0, - 2, - 4 - ], - "json": { - "objName": "Drums Tabla", - "sounds": [ - { - "soundName": "Hi Na Tabla", - "soundID": -1, - "md5": "35b42d98c43404a5b1b52fb232a62bd7.wav", - "sampleCount": 4096, - "rate": 22050, - "format": "" - }, - { - "soundName": "Hi Tun Tabla", - "soundID": -1, - "md5": "da734693dfa6a9a7eccdc7f9a0ca9840.wav", - "sampleCount": 18656, - "rate": 22050, - "format": "" - }, - { - "soundName": "Lo Geh Tabla", - "soundID": -1, - "md5": "9205359ab69d042ed3da8a160a651690.wav", - "sampleCount": 30784, - "rate": 22050, - "format": "" - }, - { - "soundName": "Lo Gliss Tabla", - "soundID": -1, - "md5": "d7cd24689737569c93e7ea7344ba6b0e.wav", - "sampleCount": 7008, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Tabla-a", - "baseLayerID": -1, - "baseLayerMD5": "68ce53b53fcc68744584c28d20144c4f.svg", - "bitmapResolution": 1, - "rotationCenterX": 79, - "rotationCenterY": 67 - }, - { - "costumeName": "Tabla-b", - "baseLayerID": -1, - "baseLayerMD5": "01b6ffb8691d32be10fabc77ddfb55b0.svg", - "bitmapResolution": 1, - "rotationCenterX": 86, - "rotationCenterY": 73 - } - ], - "currentCostumeIndex": 0, - "scratchX": -50, - "scratchY": -106, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "af071d9d714c5c622e2bb07133698ce3", + "name": "Tabla-a", + "bitmapResolution": 1, + "md5ext": "af071d9d714c5c622e2bb07133698ce3.svg", + "dataFormat": "svg", + "rotationCenterX": 79, + "rotationCenterY": 67 + }, + { + "assetId": "992d6359be830d977559dad91b04f698", + "name": "Tabla-b", + "bitmapResolution": 1, + "md5ext": "992d6359be830d977559dad91b04f698.svg", + "dataFormat": "svg", + "rotationCenterX": 86, + "rotationCenterY": 73 + } + ], + "sounds": [ + { + "assetId": "35b42d98c43404a5b1b52fb232a62bd7", + "name": "Hi Na Tabla", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 8192, + "md5ext": "35b42d98c43404a5b1b52fb232a62bd7.wav" + }, + { + "assetId": "da734693dfa6a9a7eccdc7f9a0ca9840", + "name": "Hi Tun Tabla", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37312, + "md5ext": "da734693dfa6a9a7eccdc7f9a0ca9840.wav" + }, + { + "assetId": "9205359ab69d042ed3da8a160a651690", + "name": "Lo Geh Tabla", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 61568, + "md5ext": "9205359ab69d042ed3da8a160a651690.wav" + }, + { + "assetId": "d7cd24689737569c93e7ea7344ba6b0e", + "name": "Lo Gliss Tabla", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 14016, + "md5ext": "d7cd24689737569c93e7ea7344ba6b0e.wav" + } + ], + "blocks": {} }, { "name": "Duck", - "md5": "c3baf7eedfbdac8cd1e4f1f1f779dc0c.svg", - "type": "sprite", "tags": [ "animals", "chrisg", @@ -5394,461 +4703,379 @@ "birds", "birb" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Duck", - "sounds": [ - { - "soundName": "duck", - "soundID": -1, - "md5": "af5b039e1b05e0ccb12944f648a8884e.wav", - "sampleCount": 5792, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "duck", - "baseLayerID": -1, - "baseLayerMD5": "c3baf7eedfbdac8cd1e4f1f1f779dc0c.svg", - "bitmapResolution": 1, - "rotationCenterX": 61, - "rotationCenterY": 59 - } - ], - "currentCostumeIndex": 0, - "scratchX": 60, - "scratchY": 49, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c9837d0454f5f0f73df290af2045359b", + "name": "duck", + "bitmapResolution": 1, + "md5ext": "c9837d0454f5f0f73df290af2045359b.svg", + "dataFormat": "svg", + "rotationCenterX": 61, + "rotationCenterY": 59 + } + ], + "sounds": [ + { + "assetId": "af5b039e1b05e0ccb12944f648a8884e", + "name": "duck", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11584, + "md5ext": "af5b039e1b05e0ccb12944f648a8884e.wav" + } + ], + "blocks": {} }, { "name": "Earth", - "md5": "64220361b80d2812e9f27fc88ef39027.svg", - "type": "sprite", "tags": [ "space", "planet", "earth", "globe" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Earth", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "earth", - "baseLayerID": -1, - "baseLayerMD5": "64220361b80d2812e9f27fc88ef39027.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 55 - } - ], - "currentCostumeIndex": 0, - "scratchX": 142, - "scratchY": -53, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "7405b5efa96995bae6853667f8cd145e", + "name": "earth", + "bitmapResolution": 1, + "md5ext": "7405b5efa96995bae6853667f8cd145e.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 55 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Easel", - "md5": "edc81e35c94c07dc380c43ea9b311394.svg", - "type": "sprite", "tags": [ "bedroom", "art", "easel" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Easel", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Easel-a", - "baseLayerID": -1, - "baseLayerMD5": "edc81e35c94c07dc380c43ea9b311394.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 95 - }, - { - "costumeName": "Easel-b", - "baseLayerID": -1, - "baseLayerMD5": "cac798e8cf0364fa9a8bc52b85bda6b2.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 95 - }, - { - "costumeName": "Easel-c", - "baseLayerID": -1, - "baseLayerMD5": "afbf42eb496694afb31f9ea69b3a1a7a.svg", - "bitmapResolution": 1, - "rotationCenterX": 68, - "rotationCenterY": 94 - } - ], - "currentCostumeIndex": 0, - "scratchX": 182, - "scratchY": -41, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a4b3714322c11b350f09a75921ae606b", + "name": "Easel-a", + "bitmapResolution": 1, + "md5ext": "a4b3714322c11b350f09a75921ae606b.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 95 + }, + { + "assetId": "6a736beddc7844538be390c18b7c4361", + "name": "Easel-b", + "bitmapResolution": 1, + "md5ext": "6a736beddc7844538be390c18b7c4361.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 95 + }, + { + "assetId": "caec09682a7fcdffef4647e8355ba004", + "name": "Easel-c", + "bitmapResolution": 1, + "md5ext": "caec09682a7fcdffef4647e8355ba004.svg", + "dataFormat": "svg", + "rotationCenterX": 68, + "rotationCenterY": 94 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Egg", - "md5": "6f1a24a63d16c45425aa2eb64934a278.svg", - "type": "sprite", "tags": [ "food", "breakfast", "alex eben meyer" ], - "info": [ - 0, - 6, - 1 - ], - "json": { - "objName": "Egg", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "egg-a", - "baseLayerID": -1, - "baseLayerMD5": "6f1a24a63d16c45425aa2eb64934a278.svg", - "bitmapResolution": 1, - "rotationCenterX": 18, - "rotationCenterY": 26 - }, - { - "costumeName": "egg-b", - "baseLayerID": -1, - "baseLayerMD5": "7f1320549dd8bfd596c52aec02d898ce.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 27 - }, - { - "costumeName": "egg-c", - "baseLayerID": -1, - "baseLayerMD5": "62ed6f412aae07a575faa51451009168.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 27 - }, - { - "costumeName": "egg-d", - "baseLayerID": -1, - "baseLayerMD5": "0dce0615471ebf1bebc3ba8b4bebbd18.svg", - "bitmapResolution": 1, - "rotationCenterX": 19, - "rotationCenterY": 27 - }, - { - "costumeName": "egg-e", - "baseLayerID": -1, - "baseLayerMD5": "3848cf5708b7c712bb7bb9bbcce636aa.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 26 - }, - { - "costumeName": "egg-f", - "baseLayerID": -1, - "baseLayerMD5": "0f7e63d9f23038a5012409af93c8dfad.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 26 - } - ], - "currentCostumeIndex": 0, - "scratchX": -102, - "scratchY": 53, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f8ee449298c1446cb0ef281923a4e57a", + "name": "egg-a", + "bitmapResolution": 1, + "md5ext": "f8ee449298c1446cb0ef281923a4e57a.svg", + "dataFormat": "svg", + "rotationCenterX": 18, + "rotationCenterY": 26 + }, + { + "assetId": "fbc629c3b062423e8c09cfacfb1e65f8", + "name": "egg-b", + "bitmapResolution": 1, + "md5ext": "fbc629c3b062423e8c09cfacfb1e65f8.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 27 + }, + { + "assetId": "0d127490af16f8a4ca5ce3212b2391c2", + "name": "egg-c", + "bitmapResolution": 1, + "md5ext": "0d127490af16f8a4ca5ce3212b2391c2.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 27 + }, + { + "assetId": "b0b6e88ec64b842398200bab562b53e3", + "name": "egg-d", + "bitmapResolution": 1, + "md5ext": "b0b6e88ec64b842398200bab562b53e3.svg", + "dataFormat": "svg", + "rotationCenterX": 19, + "rotationCenterY": 27 + }, + { + "assetId": "41535b4742f40e2630746b0c4bec98f2", + "name": "egg-e", + "bitmapResolution": 1, + "md5ext": "41535b4742f40e2630746b0c4bec98f2.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 26 + }, + { + "assetId": "bb0505b802140a8cc200c9f8bfce4503", + "name": "egg-f", + "bitmapResolution": 1, + "md5ext": "bb0505b802140a8cc200c9f8bfce4503.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 26 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Elephant", - "md5": "b3515b3805938b0fae4e527aa0b4524e.svg", - "type": "sprite", "tags": [ "animals", "mammals", "pachydermata" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Elephant", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "elephant-a", - "baseLayerID": -1, - "baseLayerMD5": "b3515b3805938b0fae4e527aa0b4524e.svg", - "bitmapResolution": 1, - "rotationCenterX": 107, - "rotationCenterY": 33 - }, - { - "costumeName": "elephant-b", - "baseLayerID": -1, - "baseLayerMD5": "bce91fa266220d3679a4c19c4e38b1f7.svg", - "bitmapResolution": 1, - "rotationCenterX": 95, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": -51, - "scratchY": -17, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b59873e9558c1c456200f50e5ab34770", + "name": "elephant-a", + "bitmapResolution": 1, + "md5ext": "b59873e9558c1c456200f50e5ab34770.svg", + "dataFormat": "svg", + "rotationCenterX": 107, + "rotationCenterY": 33 + }, + { + "assetId": "2c9b5e0125d95b8bc511f6bb09b5ea2f", + "name": "elephant-b", + "bitmapResolution": 1, + "md5ext": "2c9b5e0125d95b8bc511f6bb09b5ea2f.svg", + "dataFormat": "svg", + "rotationCenterX": 95, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Elf", - "md5": "00748a750dc4fd754ce4debb5e3595c0.svg", - "type": "sprite", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Elf", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "elf-a", - "baseLayerID": -1, - "baseLayerMD5": "00748a750dc4fd754ce4debb5e3595c0.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 140 - }, - { - "costumeName": "elf-b", - "baseLayerID": -1, - "baseLayerMD5": "91815a19569ef9f0ef68bca56bb80446.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 140 - }, - { - "costumeName": "elf-c", - "baseLayerID": -1, - "baseLayerMD5": "8153eaf84bc3db9a671cafd34506243b.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 140 - }, - { - "costumeName": "elf-d", - "baseLayerID": -1, - "baseLayerMD5": "2432797fc69a62fc643505b0ba039169.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 140 - }, - { - "costumeName": "elf-e", - "baseLayerID": -1, - "baseLayerMD5": "a06e6c93b143ae2a7b776bd1deee6b59.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 140 - } - ], - "currentCostumeIndex": 0, - "scratchX": 39, - "scratchY": -15, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e92abad171396a3198455df8557802e5", + "name": "elf-a", + "bitmapResolution": 1, + "md5ext": "e92abad171396a3198455df8557802e5.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 140 + }, + { + "assetId": "92ff640b911a8348d2734c0e38bba68c", + "name": "elf-b", + "bitmapResolution": 1, + "md5ext": "92ff640b911a8348d2734c0e38bba68c.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 140 + }, + { + "assetId": "524406c2b1fe253c1565ff516309817e", + "name": "elf-c", + "bitmapResolution": 1, + "md5ext": "524406c2b1fe253c1565ff516309817e.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 140 + }, + { + "assetId": "808c6fa2eb1cba0de1d17b18c6f41279", + "name": "elf-d", + "bitmapResolution": 1, + "md5ext": "808c6fa2eb1cba0de1d17b18c6f41279.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 140 + }, + { + "assetId": "ec458328a85f89f06866e2337076ac0a", + "name": "elf-e", + "bitmapResolution": 1, + "md5ext": "ec458328a85f89f06866e2337076ac0a.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 140 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Fairy", - "md5": "fe97687c7f1b747bb6f41c252cc5926a.svg", - "type": "sprite", "tags": [ "fantasy", "people", "ipzy", "emotions" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Fairy", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "fairy-a", - "baseLayerID": -1, - "baseLayerMD5": "fe97687c7f1b747bb6f41c252cc5926a.svg", - "bitmapResolution": 1, - "rotationCenterX": 85, - "rotationCenterY": 140 - }, - { - "costumeName": "fairy-b", - "baseLayerID": -1, - "baseLayerMD5": "c8e0d935b2e4372ecc813705a79be3eb.svg", - "bitmapResolution": 1, - "rotationCenterX": 85, - "rotationCenterY": 140 - }, - { - "costumeName": "fairy-c", - "baseLayerID": -1, - "baseLayerMD5": "4d0740d1b5be93256ad235062daa876b.svg", - "bitmapResolution": 1, - "rotationCenterX": 85, - "rotationCenterY": 140 - }, - { - "costumeName": "fairy-d", - "baseLayerID": -1, - "baseLayerMD5": "ca555dadd377431e38a3bc67ece4d36a.svg", - "bitmapResolution": 1, - "rotationCenterX": 85, - "rotationCenterY": 140 - }, - { - "costumeName": "fairy-e", - "baseLayerID": -1, - "baseLayerMD5": "a681f6d6044abdebcdd6634ce85da484.svg", - "bitmapResolution": 1, - "rotationCenterX": 85, - "rotationCenterY": 140 - } - ], - "currentCostumeIndex": 0, - "scratchX": -24, - "scratchY": -21, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "40d726e17bfd2ffeb8c0aa5393ee1c77", + "name": "fairy-a", + "bitmapResolution": 1, + "md5ext": "40d726e17bfd2ffeb8c0aa5393ee1c77.svg", + "dataFormat": "svg", + "rotationCenterX": 85, + "rotationCenterY": 140 + }, + { + "assetId": "bea920473027f43e04c44e588c6cc39a", + "name": "fairy-b", + "bitmapResolution": 1, + "md5ext": "bea920473027f43e04c44e588c6cc39a.svg", + "dataFormat": "svg", + "rotationCenterX": 85, + "rotationCenterY": 140 + }, + { + "assetId": "d4f6163a1610243f55dd9cf1c9875c61", + "name": "fairy-c", + "bitmapResolution": 1, + "md5ext": "d4f6163a1610243f55dd9cf1c9875c61.svg", + "dataFormat": "svg", + "rotationCenterX": 85, + "rotationCenterY": 140 + }, + { + "assetId": "902350bba0d4b4612db1e2e902b6f201", + "name": "fairy-d", + "bitmapResolution": 1, + "md5ext": "902350bba0d4b4612db1e2e902b6f201.svg", + "dataFormat": "svg", + "rotationCenterX": 85, + "rotationCenterY": 140 + }, + { + "assetId": "decd31f829032b1d4dcf5efdbd362cb9", + "name": "fairy-e", + "bitmapResolution": 1, + "md5ext": "decd31f829032b1d4dcf5efdbd362cb9.svg", + "dataFormat": "svg", + "rotationCenterX": 85, + "rotationCenterY": 140 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Fish", - "md5": "8598752b1b7b9892c23817c4ed848e7d.svg", - "type": "sprite", "tags": [ "animals", "ocean", @@ -5856,136 +5083,113 @@ "underwater", "daria skrybchencko" ], - "info": [ - 0, - 4, - 2 - ], - "json": { - "objName": "Fish", - "sounds": [ - { - "soundName": "bubbles", - "soundID": -1, - "md5": "78b0be9c9c2f664158b886bc7e794095.wav", - "sampleCount": 45056, - "rate": 11025, - "format": "" - }, - { - "soundName": "ocean wave", - "soundID": -1, - "md5": "c904610d770398b98872a708a2f75611.wav", - "sampleCount": 99206, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "fish-a", - "baseLayerID": -1, - "baseLayerMD5": "8598752b1b7b9892c23817c4ed848e7d.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 45 - }, - { - "costumeName": "fish-b", - "baseLayerID": -1, - "baseLayerMD5": "52032e4310f9855b89f873b528a5e928.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 45 - }, - { - "costumeName": "fish-c", - "baseLayerID": -1, - "baseLayerMD5": "06c139dcfe45bf31ef45e7030b77dc36.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 45 - }, - { - "costumeName": "fish-d", - "baseLayerID": -1, - "baseLayerMD5": "6a3a2c97374c157e0dbc0a03c2079284.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 45 - } - ], - "currentCostumeIndex": 0, - "scratchX": 38, - "scratchY": -53, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a9b3d163756621f8395592ad77fb9369", + "name": "fish-a", + "bitmapResolution": 1, + "md5ext": "a9b3d163756621f8395592ad77fb9369.svg", + "dataFormat": "svg", + "rotationCenterX": 63, + "rotationCenterY": 45 + }, + { + "assetId": "7a0c31c0087f342867d4754f8dc57541", + "name": "fish-b", + "bitmapResolution": 1, + "md5ext": "7a0c31c0087f342867d4754f8dc57541.svg", + "dataFormat": "svg", + "rotationCenterX": 63, + "rotationCenterY": 45 + }, + { + "assetId": "4a3478b3cdc3e8688a671be88c2775fd", + "name": "fish-c", + "bitmapResolution": 1, + "md5ext": "4a3478b3cdc3e8688a671be88c2775fd.svg", + "dataFormat": "svg", + "rotationCenterX": 63, + "rotationCenterY": 45 + }, + { + "assetId": "886e0bb732453eb8d3a849b4eab54943", + "name": "fish-d", + "bitmapResolution": 1, + "md5ext": "886e0bb732453eb8d3a849b4eab54943.svg", + "dataFormat": "svg", + "rotationCenterX": 63, + "rotationCenterY": 45 + } + ], + "sounds": [ + { + "assetId": "78b0be9c9c2f664158b886bc7e794095", + "name": "bubbles", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 180224, + "md5ext": "78b0be9c9c2f664158b886bc7e794095.wav" + }, + { + "assetId": "c904610d770398b98872a708a2f75611", + "name": "ocean wave", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 99569, + "md5ext": "c904610d770398b98872a708a2f75611.wav" + } + ], + "blocks": {} }, { "name": "Fishbowl", - "md5": "9d1013e04ca7425f680a4b4e6dd6ede6.svg", - "type": "sprite", "tags": [ "fishbowl", "fish", "animals", "pet" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Fishbowl", - "sounds": [ - { - "soundName": "water drop", - "soundID": -1, - "md5": "aa488de9e2c871e9d4faecd246ed737a.wav", - "sampleCount": 8136, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "Fishbowl-a", - "baseLayerID": -1, - "baseLayerMD5": "9d1013e04ca7425f680a4b4e6dd6ede6.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 24 - }, - { - "costumeName": "Fishbowl-b", - "baseLayerID": -1, - "baseLayerMD5": "0bbfc827e8d2f3da6db82efe95563f93.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -34, - "scratchY": 74, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "17c53cf0296f24722ba5b001d513e58f", + "name": "Fishbowl-a", + "bitmapResolution": 1, + "md5ext": "17c53cf0296f24722ba5b001d513e58f.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 24 + }, + { + "assetId": "b3db01c5cda32fe3ea0b48dde5fa8130", + "name": "Fishbowl-b", + "bitmapResolution": 1, + "md5ext": "b3db01c5cda32fe3ea0b48dde5fa8130.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "aa488de9e2c871e9d4faecd246ed737a", + "name": "water drop", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "aa488de9e2c871e9d4faecd246ed737a.wav" + } + ], + "blocks": {} }, { "name": "Food Truck", - "md5": "b30ec8ff043e0f1747591d564d56d7fa.svg", - "type": "sprite", "tags": [ "city", "truck", @@ -5993,242 +5197,193 @@ "food", "car" ], - "info": [ - 0, - 3, - 3 - ], - "json": { - "objName": "Food Truck", - "sounds": [ - { - "soundName": "car horn", - "soundID": -1, - "md5": "7c887f6a2ecd1cdb85d5527898d7f7a0.wav", - "sampleCount": 42443, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "clown honk", - "soundID": -1, - "md5": "ec66961f188e9b8a9c75771db744d096.wav", - "sampleCount": 9009, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "car vroom", - "soundID": -1, - "md5": "ead1da4a87ff6cb53441142f7ac37b8f.wav", - "sampleCount": 43358, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "Food Truck-a", - "baseLayerID": -1, - "baseLayerMD5": "b30ec8ff043e0f1747591d564d56d7fa.svg", - "bitmapResolution": 1, - "rotationCenterX": 121, - "rotationCenterY": 125 - }, - { - "costumeName": "Food Truck-b", - "baseLayerID": -1, - "baseLayerMD5": "afd51531621d2b33869b47342311b363.svg", - "bitmapResolution": 1, - "rotationCenterX": 121, - "rotationCenterY": 101 - }, - { - "costumeName": "Food Truck-c", - "baseLayerID": -1, - "baseLayerMD5": "42f88485a25bf9a683d28957db9f969f.svg", - "bitmapResolution": 1, - "rotationCenterX": 121, - "rotationCenterY": 92 - } - ], - "currentCostumeIndex": 0, - "scratchX": -50, - "scratchY": -54, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a77f9693f87288d023a4632cf019776e", + "name": "Food Truck-a", + "bitmapResolution": 1, + "md5ext": "a77f9693f87288d023a4632cf019776e.svg", + "dataFormat": "svg", + "rotationCenterX": 120.82215422900005, + "rotationCenterY": 123.2192 + }, + { + "assetId": "f4150de2297a63c3efd125c8e12dd7cc", + "name": "Food Truck-b", + "bitmapResolution": 1, + "md5ext": "f4150de2297a63c3efd125c8e12dd7cc.svg", + "dataFormat": "svg", + "rotationCenterX": 120.82199999999996, + "rotationCenterY": 100.675 + }, + { + "assetId": "e850e3c93de767519f7f78b38f16ed1d", + "name": "Food Truck-c", + "bitmapResolution": 1, + "md5ext": "e850e3c93de767519f7f78b38f16ed1d.svg", + "dataFormat": "svg", + "rotationCenterX": 120.82199999999996, + "rotationCenterY": 91.45043052455627 + } + ], + "sounds": [ + { + "assetId": "7c887f6a2ecd1cdb85d5527898d7f7a0", + "name": "car horn", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 42673, + "md5ext": "7c887f6a2ecd1cdb85d5527898d7f7a0.wav" + }, + { + "assetId": "ec66961f188e9b8a9c75771db744d096", + "name": "clown honk", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 9145, + "md5ext": "ec66961f188e9b8a9c75771db744d096.wav" + }, + { + "assetId": "ead1da4a87ff6cb53441142f7ac37b8f", + "name": "car vroom", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "ead1da4a87ff6cb53441142f7ac37b8f.wav" + } + ], + "blocks": {} }, { "name": "Football", - "md5": "7ee31371b2eafba57cc5a78fc1a787fe.png", - "type": "sprite", "tags": [ "people", "sports" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Football", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "football running", - "baseLayerID": -1, - "baseLayerMD5": "7ee31371b2eafba57cc5a78fc1a787fe.png", - "bitmapResolution": 2, - "rotationCenterX": 92, - "rotationCenterY": 200 - }, - { - "costumeName": "football standing", - "baseLayerID": -1, - "baseLayerMD5": "c717def72c8bd98749284d31b51d7097.png", - "bitmapResolution": 2, - "rotationCenterX": 74, - "rotationCenterY": 200 - } - ], - "currentCostumeIndex": 0, - "scratchX": -41, - "scratchY": -39, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "7ee31371b2eafba57cc5a78fc1a787fe", + "name": "football running", + "bitmapResolution": 2, + "md5ext": "7ee31371b2eafba57cc5a78fc1a787fe.png", + "dataFormat": "png", + "rotationCenterX": 92, + "rotationCenterY": 200 + }, + { + "assetId": "c717def72c8bd98749284d31b51d7097", + "name": "football standing", + "bitmapResolution": 2, + "md5ext": "c717def72c8bd98749284d31b51d7097.png", + "dataFormat": "png", + "rotationCenterX": 74, + "rotationCenterY": 200 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Fortune Cookie", - "md5": "c56dcaa1fa4e3c9740142b93d5982850.png", - "type": "sprite", "tags": [ "food" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Fortune Cookie", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "fortune cookie", - "baseLayerID": -1, - "baseLayerMD5": "c56dcaa1fa4e3c9740142b93d5982850.png", - "bitmapResolution": 2, - "rotationCenterX": 60, - "rotationCenterY": 62 - } - ], - "currentCostumeIndex": 0, - "scratchX": -5, - "scratchY": -46, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c56dcaa1fa4e3c9740142b93d5982850", + "name": "fortune cookie", + "bitmapResolution": 2, + "md5ext": "c56dcaa1fa4e3c9740142b93d5982850.png", + "dataFormat": "png", + "rotationCenterX": 60, + "rotationCenterY": 62 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Fox", - "md5": "0aef4633e8580e209020b054eb55982f.svg", - "type": "sprite", "tags": [ "animals", "mammal", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Fox", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "fox-a", - "baseLayerID": -1, - "baseLayerMD5": "0aef4633e8580e209020b054eb55982f.svg", - "bitmapResolution": 1, - "rotationCenterX": 86, - "rotationCenterY": 44 - }, - { - "costumeName": "fox-b", - "baseLayerID": -1, - "baseLayerMD5": "ae0bb1b900e853ddc8820e0c7bd60f53.svg", - "bitmapResolution": 1, - "rotationCenterX": 44, - "rotationCenterY": 50 - }, - { - "costumeName": "fox-c", - "baseLayerID": -1, - "baseLayerMD5": "3cc3761cbabdcf13dbfdf04048bfbccf.svg", - "bitmapResolution": 1, - "rotationCenterX": 48, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": 32, - "scratchY": -124, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9dd59a4514b5373d4f665db78e145636", + "name": "fox-a", + "bitmapResolution": 1, + "md5ext": "9dd59a4514b5373d4f665db78e145636.svg", + "dataFormat": "svg", + "rotationCenterX": 86, + "rotationCenterY": 44 + }, + { + "assetId": "2c256eacbb753be361e8e52a0eefde77", + "name": "fox-b", + "bitmapResolution": 1, + "md5ext": "2c256eacbb753be361e8e52a0eefde77.svg", + "dataFormat": "svg", + "rotationCenterX": 44, + "rotationCenterY": 50 + }, + { + "assetId": "dd398ed81edb60c91ad4805f4437d2fa", + "name": "fox-c", + "bitmapResolution": 1, + "md5ext": "dd398ed81edb60c91ad4805f4437d2fa.svg", + "dataFormat": "svg", + "rotationCenterX": 48, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Frank", - "md5": "8ebcc9a619ae0455df9da42d39f59c1d.svg", - "type": "sprite", "tags": [ "fantasy", "spooky", @@ -6238,72 +5393,61 @@ "monster", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Frank", - "sounds": [ - { - "soundName": "wolf howl", - "soundID": -1, - "md5": "5e36d74bb16aa5085b901362788b0fbf.wav", - "sampleCount": 43008, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "frank-a", - "baseLayerID": -1, - "baseLayerMD5": "8ebcc9a619ae0455df9da42d39f59c1d.svg", - "bitmapResolution": 1, - "rotationCenterX": 97, - "rotationCenterY": 63 - }, - { - "costumeName": "frank-b", - "baseLayerID": -1, - "baseLayerMD5": "e605b9d87181c52825ae21597c9c1e07.svg", - "bitmapResolution": 1, - "rotationCenterX": 105, - "rotationCenterY": 63 - }, - { - "costumeName": "frank-c", - "baseLayerID": -1, - "baseLayerMD5": "a53378250f07b6dad161516a5317277e.svg", - "bitmapResolution": 1, - "rotationCenterX": 159, - "rotationCenterY": 59 - }, - { - "costumeName": "frank-d", - "baseLayerID": -1, - "baseLayerMD5": "44b4ba838b60f14d6e7ebddf5df4d4c4.svg", - "bitmapResolution": 1, - "rotationCenterX": 106, - "rotationCenterY": 107 - } - ], - "currentCostumeIndex": 0, - "scratchX": -115, - "scratchY": -46, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "10d39bb7e31647a465e747cd243b8cd0", + "name": "frank-a", + "bitmapResolution": 1, + "md5ext": "10d39bb7e31647a465e747cd243b8cd0.svg", + "dataFormat": "svg", + "rotationCenterX": 97, + "rotationCenterY": 63 + }, + { + "assetId": "e56e930cc0229d1042a673e7503209c5", + "name": "frank-b", + "bitmapResolution": 1, + "md5ext": "e56e930cc0229d1042a673e7503209c5.svg", + "dataFormat": "svg", + "rotationCenterX": 105, + "rotationCenterY": 63 + }, + { + "assetId": "26da9617218493f4f42a1592f21afee8", + "name": "frank-c", + "bitmapResolution": 1, + "md5ext": "26da9617218493f4f42a1592f21afee8.svg", + "dataFormat": "svg", + "rotationCenterX": 159, + "rotationCenterY": 59 + }, + { + "assetId": "d16b76a634f7367ce7d6112401a78e57", + "name": "frank-d", + "bitmapResolution": 1, + "md5ext": "d16b76a634f7367ce7d6112401a78e57.svg", + "dataFormat": "svg", + "rotationCenterX": 106, + "rotationCenterY": 107 + } + ], + "sounds": [ + { + "assetId": "5e36d74bb16aa5085b901362788b0fbf", + "name": "wolf howl", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 172032, + "md5ext": "5e36d74bb16aa5085b901362788b0fbf.wav" + } + ], + "blocks": {} }, { "name": "Frog", - "md5": "285483a688eed2ff8010c65112f99c41.svg", - "type": "sprite", "tags": [ "animals", "amphibian", @@ -6312,48 +5456,34 @@ "green", "wart" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Frog", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "frog", - "baseLayerID": -1, - "baseLayerMD5": "285483a688eed2ff8010c65112f99c41.svg", - "bitmapResolution": 1, - "rotationCenterX": 48, - "rotationCenterY": 30 - } - ], - "currentCostumeIndex": 0, - "scratchX": -19, - "scratchY": -11, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "390845c11df0924f3b627bafeb3f814e", + "name": "frog", + "bitmapResolution": 1, + "md5ext": "390845c11df0924f3b627bafeb3f814e.svg", + "dataFormat": "svg", + "rotationCenterX": 48, + "rotationCenterY": 30 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Frog 2 ", - "md5": "07160d455202e95f5b4b5c842eff6788.svg", - "type": "sprite", "tags": [ "animals", "insect", @@ -6361,155 +5491,115 @@ "wetland", "owen davey" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Frog 2 ", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Frog 2-a", - "baseLayerID": -1, - "baseLayerMD5": "07160d455202e95f5b4b5c842eff6788.svg", - "bitmapResolution": 1, - "rotationCenterX": 101, - "rotationCenterY": 60 - }, - { - "costumeName": "Frog 2-b", - "baseLayerID": -1, - "baseLayerMD5": "9663ddb4d100eb4e18702ee13eca835e.svg", - "bitmapResolution": 1, - "rotationCenterX": 101, - "rotationCenterY": 58 - }, - { - "costumeName": "Frog 2-c", - "baseLayerID": -1, - "baseLayerMD5": "5c2ec9de8d1695cd4b59beea45046560.svg", - "bitmapResolution": 1, - "rotationCenterX": 96, - "rotationCenterY": 87 - } - ], - "currentCostumeIndex": 0, - "scratchX": -19, - "scratchY": -6, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f2246c13e4540472c484119bc314d954", + "name": "Frog 2-a", + "bitmapResolution": 1, + "md5ext": "f2246c13e4540472c484119bc314d954.svg", + "dataFormat": "svg", + "rotationCenterX": 101, + "rotationCenterY": 60 + }, + { + "assetId": "d9f69469090784d8dd68d94c0fd78a50", + "name": "Frog 2-b", + "bitmapResolution": 1, + "md5ext": "d9f69469090784d8dd68d94c0fd78a50.svg", + "dataFormat": "svg", + "rotationCenterX": 101, + "rotationCenterY": 58 + }, + { + "assetId": "0717f446c991aac7df2fe4d6590354e7", + "name": "Frog 2-c", + "bitmapResolution": 1, + "md5ext": "0717f446c991aac7df2fe4d6590354e7.svg", + "dataFormat": "svg", + "rotationCenterX": 96, + "rotationCenterY": 87 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Fruit Platter", - "md5": "6c3252378da3334f63eebddbed3fae91.png", - "type": "sprite", "tags": [ "food" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Fruit Platter", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "fruit platter", - "baseLayerID": -1, - "baseLayerMD5": "6c3252378da3334f63eebddbed3fae91.png", - "bitmapResolution": 2, - "rotationCenterX": 148, - "rotationCenterY": 78 - } - ], - "currentCostumeIndex": 0, - "scratchX": -24, - "scratchY": 7, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6c3252378da3334f63eebddbed3fae91", + "name": "fruit platter", + "bitmapResolution": 2, + "md5ext": "6c3252378da3334f63eebddbed3fae91.png", + "dataFormat": "png", + "rotationCenterX": 148, + "rotationCenterY": 78 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Fruit Salad", - "md5": "dbf8cc34f7ca18b4a008d2890dba56b7.svg", - "type": "sprite", "tags": [ "food", "fruit" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Fruit Salad", - "sounds": [ - { - "soundName": "Chomp", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "fruitsalad", - "baseLayerID": -1, - "baseLayerMD5": "dbf8cc34f7ca18b4a008d2890dba56b7.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 22 - } - ], - "currentCostumeIndex": 0, - "scratchX": 27, - "scratchY": 0, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2e6ef315101433b78e38719e8cc630c2", + "name": "fruitsalad", + "bitmapResolution": 1, + "md5ext": "2e6ef315101433b78e38719e8cc630c2.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 22 + } + ], + "sounds": [ + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "Chomp", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + } + ], + "blocks": {} }, { "name": "Ghost", - "md5": "fca9fdf3ec9aafcfbd915105fecb6ce6.svg", - "type": "sprite", "tags": [ "fantasy", "spooky", @@ -6518,662 +5608,546 @@ "monster", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Ghost", - "sounds": [ - { - "soundName": "space ripple", - "soundID": -1, - "md5": "ff8b8c3bf841a11fd5fe3afaa92be1b5.wav", - "sampleCount": 41149, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "ghost-a", - "baseLayerID": -1, - "baseLayerMD5": "fca9fdf3ec9aafcfbd915105fecb6ce6.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 68 - }, - { - "costumeName": "ghost-b", - "baseLayerID": -1, - "baseLayerMD5": "9d6e168d234d023476324cb72430e645.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 68 - }, - { - "costumeName": "ghost-c", - "baseLayerID": -1, - "baseLayerMD5": "8296c8aa0782b53c5188dabde5fce10f.svg", - "bitmapResolution": 1, - "rotationCenterX": 61, - "rotationCenterY": 72 - }, - { - "costumeName": "ghost-d", - "baseLayerID": -1, - "baseLayerMD5": "2a3c6eb1faa6b2e4403c64945d59e122.svg", - "bitmapResolution": 1, - "rotationCenterX": 78, - "rotationCenterY": 69 - } - ], - "currentCostumeIndex": 0, - "scratchX": 42, - "scratchY": 27, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f522b08c5757569ad289d67bce290cd0", + "name": "ghost-a", + "bitmapResolution": 1, + "md5ext": "f522b08c5757569ad289d67bce290cd0.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 68 + }, + { + "assetId": "d1d89391f1d9c74557e504456d58a002", + "name": "ghost-b", + "bitmapResolution": 1, + "md5ext": "d1d89391f1d9c74557e504456d58a002.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 68 + }, + { + "assetId": "634744e3f98bee53e9cb477a63aa9b21", + "name": "ghost-c", + "bitmapResolution": 1, + "md5ext": "634744e3f98bee53e9cb477a63aa9b21.svg", + "dataFormat": "svg", + "rotationCenterX": 61, + "rotationCenterY": 72 + }, + { + "assetId": "40ba3a0b5b3899a655fd8867229d4ee3", + "name": "ghost-d", + "bitmapResolution": 1, + "md5ext": "40ba3a0b5b3899a655fd8867229d4ee3.svg", + "dataFormat": "svg", + "rotationCenterX": 78, + "rotationCenterY": 69 + } + ], + "sounds": [ + { + "assetId": "ff8b8c3bf841a11fd5fe3afaa92be1b5", + "name": "space ripple", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 164596, + "md5ext": "ff8b8c3bf841a11fd5fe3afaa92be1b5.wav" + } + ], + "blocks": {} }, { "name": "Gift", - "md5": "abeae2217b3ce67b1ff761cd7a89274d.svg", - "type": "sprite", "tags": [ "thing", "holiday" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Gift", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "gift-a", - "baseLayerID": -1, - "baseLayerMD5": "abeae2217b3ce67b1ff761cd7a89274d.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 25 - }, - { - "costumeName": "gift-b", - "baseLayerID": -1, - "baseLayerMD5": "5cae973c98f2d98b51e6c6b3c9602f8c.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 26 - } - ], - "currentCostumeIndex": 0, - "scratchX": 26, - "scratchY": 28, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0fdd104de718c5fc4a65da429468bdbd", + "name": "gift-a", + "bitmapResolution": 1, + "md5ext": "0fdd104de718c5fc4a65da429468bdbd.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 25 + }, + { + "assetId": "6cbeda5d391c6d107f0b853222f344d9", + "name": "gift-b", + "bitmapResolution": 1, + "md5ext": "6cbeda5d391c6d107f0b853222f344d9.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 26 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Giga", - "md5": "93cb048a1d199f92424b9c097fa5fa38.svg", - "type": "sprite", "tags": [ "fantasy", "drawing" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Giga", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "giga-a", - "baseLayerID": -1, - "baseLayerMD5": "93cb048a1d199f92424b9c097fa5fa38.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 96 - }, - { - "costumeName": "giga-b", - "baseLayerID": -1, - "baseLayerMD5": "528613711a7eae3a929025be04db081c.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 96 - }, - { - "costumeName": "giga-c", - "baseLayerID": -1, - "baseLayerMD5": "ee4dd21d7ca6d1b889ee25d245cbcc66.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 96 - }, - { - "costumeName": "giga-d", - "baseLayerID": -1, - "baseLayerMD5": "7708e2d9f83a01476ee6d17aa540ddf1.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 96 - } - ], - "currentCostumeIndex": 0, - "scratchX": 36, - "scratchY": 20, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "92161a11e851ecda94cbbb985018fed6", + "name": "giga-a", + "bitmapResolution": 1, + "md5ext": "92161a11e851ecda94cbbb985018fed6.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 96 + }, + { + "assetId": "bc706a7648342aaacac9050378b40c43", + "name": "giga-b", + "bitmapResolution": 1, + "md5ext": "bc706a7648342aaacac9050378b40c43.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 96 + }, + { + "assetId": "337b338b2b10176221e638ac537854e6", + "name": "giga-c", + "bitmapResolution": 1, + "md5ext": "337b338b2b10176221e638ac537854e6.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 96 + }, + { + "assetId": "db15886cfdcb5e2f4459e9074e3990a1", + "name": "giga-d", + "bitmapResolution": 1, + "md5ext": "db15886cfdcb5e2f4459e9074e3990a1.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 96 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Giga Walking", - "md5": "f76bc420011db2cdb2de378c1536f6da.svg", - "type": "sprite", "tags": [ "fantasy", "walking" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Giga Walking", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Giga walk1", - "baseLayerID": -1, - "baseLayerMD5": "f76bc420011db2cdb2de378c1536f6da.svg", - "bitmapResolution": 1, - "rotationCenterX": 70, - "rotationCenterY": 107 - }, - { - "costumeName": "Giga walk2", - "baseLayerID": -1, - "baseLayerMD5": "43b5874e8a54f93bd02727f0abf6905b.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 107 - }, - { - "costumeName": "Giga walk3", - "baseLayerID": -1, - "baseLayerMD5": "9aab3bbb375765391978be4f6d478ab3.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 107 - } - ], - "currentCostumeIndex": 0, - "scratchX": 160, - "scratchY": -114, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3afad833094d8dff1c4ff79edcaa13d0", + "name": "Giga walk1", + "bitmapResolution": 1, + "md5ext": "3afad833094d8dff1c4ff79edcaa13d0.svg", + "dataFormat": "svg", + "rotationCenterX": 70, + "rotationCenterY": 107 + }, + { + "assetId": "d27716e022fb5f747d7b09fe6eeeca06", + "name": "Giga walk2", + "bitmapResolution": 1, + "md5ext": "d27716e022fb5f747d7b09fe6eeeca06.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 107 + }, + { + "assetId": "db55131bf54f96e8986d9b30730e42ce", + "name": "Giga walk3", + "bitmapResolution": 1, + "md5ext": "db55131bf54f96e8986d9b30730e42ce.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 107 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Giraffe", - "md5": "2d3955997d2b3aa8dad9389c61de384f.svg", - "type": "sprite", "tags": [ "animals", "savanna", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Giraffe", - "sounds": [ - { - "soundName": "horse gallop", - "soundID": -1, - "md5": "058a34b5fb8b57178b5322d994b6b8c8.wav", - "sampleCount": 38336, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "giraffe-a", - "baseLayerID": -1, - "baseLayerMD5": "2d3955997d2b3aa8dad9389c61de384f.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 132 - }, - { - "costumeName": "giraffe-b", - "baseLayerID": -1, - "baseLayerMD5": "b129c6016fedc7d03fb7f0a06363af28.svg", - "bitmapResolution": 1, - "rotationCenterX": 82, - "rotationCenterY": 132 - }, - { - "costumeName": "giraffe-c", - "baseLayerID": -1, - "baseLayerMD5": "1af467957df0350765ba9a10e8d85572.svg", - "bitmapResolution": 1, - "rotationCenterX": 86, - "rotationCenterY": 132 - } - ], - "currentCostumeIndex": 0, - "scratchX": -130, - "scratchY": 10, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "43e89629fb9df7051eaf307c695424fc", + "name": "giraffe-a", + "bitmapResolution": 1, + "md5ext": "43e89629fb9df7051eaf307c695424fc.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 132 + }, + { + "assetId": "ef1fca2ae13d49d9dd2c6cfc211a687c", + "name": "giraffe-b", + "bitmapResolution": 1, + "md5ext": "ef1fca2ae13d49d9dd2c6cfc211a687c.svg", + "dataFormat": "svg", + "rotationCenterX": 82, + "rotationCenterY": 132 + }, + { + "assetId": "cfd93a103479993aee4d680655e39d8d", + "name": "giraffe-c", + "bitmapResolution": 1, + "md5ext": "cfd93a103479993aee4d680655e39d8d.svg", + "dataFormat": "svg", + "rotationCenterX": 86, + "rotationCenterY": 132 + } + ], + "sounds": [ + { + "assetId": "058a34b5fb8b57178b5322d994b6b8c8", + "name": "horse gallop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 153344, + "md5ext": "058a34b5fb8b57178b5322d994b6b8c8.wav" + } + ], + "blocks": {} }, { "name": "Glass Water", - "md5": "c364b9e1f4bcdc61705032d89eaaa0a1.svg", - "type": "sprite", "tags": [ "food", "things", "underwater" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Glass Water", - "sounds": [ - { - "soundName": "Water Drop", - "soundID": -1, - "md5": "aa488de9e2c871e9d4faecd246ed737a.wav", - "sampleCount": 8136, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "glass water-a", - "baseLayerID": -1, - "baseLayerMD5": "c364b9e1f4bcdc61705032d89eaaa0a1.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 48 - }, - { - "costumeName": "glass water-b", - "baseLayerID": -1, - "baseLayerMD5": "bc07ce6a2004ac91ce704531a1c526e5.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 48 - } - ], - "currentCostumeIndex": 0, - "scratchX": 43, - "scratchY": -10, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "cbf21cf1b057852f91135d27ebbf11ce", + "name": "glass water-a", + "bitmapResolution": 1, + "md5ext": "cbf21cf1b057852f91135d27ebbf11ce.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 48 + }, + { + "assetId": "ca70c69ef1f797d353581a3f76116ae3", + "name": "glass water-b", + "bitmapResolution": 1, + "md5ext": "ca70c69ef1f797d353581a3f76116ae3.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 48 + } + ], + "sounds": [ + { + "assetId": "aa488de9e2c871e9d4faecd246ed737a", + "name": "Water Drop", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "aa488de9e2c871e9d4faecd246ed737a.wav" + } + ], + "blocks": {} }, { "name": "Glasses", - "md5": "f42180039c37c3b221e1e426b92e5092.svg", - "type": "sprite", "tags": [ "fashion", "glasses", "clothing" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Glasses", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "glasses-a", - "baseLayerID": -1, - "baseLayerMD5": "f42180039c37c3b221e1e426b92e5092.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 13 - }, - { - "costumeName": "glasses-b", - "baseLayerID": -1, - "baseLayerMD5": "58b728ee8c1f739e2de13800dee562de.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 14 - }, - { - "costumeName": "glasses-c", - "baseLayerID": -1, - "baseLayerMD5": "d8bf373e1fcbb46f6eb8d225ba01613e.svg", - "bitmapResolution": 1, - "rotationCenterX": 34, - "rotationCenterY": 12 - }, - { - "costumeName": "glasses-e", - "baseLayerID": -1, - "baseLayerMD5": "6b706718a8c350522c3f29fb82b40327.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 53 - } - ], - "currentCostumeIndex": 0, - "scratchX": 39, - "scratchY": 100, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "705035328ac53d5ce1aa5a1ed1c2d172", + "name": "glasses-a", + "bitmapResolution": 1, + "md5ext": "705035328ac53d5ce1aa5a1ed1c2d172.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 13 + }, + { + "assetId": "f2a02d0e7431147b8a4a282e02a8e6a4", + "name": "glasses-b", + "bitmapResolution": 1, + "md5ext": "f2a02d0e7431147b8a4a282e02a8e6a4.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 14 + }, + { + "assetId": "9e2f75d3a09f3f10d554ba8380c3ae52", + "name": "glasses-c", + "bitmapResolution": 1, + "md5ext": "9e2f75d3a09f3f10d554ba8380c3ae52.svg", + "dataFormat": "svg", + "rotationCenterX": 34, + "rotationCenterY": 12 + }, + { + "assetId": "acd85b36e6b8d93ba4194ee2ea334207", + "name": "glasses-e", + "bitmapResolution": 1, + "md5ext": "acd85b36e6b8d93ba4194ee2ea334207.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 53 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Goalie", - "md5": "dbf6a1b0402377be2cd8c75a3b4fdf53.svg", - "type": "sprite", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Goalie", - "sounds": [ - { - "soundName": "cheer", - "soundID": -1, - "md5": "170e05c29d50918ae0b482c2955768c0.wav", - "sampleCount": 108864, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "goalie-a", - "baseLayerID": -1, - "baseLayerMD5": "dbf6a1b0402377be2cd8c75a3b4fdf53.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 63 - }, - { - "costumeName": "goalie-b", - "baseLayerID": -1, - "baseLayerMD5": "987d8c2bb6c26cad265a3aa339fe432e.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 63 - }, - { - "costumeName": "goalie-c", - "baseLayerID": -1, - "baseLayerMD5": "52609ef559a29052e72efe08d1384980.svg", - "bitmapResolution": 1, - "rotationCenterX": 62, - "rotationCenterY": 61 - }, - { - "costumeName": "goalie-d", - "baseLayerID": -1, - "baseLayerMD5": "a4de535b4c4a7c6a65e6736491e01497.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 62 - }, - { - "costumeName": "goalie-e", - "baseLayerID": -1, - "baseLayerMD5": "ca55a23f3172e9fff061484e00493d2c.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 69 - } - ], - "currentCostumeIndex": 0, - "scratchX": -5, - "scratchY": 39, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a554f2a9b49a09ec67d1fd7ecfbcddcd", + "name": "goalie-a", + "bitmapResolution": 1, + "md5ext": "a554f2a9b49a09ec67d1fd7ecfbcddcd.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 63 + }, + { + "assetId": "59eedd0a23c3c983d386a0c125991c7f", + "name": "goalie-b", + "bitmapResolution": 1, + "md5ext": "59eedd0a23c3c983d386a0c125991c7f.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 63 + }, + { + "assetId": "f2e7ba53f3a28c4359cb0d3e3cb4001a", + "name": "goalie-c", + "bitmapResolution": 1, + "md5ext": "f2e7ba53f3a28c4359cb0d3e3cb4001a.svg", + "dataFormat": "svg", + "rotationCenterX": 62, + "rotationCenterY": 61 + }, + { + "assetId": "63f2955298d59dd22dc7b7c6a9c521e2", + "name": "goalie-d", + "bitmapResolution": 1, + "md5ext": "63f2955298d59dd22dc7b7c6a9c521e2.svg", + "dataFormat": "svg", + "rotationCenterX": 63, + "rotationCenterY": 62 + }, + { + "assetId": "eb096e2b4234f5f8ee1f2c44429eaa1a", + "name": "goalie-e", + "bitmapResolution": 1, + "md5ext": "eb096e2b4234f5f8ee1f2c44429eaa1a.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 69 + } + ], + "sounds": [ + { + "assetId": "170e05c29d50918ae0b482c2955768c0", + "name": "cheer", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 109729, + "md5ext": "170e05c29d50918ae0b482c2955768c0.wav" + } + ], + "blocks": {} }, { "name": "Goblin", - "md5": "f10eaedff51f50f0809a7b4b310337fa.svg", - "type": "sprite", "tags": [ "fantasy", "ipzy", "emotions" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Goblin", - "sounds": [ - { - "soundName": "fairydust", - "soundID": -1, - "md5": "b92de59d992a655c1b542223a784cda6.wav", - "sampleCount": 11247, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "goblin-a", - "baseLayerID": -1, - "baseLayerMD5": "f10eaedff51f50f0809a7b4b310337fa.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 80 - }, - { - "costumeName": "goblin-b", - "baseLayerID": -1, - "baseLayerMD5": "71e7c77d89299cd99739b1216fc03a85.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 80 - }, - { - "costumeName": "goblin-c", - "baseLayerID": -1, - "baseLayerMD5": "ab0611427d6f9b54d83672cf9e554876.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 80 - }, - { - "costumeName": "goblin-d", - "baseLayerID": -1, - "baseLayerMD5": "87dd413e7a8545bea9b3da208a5d5735.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 80 - } - ], - "currentCostumeIndex": 0, - "scratchX": 123, - "scratchY": -66, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3f08380f25062b8055a1800f5dad14bd", + "name": "goblin-a", + "bitmapResolution": 1, + "md5ext": "3f08380f25062b8055a1800f5dad14bd.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 80 + }, + { + "assetId": "b8604b8039d6b633015aaf17d74d5d5b", + "name": "goblin-b", + "bitmapResolution": 1, + "md5ext": "b8604b8039d6b633015aaf17d74d5d5b.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 80 + }, + { + "assetId": "2add9ef4eaa25f8915406dcfd8bafc9f", + "name": "goblin-c", + "bitmapResolution": 1, + "md5ext": "2add9ef4eaa25f8915406dcfd8bafc9f.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 80 + }, + { + "assetId": "afb9fe328adae617ee3375366fca02e7", + "name": "goblin-d", + "bitmapResolution": 1, + "md5ext": "afb9fe328adae617ee3375366fca02e7.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 80 + } + ], + "sounds": [ + { + "assetId": "b92de59d992a655c1b542223a784cda6", + "name": "fairydust", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 22494, + "md5ext": "b92de59d992a655c1b542223a784cda6.wav" + } + ], + "blocks": {} }, { "name": "Gobo", - "md5": "1f5ea0d12f85aed2e471cdd21b0bd6d7.svg", - "type": "sprite", "tags": [ "fantasy", "drawing", "jenkins", "ganglia" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Gobo", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "gobo-a", - "baseLayerID": -1, - "baseLayerMD5": "1f5ea0d12f85aed2e471cdd21b0bd6d7.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 55 - }, - { - "costumeName": "gobo-b", - "baseLayerID": -1, - "baseLayerMD5": "73e493e4abd5d0954b677b97abcb7116.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 55 - }, - { - "costumeName": "gobo-c", - "baseLayerID": -1, - "baseLayerMD5": "bc68a6bdf300df7b53d73b38f74c844e.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 55 - } - ], - "currentCostumeIndex": 0, - "scratchX": -33, - "scratchY": 25, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f505a4e9eab5e40e2669a4462dba4c90", + "name": "gobo-a", + "bitmapResolution": 1, + "md5ext": "f505a4e9eab5e40e2669a4462dba4c90.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 55 + }, + { + "assetId": "5c0896569305ab177d87caa31aad2a72", + "name": "gobo-b", + "bitmapResolution": 1, + "md5ext": "5c0896569305ab177d87caa31aad2a72.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 55 + }, + { + "assetId": "9d8021c216fb92cc708e1e96f3ed2b52", + "name": "gobo-c", + "bitmapResolution": 1, + "md5ext": "9d8021c216fb92cc708e1e96f3ed2b52.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 55 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Grasshopper", - "md5": "fcddf46c04479b07b2944ee36d0b7635.svg", - "type": "sprite", "tags": [ "animals", "insect", @@ -7181,597 +6155,533 @@ "wetland", "owen davey" ], - "info": [ - 0, - 6, - 1 - ], - "json": { - "objName": "Grasshopper", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Grasshopper-a", - "baseLayerID": -1, - "baseLayerMD5": "fcddf46c04479b07b2944ee36d0b7635.svg", - "bitmapResolution": 1, - "rotationCenterX": 103, - "rotationCenterY": 43 - }, - { - "costumeName": "Grasshopper-b", - "baseLayerID": -1, - "baseLayerMD5": "40b48bcb95f06a2281ba1cad60c8c504.svg", - "bitmapResolution": 1, - "rotationCenterX": 114, - "rotationCenterY": 118 - }, - { - "costumeName": "Grasshopper-c", - "baseLayerID": -1, - "baseLayerMD5": "fa9a02a4a6df86612365dc65c065d2cb.svg", - "bitmapResolution": 1, - "rotationCenterX": 34, - "rotationCenterY": 170 - }, - { - "costumeName": "Grasshopper-d", - "baseLayerID": -1, - "baseLayerMD5": "f80ba703a7fb17a870ec0818add2f3b8.svg", - "bitmapResolution": 1, - "rotationCenterX": 70, - "rotationCenterY": 100 - }, - { - "costumeName": "Grasshopper-e", - "baseLayerID": -1, - "baseLayerMD5": "6519eeaa65eac086198d6901cf0a5b9e.svg", - "bitmapResolution": 1, - "rotationCenterX": 56, - "rotationCenterY": 86 - }, - { - "costumeName": "Grasshopper-f", - "baseLayerID": -1, - "baseLayerMD5": "8d865e6bbea03cda509d766085b883f4.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 54 - } - ], - "currentCostumeIndex": 0, - "scratchX": -7, - "scratchY": -115, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e7210a370837dd1e4ebc1a56a973b7f6", + "name": "Grasshopper-a", + "bitmapResolution": 1, + "md5ext": "e7210a370837dd1e4ebc1a56a973b7f6.svg", + "dataFormat": "svg", + "rotationCenterX": 103, + "rotationCenterY": 43 + }, + { + "assetId": "529644c5ecdca63adafd87777e341ad7", + "name": "Grasshopper-b", + "bitmapResolution": 1, + "md5ext": "529644c5ecdca63adafd87777e341ad7.svg", + "dataFormat": "svg", + "rotationCenterX": 114, + "rotationCenterY": 118 + }, + { + "assetId": "cf2ac769df444137b4c1eec472fa4b92", + "name": "Grasshopper-c", + "bitmapResolution": 1, + "md5ext": "cf2ac769df444137b4c1eec472fa4b92.svg", + "dataFormat": "svg", + "rotationCenterX": 34, + "rotationCenterY": 170 + }, + { + "assetId": "a7c638b8aa86f2a758830f8c2b0e4cf5", + "name": "Grasshopper-d", + "bitmapResolution": 1, + "md5ext": "a7c638b8aa86f2a758830f8c2b0e4cf5.svg", + "dataFormat": "svg", + "rotationCenterX": 70, + "rotationCenterY": 100 + }, + { + "assetId": "d4f3dfe69be6537e73544381408a820d", + "name": "Grasshopper-e", + "bitmapResolution": 1, + "md5ext": "d4f3dfe69be6537e73544381408a820d.svg", + "dataFormat": "svg", + "rotationCenterX": 56, + "rotationCenterY": 86 + }, + { + "assetId": "93550d8abde130ad149904c4448f8b65", + "name": "Grasshopper-f", + "bitmapResolution": 1, + "md5ext": "93550d8abde130ad149904c4448f8b65.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 54 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Green Flag", - "md5": "173e20ac537d2c278ed621be3db3fc87.svg", - "type": "sprite", "tags": [ "thing" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Green Flag", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "green flag", - "baseLayerID": -1, - "baseLayerMD5": "173e20ac537d2c278ed621be3db3fc87.svg", - "bitmapResolution": 1, - "rotationCenterX": 70, - "rotationCenterY": 30 - } - ], - "currentCostumeIndex": 0, - "scratchX": -36, - "scratchY": 39, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2bbfd072183a67db5eddb923fe0726b3", + "name": "green flag", + "bitmapResolution": 1, + "md5ext": "2bbfd072183a67db5eddb923fe0726b3.svg", + "dataFormat": "svg", + "rotationCenterX": 70, + "rotationCenterY": 30 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Griffin", - "md5": "1ceea469ec409d0a3a13bd04ea1e756c.svg", - "type": "sprite", "tags": [ "fantasy", "animals", "ipzy", "flying" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Griffin", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "Griffin-a", - "baseLayerID": -1, - "baseLayerMD5": "1ceea469ec409d0a3a13bd04ea1e756c.svg", - "bitmapResolution": 1, - "rotationCenterX": 127, - "rotationCenterY": 109 - }, - { - "costumeName": "Griffin-b", - "baseLayerID": -1, - "baseLayerMD5": "1dd10e8e53c048ad6f95c82501801f48.svg", - "bitmapResolution": 1, - "rotationCenterX": 127, - "rotationCenterY": 76 - }, - { - "costumeName": "Griffin-c", - "baseLayerID": -1, - "baseLayerMD5": "e4d7c3c18463f15083683ce0826adcee.svg", - "bitmapResolution": 1, - "rotationCenterX": 127, - "rotationCenterY": 109 - }, - { - "costumeName": "Griffin-d", - "baseLayerID": -1, - "baseLayerMD5": "54504b1d8dedf816b0bd599e768f191d.svg", - "bitmapResolution": 1, - "rotationCenterX": 144, - "rotationCenterY": 69 - } - ], - "currentCostumeIndex": 0, - "scratchX": -18, - "scratchY": -4, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a31166d45903206b52cb0f0a0cb687b5", + "name": "Griffin-a", + "bitmapResolution": 1, + "md5ext": "a31166d45903206b52cb0f0a0cb687b5.svg", + "dataFormat": "svg", + "rotationCenterX": 127, + "rotationCenterY": 109 + }, + { + "assetId": "102f6200c13bd60afa9538c712776fb0", + "name": "Griffin-b", + "bitmapResolution": 1, + "md5ext": "102f6200c13bd60afa9538c712776fb0.svg", + "dataFormat": "svg", + "rotationCenterX": 127, + "rotationCenterY": 76 + }, + { + "assetId": "157d3665cebcd41fa814b9217af99476", + "name": "Griffin-c", + "bitmapResolution": 1, + "md5ext": "157d3665cebcd41fa814b9217af99476.svg", + "dataFormat": "svg", + "rotationCenterX": 127, + "rotationCenterY": 109 + }, + { + "assetId": "b8c8745820a341afec08e77f4a254551", + "name": "Griffin-d", + "bitmapResolution": 1, + "md5ext": "b8c8745820a341afec08e77f4a254551.svg", + "dataFormat": "svg", + "rotationCenterX": 144, + "rotationCenterY": 69 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Guitar", - "md5": "cb8c2a5e69da7538e1dd73cb7ff4a666.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 8 - ], - "json": { - "objName": "Guitar", - "sounds": [ - { - "soundName": "C Guitar", - "soundID": -1, - "md5": "22baa07795a9a524614075cdea543793.wav", - "sampleCount": 44864, - "rate": 22050, - "format": "" - }, - { - "soundName": "D Guitar", - "soundID": -1, - "md5": "2dbcfae6a55738f94bbb40aa5fcbf7ce.wav", - "sampleCount": 41120, - "rate": 22050, - "format": "" - }, - { - "soundName": "E Guitar", - "soundID": -1, - "md5": "4b5d1da83e59bf35578324573c991666.wav", - "sampleCount": 38400, - "rate": 22050, - "format": "" - }, - { - "soundName": "F Guitar", - "soundID": -1, - "md5": "b51d086aeb1921ec405561df52ecbc50.wav", - "sampleCount": 36416, - "rate": 22050, - "format": "" - }, - { - "soundName": "G Guitar", - "soundID": -1, - "md5": "98a835713ecea2f3ef9f4f442d52ad20.wav", - "sampleCount": 33600, - "rate": 22050, - "format": "" - }, - { - "soundName": "A Guitar", - "soundID": -1, - "md5": "ee753e87d212d4b2fb650ca660f1e839.wav", - "sampleCount": 31872, - "rate": 22050, - "format": "" - }, - { - "soundName": "B Guitar", - "soundID": -1, - "md5": "2ae2d67de62df8ca54d638b4ad2466c3.wav", - "sampleCount": 29504, - "rate": 22050, - "format": "" - }, - { - "soundName": "C2 guitar", - "soundID": -1, - "md5": "c8d2851bd99d8e0ce6c1f05e4acc7f34.wav", - "sampleCount": 27712, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "guitar-a", - "baseLayerID": -1, - "baseLayerMD5": "cb8c2a5e69da7538e1dd73cb7ff4a666.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 83 - }, - { - "costumeName": "guitar-b", - "baseLayerID": -1, - "baseLayerMD5": "fed44bd1091628c060f45060a84f2885.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 83 - } - ], - "currentCostumeIndex": 0, - "scratchX": -150, - "scratchY": 9, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "8704489dcf1a3ca93c5db40ebe5acd38", + "name": "guitar-a", + "bitmapResolution": 1, + "md5ext": "8704489dcf1a3ca93c5db40ebe5acd38.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 83 + }, + { + "assetId": "e0423f4743f39456dade16fa1223d6b0", + "name": "guitar-b", + "bitmapResolution": 1, + "md5ext": "e0423f4743f39456dade16fa1223d6b0.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 83 + } + ], + "sounds": [ + { + "assetId": "22baa07795a9a524614075cdea543793", + "name": "C Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 89728, + "md5ext": "22baa07795a9a524614075cdea543793.wav" + }, + { + "assetId": "2dbcfae6a55738f94bbb40aa5fcbf7ce", + "name": "D Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 82240, + "md5ext": "2dbcfae6a55738f94bbb40aa5fcbf7ce.wav" + }, + { + "assetId": "4b5d1da83e59bf35578324573c991666", + "name": "E Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 76800, + "md5ext": "4b5d1da83e59bf35578324573c991666.wav" + }, + { + "assetId": "b51d086aeb1921ec405561df52ecbc50", + "name": "F Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 72832, + "md5ext": "b51d086aeb1921ec405561df52ecbc50.wav" + }, + { + "assetId": "98a835713ecea2f3ef9f4f442d52ad20", + "name": "G Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 67200, + "md5ext": "98a835713ecea2f3ef9f4f442d52ad20.wav" + }, + { + "assetId": "ee753e87d212d4b2fb650ca660f1e839", + "name": "A Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 63744, + "md5ext": "ee753e87d212d4b2fb650ca660f1e839.wav" + }, + { + "assetId": "2ae2d67de62df8ca54d638b4ad2466c3", + "name": "B Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 59008, + "md5ext": "2ae2d67de62df8ca54d638b4ad2466c3.wav" + }, + { + "assetId": "c8d2851bd99d8e0ce6c1f05e4acc7f34", + "name": "C2 guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 55424, + "md5ext": "c8d2851bd99d8e0ce6c1f05e4acc7f34.wav" + } + ], + "blocks": {} }, { "name": "Guitar-electric1", - "md5": "b2b469b9d11fd23bdd671eab94dc58ff.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 8 - ], - "json": { - "objName": "Guitar-electric1", - "sounds": [ - { - "soundName": "C Elec Guitar", - "soundID": -1, - "md5": "0d340de02e14bebaf8dfa0e43eb3f1f9.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "D Elec Guitar", - "soundID": -1, - "md5": "1b5de9866801eb2f9d4f57c7c3b473f5.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "E Elec Guitar", - "soundID": -1, - "md5": "2e6a6ae3e0f72bf78c74def8130f459a.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "F Elec Guitar", - "soundID": -1, - "md5": "5eb00f15f21f734986aa45156d44478d.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "G Elec Guitar", - "soundID": -1, - "md5": "cd0d0e7dad415b2ffa2ba7a61860eaf8.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "A Elec Guitar", - "soundID": -1, - "md5": "fa5f7fea601e9368dd68449d9a54c995.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "B Elec Guitar", - "soundID": -1, - "md5": "81f142d0b00189703d7fe9b1f13f6f87.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "C2 Elec Guitar", - "soundID": -1, - "md5": "3a8ed3129f22cba5b0810bc030d16b5f.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "guitar-electric1-a", - "baseLayerID": -1, - "baseLayerMD5": "b2b469b9d11fd23bdd671eab94dc58ff.svg", - "bitmapResolution": 1, - "rotationCenterX": 42, - "rotationCenterY": 85 - }, - { - "costumeName": "guitar-electric1-b", - "baseLayerID": -1, - "baseLayerMD5": "3632184c19c66a088a99568570d61b13.svg", - "bitmapResolution": 1, - "rotationCenterX": 42, - "rotationCenterY": 85 - } - ], - "currentCostumeIndex": 0, - "scratchX": -122, - "scratchY": -19, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "57c6d7dc148576cb2f36e53dea49260a", + "name": "guitar-electric1-a", + "bitmapResolution": 1, + "md5ext": "57c6d7dc148576cb2f36e53dea49260a.svg", + "dataFormat": "svg", + "rotationCenterX": 42, + "rotationCenterY": 85 + }, + { + "assetId": "677aed0b1168caf4b3ec565b9104dbe0", + "name": "guitar-electric1-b", + "bitmapResolution": 1, + "md5ext": "677aed0b1168caf4b3ec565b9104dbe0.svg", + "dataFormat": "svg", + "rotationCenterX": 42, + "rotationCenterY": 85 + } + ], + "sounds": [ + { + "assetId": "0d340de02e14bebaf8dfa0e43eb3f1f9", + "name": "C Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "0d340de02e14bebaf8dfa0e43eb3f1f9.wav" + }, + { + "assetId": "1b5de9866801eb2f9d4f57c7c3b473f5", + "name": "D Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "1b5de9866801eb2f9d4f57c7c3b473f5.wav" + }, + { + "assetId": "2e6a6ae3e0f72bf78c74def8130f459a", + "name": "E Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "2e6a6ae3e0f72bf78c74def8130f459a.wav" + }, + { + "assetId": "5eb00f15f21f734986aa45156d44478d", + "name": "F Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "5eb00f15f21f734986aa45156d44478d.wav" + }, + { + "assetId": "cd0d0e7dad415b2ffa2ba7a61860eaf8", + "name": "G Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "cd0d0e7dad415b2ffa2ba7a61860eaf8.wav" + }, + { + "assetId": "fa5f7fea601e9368dd68449d9a54c995", + "name": "A Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "fa5f7fea601e9368dd68449d9a54c995.wav" + }, + { + "assetId": "81f142d0b00189703d7fe9b1f13f6f87", + "name": "B Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "81f142d0b00189703d7fe9b1f13f6f87.wav" + }, + { + "assetId": "3a8ed3129f22cba5b0810bc030d16b5f", + "name": "C2 Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "3a8ed3129f22cba5b0810bc030d16b5f.wav" + } + ], + "blocks": {} }, { "name": "Guitar-electric2", - "md5": "1fc433b89038f9e16092c9f4d7514cca.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 8 - ], - "json": { - "objName": "Guitar-electric2", - "sounds": [ - { - "soundName": "C Elec Guitar", - "soundID": -1, - "md5": "0d340de02e14bebaf8dfa0e43eb3f1f9.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "D Elec Guitar", - "soundID": -1, - "md5": "1b5de9866801eb2f9d4f57c7c3b473f5.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "E Elec Guitar", - "soundID": -1, - "md5": "2e6a6ae3e0f72bf78c74def8130f459a.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "F Elec Guitar", - "soundID": -1, - "md5": "5eb00f15f21f734986aa45156d44478d.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "G Elec Guitar", - "soundID": -1, - "md5": "cd0d0e7dad415b2ffa2ba7a61860eaf8.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "A Elec Guitar", - "soundID": -1, - "md5": "fa5f7fea601e9368dd68449d9a54c995.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "B Elec Guitar", - "soundID": -1, - "md5": "81f142d0b00189703d7fe9b1f13f6f87.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "C2 Elec Guitar", - "soundID": -1, - "md5": "3a8ed3129f22cba5b0810bc030d16b5f.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "guitar-electric2-a", - "baseLayerID": -1, - "baseLayerMD5": "1fc433b89038f9e16092c9f4d7514cca.svg", - "bitmapResolution": 1, - "rotationCenterX": 38, - "rotationCenterY": 94 - }, - { - "costumeName": "guitar-electric2-b", - "baseLayerID": -1, - "baseLayerMD5": "7b843dbc93d4b2ea31fa67cca3d5077c.svg", - "bitmapResolution": 1, - "rotationCenterX": 38, - "rotationCenterY": 94 - } - ], - "currentCostumeIndex": 0, - "scratchX": -99, - "scratchY": 17, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "bb88e6a8a08a4034cc155b1137743ca1", + "name": "guitar-electric2-a", + "bitmapResolution": 1, + "md5ext": "bb88e6a8a08a4034cc155b1137743ca1.svg", + "dataFormat": "svg", + "rotationCenterX": 38, + "rotationCenterY": 94 + }, + { + "assetId": "83db2d0e342257e534ccdf0ec17bf668", + "name": "guitar-electric2-b", + "bitmapResolution": 1, + "md5ext": "83db2d0e342257e534ccdf0ec17bf668.svg", + "dataFormat": "svg", + "rotationCenterX": 38, + "rotationCenterY": 94 + } + ], + "sounds": [ + { + "assetId": "0d340de02e14bebaf8dfa0e43eb3f1f9", + "name": "C Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "0d340de02e14bebaf8dfa0e43eb3f1f9.wav" + }, + { + "assetId": "1b5de9866801eb2f9d4f57c7c3b473f5", + "name": "D Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "1b5de9866801eb2f9d4f57c7c3b473f5.wav" + }, + { + "assetId": "2e6a6ae3e0f72bf78c74def8130f459a", + "name": "E Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "2e6a6ae3e0f72bf78c74def8130f459a.wav" + }, + { + "assetId": "5eb00f15f21f734986aa45156d44478d", + "name": "F Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "5eb00f15f21f734986aa45156d44478d.wav" + }, + { + "assetId": "cd0d0e7dad415b2ffa2ba7a61860eaf8", + "name": "G Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "cd0d0e7dad415b2ffa2ba7a61860eaf8.wav" + }, + { + "assetId": "fa5f7fea601e9368dd68449d9a54c995", + "name": "A Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "fa5f7fea601e9368dd68449d9a54c995.wav" + }, + { + "assetId": "81f142d0b00189703d7fe9b1f13f6f87", + "name": "B Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "81f142d0b00189703d7fe9b1f13f6f87.wav" + }, + { + "assetId": "3a8ed3129f22cba5b0810bc030d16b5f", + "name": "C2 Elec Guitar", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "3a8ed3129f22cba5b0810bc030d16b5f.wav" + } + ], + "blocks": {} }, { "name": "Hannah", - "md5": "b983d99560313e38b4b3cd36cbd5f0d1.png", - "type": "sprite", "tags": [ "people", "sports" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Hannah", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "hannah-a", - "baseLayerID": -1, - "baseLayerMD5": "b983d99560313e38b4b3cd36cbd5f0d1.png", - "bitmapResolution": 2, - "rotationCenterX": 138, - "rotationCenterY": 126 - }, - { - "costumeName": "hannah-b", - "baseLayerID": -1, - "baseLayerMD5": "d0c3b4b24fbf1152de3ebb68f6b875ae.png", - "bitmapResolution": 2, - "rotationCenterX": 48, - "rotationCenterY": 160 - }, - { - "costumeName": "hannah-c", - "baseLayerID": -1, - "baseLayerMD5": "5fdce07935156bbcf943793fa84e826c.png", - "bitmapResolution": 2, - "rotationCenterX": 170, - "rotationCenterY": 130 - } - ], - "currentCostumeIndex": 0, - "scratchX": 34, - "scratchY": 1, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b983d99560313e38b4b3cd36cbd5f0d1", + "name": "hannah-a", + "bitmapResolution": 2, + "md5ext": "b983d99560313e38b4b3cd36cbd5f0d1.png", + "dataFormat": "png", + "rotationCenterX": 138, + "rotationCenterY": 126 + }, + { + "assetId": "d0c3b4b24fbf1152de3ebb68f6b875ae", + "name": "hannah-b", + "bitmapResolution": 2, + "md5ext": "d0c3b4b24fbf1152de3ebb68f6b875ae.png", + "dataFormat": "png", + "rotationCenterX": 48, + "rotationCenterY": 160 + }, + { + "assetId": "5fdce07935156bbcf943793fa84e826c", + "name": "hannah-c", + "bitmapResolution": 2, + "md5ext": "5fdce07935156bbcf943793fa84e826c.png", + "dataFormat": "png", + "rotationCenterX": 170, + "rotationCenterY": 130 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Hare", - "md5": "8209c43050785e3c4276f84abb52c245.svg", - "type": "sprite", "tags": [ "animals", "rabbit", @@ -7783,262 +6693,215 @@ "arctic", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Hare", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "hare-a", - "baseLayerID": -1, - "baseLayerMD5": "8209c43050785e3c4276f84abb52c245.svg", - "bitmapResolution": 1, - "rotationCenterX": 29, - "rotationCenterY": 50 - }, - { - "costumeName": "hare-b", - "baseLayerID": -1, - "baseLayerMD5": "62796e48dc8e540398e0575d79f562fe.svg", - "bitmapResolution": 1, - "rotationCenterX": 57, - "rotationCenterY": 35 - }, - { - "costumeName": "hare-c", - "baseLayerID": -1, - "baseLayerMD5": "4bc5c29283dfff4b9c876cc23540a4b5.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": -191, - "scratchY": -54, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "7269593d83b6f9eae512997f541a7417", + "name": "hare-a", + "bitmapResolution": 1, + "md5ext": "7269593d83b6f9eae512997f541a7417.svg", + "dataFormat": "svg", + "rotationCenterX": 29, + "rotationCenterY": 50 + }, + { + "assetId": "c8dbb4302dd489a201938c203018c2f0", + "name": "hare-b", + "bitmapResolution": 1, + "md5ext": "c8dbb4302dd489a201938c203018c2f0.svg", + "dataFormat": "svg", + "rotationCenterX": 57, + "rotationCenterY": 35 + }, + { + "assetId": "85a3b8c151e10576fa531a4293fdac00", + "name": "hare-c", + "bitmapResolution": 1, + "md5ext": "85a3b8c151e10576fa531a4293fdac00.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Harper", - "md5": "0d5979db40b0a4dcaa601fb7679ef71c.svg", - "type": "sprite", "tags": [ "people", "fashion", "clothing" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Harper", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "harper-a", - "baseLayerID": -1, - "baseLayerMD5": "0d5979db40b0a4dcaa601fb7679ef71c.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 143 - }, - { - "costumeName": "harper-b", - "baseLayerID": -1, - "baseLayerMD5": "c435a1fcdf5f60a29f620fa800e391e0.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 134 - }, - { - "costumeName": "harper-c", - "baseLayerID": -1, - "baseLayerMD5": "9c35763ec87604ff1b4848ff18e0b040.svg", - "bitmapResolution": 1, - "rotationCenterX": 56, - "rotationCenterY": 138 - } - ], - "currentCostumeIndex": 0, - "scratchX": 38, - "scratchY": 18, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3a0973a042ee16e816c568651316d5d4", + "name": "harper-a", + "bitmapResolution": 1, + "md5ext": "3a0973a042ee16e816c568651316d5d4.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 143 + }, + { + "assetId": "e407fa0ed992393d12d0a108c11e2fa6", + "name": "harper-b", + "bitmapResolution": 1, + "md5ext": "e407fa0ed992393d12d0a108c11e2fa6.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 134 + }, + { + "assetId": "98ce6e6bb99f8ba116f127fdf2e739fd", + "name": "harper-c", + "bitmapResolution": 1, + "md5ext": "98ce6e6bb99f8ba116f127fdf2e739fd.svg", + "dataFormat": "svg", + "rotationCenterX": 56, + "rotationCenterY": 138 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Hat1 ", - "md5": "52540f9dba4537f79f1ad3067d44e3f6.svg", - "type": "sprite", "tags": [ "fashion", "hat", "clothing" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Hat1 ", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "hat-a", - "baseLayerID": -1, - "baseLayerMD5": "52540f9dba4537f79f1ad3067d44e3f6.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 30 - }, - { - "costumeName": "hat-b", - "baseLayerID": -1, - "baseLayerMD5": "874462b3e079308d775629c235940d8f.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 22 - }, - { - "costumeName": "hat-c", - "baseLayerID": -1, - "baseLayerMD5": "b40accecd4bd57fed8bdb96ee15e5c05.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 27 - }, - { - "costumeName": "hat-d", - "baseLayerID": -1, - "baseLayerMD5": "a8ef874bd7542fec62785eac80019417.svg", - "bitmapResolution": 1, - "rotationCenterX": 45, - "rotationCenterY": 30 - } - ], - "currentCostumeIndex": 0, - "scratchX": -70, - "scratchY": 126, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c632719725400c604fcadf0858ce2b2c", + "name": "hat-a", + "bitmapResolution": 1, + "md5ext": "c632719725400c604fcadf0858ce2b2c.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 30 + }, + { + "assetId": "0aed53a86d92ec2283068000ac97a60b", + "name": "hat-b", + "bitmapResolution": 1, + "md5ext": "0aed53a86d92ec2283068000ac97a60b.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 22 + }, + { + "assetId": "13e382ae3f05a9a23e0b64ca23230438", + "name": "hat-c", + "bitmapResolution": 1, + "md5ext": "13e382ae3f05a9a23e0b64ca23230438.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 27 + }, + { + "assetId": "6349e36da9897a2f89bdbf5c77dbdacb", + "name": "hat-d", + "bitmapResolution": 1, + "md5ext": "6349e36da9897a2f89bdbf5c77dbdacb.svg", + "dataFormat": "svg", + "rotationCenterX": 45, + "rotationCenterY": 30 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Hatchling", - "md5": "25e4da6bcd209c60690729f5c7016b83.svg", - "type": "sprite", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Hatchling", - "sounds": [ - { - "soundName": "Chirp", - "soundID": -1, - "md5": "3b8236bbb288019d93ae38362e865972.wav", - "sampleCount": 5301, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "hatchling-a", - "baseLayerID": -1, - "baseLayerMD5": "25e4da6bcd209c60690729f5c7016b83.svg", - "bitmapResolution": 1, - "rotationCenterX": 15, - "rotationCenterY": 23 - }, - { - "costumeName": "hatchling-b", - "baseLayerID": -1, - "baseLayerMD5": "b0f8451e7c52cf2b94b94c4a2051398b.svg", - "bitmapResolution": 1, - "rotationCenterX": 16, - "rotationCenterY": 38 - }, - { - "costumeName": "hatchling-c", - "baseLayerID": -1, - "baseLayerMD5": "5f70ae46957bf425121ac532dc6a2f34.svg", - "bitmapResolution": 1, - "rotationCenterX": 38, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": -156, - "scratchY": -76, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "55f7d457eb0af78cb309ca47497c490f", + "name": "hatchling-a", + "bitmapResolution": 1, + "md5ext": "55f7d457eb0af78cb309ca47497c490f.svg", + "dataFormat": "svg", + "rotationCenterX": 15, + "rotationCenterY": 23 + }, + { + "assetId": "0e5c295a043d5e183a98046e4f734b72", + "name": "hatchling-b", + "bitmapResolution": 1, + "md5ext": "0e5c295a043d5e183a98046e4f734b72.svg", + "dataFormat": "svg", + "rotationCenterX": 16, + "rotationCenterY": 38 + }, + { + "assetId": "f27d557be70a9522fae4392bfd4f5249", + "name": "hatchling-c", + "bitmapResolution": 1, + "md5ext": "f27d557be70a9522fae4392bfd4f5249.svg", + "dataFormat": "svg", + "rotationCenterX": 38, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "3b8236bbb288019d93ae38362e865972", + "name": "Chirp", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 6097, + "md5ext": "3b8236bbb288019d93ae38362e865972.wav" + } + ], + "blocks": {} }, { "name": "Heart", - "md5": "6e79e087c866a016f99ee482e1aeba47.svg", - "type": "sprite", "tags": [ "holiday", "red", @@ -8046,323 +6909,264 @@ "love", "emotions" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Heart", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "heart red", - "baseLayerID": -1, - "baseLayerMD5": "6e79e087c866a016f99ee482e1aeba47.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 56 - }, - { - "costumeName": "heart purple", - "baseLayerID": -1, - "baseLayerMD5": "b15362bb6b02a59e364db9081ccf19aa.svg", - "bitmapResolution": 1, - "rotationCenterX": 66, - "rotationCenterY": 62 - } - ], - "currentCostumeIndex": 0, - "scratchX": -31, - "scratchY": 40, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c77e640f6e023e7ce1e376da0f26e1eb", + "name": "heart red", + "bitmapResolution": 1, + "md5ext": "c77e640f6e023e7ce1e376da0f26e1eb.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 56 + }, + { + "assetId": "e24731f5cf2759c2f289921bebb86ea2", + "name": "heart purple", + "bitmapResolution": 1, + "md5ext": "e24731f5cf2759c2f289921bebb86ea2.svg", + "dataFormat": "svg", + "rotationCenterX": 66, + "rotationCenterY": 62 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Heart Candy", - "md5": "1bc73fc472df673a1089d965b537f5ac.svg", - "type": "sprite", "tags": [ "food", "sweethearts" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Heart Candy", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "heart code", - "baseLayerID": -1, - "baseLayerMD5": "1bc73fc472df673a1089d965b537f5ac.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 72 - }, - { - "costumeName": "heart love", - "baseLayerID": -1, - "baseLayerMD5": "a9d25b961eef81521c8ed38beb1456a0.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 72 - }, - { - "costumeName": "heart sweet", - "baseLayerID": -1, - "baseLayerMD5": "9a9a8efa369379ee8538632c43a6a3d1.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 72 - }, - { - "costumeName": "heart smile", - "baseLayerID": -1, - "baseLayerMD5": "66b29ca063bc74d2bacfc0a06bc7b6fc.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": -24, - "scratchY": -4, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "288976865e8c5db717d859e915606d82", + "name": "heart code", + "bitmapResolution": 1, + "md5ext": "288976865e8c5db717d859e915606d82.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 72 + }, + { + "assetId": "51248e76be2aa7a0f0ed77bc94af1b3a", + "name": "heart love", + "bitmapResolution": 1, + "md5ext": "51248e76be2aa7a0f0ed77bc94af1b3a.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 72 + }, + { + "assetId": "3ee430ba825f41ae9913453d4932fb8b", + "name": "heart sweet", + "bitmapResolution": 1, + "md5ext": "3ee430ba825f41ae9913453d4932fb8b.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 72 + }, + { + "assetId": "5fa8c4693cf8cba8cdbcbed72f4f58aa", + "name": "heart smile", + "bitmapResolution": 1, + "md5ext": "5fa8c4693cf8cba8cdbcbed72f4f58aa.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Heart Face", - "md5": "4ab84263da32069cf97cc0fa52729a0d.svg", - "type": "sprite", "tags": [ "emotions" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Heart Face", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "heart face", - "baseLayerID": -1, - "baseLayerMD5": "4ab84263da32069cf97cc0fa52729a0d.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 52 - } - ], - "currentCostumeIndex": 0, - "scratchX": 50, - "scratchY": 39, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "989770846f8cd1628b48bbe91d0a7d0d", + "name": "heart face", + "bitmapResolution": 1, + "md5ext": "989770846f8cd1628b48bbe91d0a7d0d.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 52 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Hedgehog", - "md5": "32416e6b2ef8e45fb5fd10778c1b9a9f.svg", - "type": "sprite", "tags": [ "animals", "daria skrybchencko", "mammals", "spikey" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Hedgehog", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "hedgehog-a", - "baseLayerID": -1, - "baseLayerMD5": "32416e6b2ef8e45fb5fd10778c1b9a9f.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 56 - }, - { - "costumeName": "hedgehog-b", - "baseLayerID": -1, - "baseLayerMD5": "4d3ccc06660e07b55bd38246e1f82f7f.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 56 - }, - { - "costumeName": "hedgehog-c", - "baseLayerID": -1, - "baseLayerMD5": "2446f79c0f553594cfbcdbe6b1e459a5.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 56 - }, - { - "costumeName": "hedgehog-d", - "baseLayerID": -1, - "baseLayerMD5": "bdb7c8e86125092da0c4848d1ffd901c.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 56 - }, - { - "costumeName": "hedgehog-e", - "baseLayerID": -1, - "baseLayerMD5": "78a0e3789f6d778e20f9bf3d308a0b19.svg", - "bitmapResolution": 1, - "rotationCenterX": 61, - "rotationCenterY": 45 - } - ], - "currentCostumeIndex": 0, - "scratchX": -134, - "scratchY": -77, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3b0e1717859808cecf1a45e2a32dc201", + "name": "hedgehog-a", + "bitmapResolution": 1, + "md5ext": "3b0e1717859808cecf1a45e2a32dc201.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 56 + }, + { + "assetId": "42bac40ca828133600e0a9f7ba019adb", + "name": "hedgehog-b", + "bitmapResolution": 1, + "md5ext": "42bac40ca828133600e0a9f7ba019adb.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 56 + }, + { + "assetId": "3251533232e7f44315512149c7f76214", + "name": "hedgehog-c", + "bitmapResolution": 1, + "md5ext": "3251533232e7f44315512149c7f76214.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 56 + }, + { + "assetId": "93c2d7a0abefaf26ee50d5038ac5bf61", + "name": "hedgehog-d", + "bitmapResolution": 1, + "md5ext": "93c2d7a0abefaf26ee50d5038ac5bf61.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 56 + }, + { + "assetId": "1fcbba4a2252e96c52d2d8aa8e593e51", + "name": "hedgehog-e", + "bitmapResolution": 1, + "md5ext": "1fcbba4a2252e96c52d2d8aa8e593e51.svg", + "dataFormat": "svg", + "rotationCenterX": 61, + "rotationCenterY": 45 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Hen", - "md5": "eb0a9890a92ef616ef8740328eeabb79.svg", - "type": "sprite", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Hen", - "sounds": [ - { - "soundName": "bird", - "soundID": -1, - "md5": "18bd4b634a3f992a16b30344c7d810e0.wav", - "sampleCount": 3840, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "hen-a", - "baseLayerID": -1, - "baseLayerMD5": "eb0a9890a92ef616ef8740328eeabb79.svg", - "bitmapResolution": 1, - "rotationCenterX": 60, - "rotationCenterY": 53 - }, - { - "costumeName": "hen-b", - "baseLayerID": -1, - "baseLayerMD5": "12aabf8636096f223e9297d2fd8177a4.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 50 - }, - { - "costumeName": "hen-c", - "baseLayerID": -1, - "baseLayerMD5": "af2c57d1f12272335629635e669df487.svg", - "bitmapResolution": 1, - "rotationCenterX": 56, - "rotationCenterY": 53 - }, - { - "costumeName": "hen-d", - "baseLayerID": -1, - "baseLayerMD5": "84d0492c094ec01d73f808c92b4c3138.svg", - "bitmapResolution": 1, - "rotationCenterX": 51, - "rotationCenterY": 77 - } - ], - "currentCostumeIndex": 0, - "scratchX": 141, - "scratchY": -104, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b02a33e32313cc9a75781a6fafd07033", + "name": "hen-a", + "bitmapResolution": 1, + "md5ext": "b02a33e32313cc9a75781a6fafd07033.svg", + "dataFormat": "svg", + "rotationCenterX": 60, + "rotationCenterY": 53 + }, + { + "assetId": "d055896a473bb12f4ec67af1fdb9c652", + "name": "hen-b", + "bitmapResolution": 1, + "md5ext": "d055896a473bb12f4ec67af1fdb9c652.svg", + "dataFormat": "svg", + "rotationCenterX": 63, + "rotationCenterY": 50 + }, + { + "assetId": "c9a4570a2d0ae09b9feeeb5607e4b9c7", + "name": "hen-c", + "bitmapResolution": 1, + "md5ext": "c9a4570a2d0ae09b9feeeb5607e4b9c7.svg", + "dataFormat": "svg", + "rotationCenterX": 56, + "rotationCenterY": 53 + }, + { + "assetId": "6c9e05f568862dbcea0a1652a210239b", + "name": "hen-d", + "bitmapResolution": 1, + "md5ext": "6c9e05f568862dbcea0a1652a210239b.svg", + "dataFormat": "svg", + "rotationCenterX": 51, + "rotationCenterY": 77 + } + ], + "sounds": [ + { + "assetId": "18bd4b634a3f992a16b30344c7d810e0", + "name": "bird", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 15360, + "md5ext": "18bd4b634a3f992a16b30344c7d810e0.wav" + } + ], + "blocks": {} }, { "name": "Hippo1", - "md5": "c1353c4a5eec5e6f32ed053e6f6e8f99.svg", - "type": "sprite", "tags": [ "animals", "mammals", @@ -8373,102 +7177,75 @@ "snortyboys", "flappers" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Hippo1", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "hippo1-a", - "baseLayerID": -1, - "baseLayerMD5": "c1353c4a5eec5e6f32ed053e6f6e8f99.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 65 - }, - { - "costumeName": "hippo1-b", - "baseLayerID": -1, - "baseLayerMD5": "e65ed93bbb9cccf698fc7e774ab609a6.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 68 - } - ], - "currentCostumeIndex": 0, - "scratchX": 59, - "scratchY": 37, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "911901dc568b56c15fe81819bc2af653", + "name": "hippo1-a", + "bitmapResolution": 1, + "md5ext": "911901dc568b56c15fe81819bc2af653.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 65 + }, + { + "assetId": "5764a2c650f225bc27cc0e6c5db401ea", + "name": "hippo1-b", + "bitmapResolution": 1, + "md5ext": "5764a2c650f225bc27cc0e6c5db401ea.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 68 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Home Button", - "md5": "1bac530a0701a8fc88bb0802ae6787a3.svg", - "type": "sprite", "tags": [ "ui", "thing" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Home Button", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "home button", - "baseLayerID": -1, - "baseLayerMD5": "1bac530a0701a8fc88bb0802ae6787a3.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": 42, - "scratchY": 42, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "1ebdcb9f033fa6658259b52da376b7ac", + "name": "home button", + "bitmapResolution": 1, + "md5ext": "1ebdcb9f033fa6658259b52da376b7ac.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Horse", - "md5": "83a698304f00242a34ddd63b1525373b.svg", - "type": "sprite", "tags": [ "animals", "hoof", @@ -8477,292 +7254,249 @@ "racing", "saddle" ], - "info": [ - 0, - 2, - 2 - ], - "json": { - "objName": "Horse", - "sounds": [ - { - "soundName": "horse", - "soundID": -1, - "md5": "45ffcf97ee2edca0199ff5aa71a5b72e.wav", - "sampleCount": 14464, - "rate": 11025, - "format": "" - }, - { - "soundName": "horse gallop", - "soundID": -1, - "md5": "058a34b5fb8b57178b5322d994b6b8c8.wav", - "sampleCount": 38336, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "horse-a", - "baseLayerID": -1, - "baseLayerMD5": "83a698304f00242a34ddd63b1525373b.svg", - "bitmapResolution": 1, - "rotationCenterX": 119, - "rotationCenterY": 83 - }, - { - "costumeName": "horse-b", - "baseLayerID": -1, - "baseLayerMD5": "2e7d212692b46b049a9ebc1224edd990.svg", - "bitmapResolution": 1, - "rotationCenterX": 103, - "rotationCenterY": 97 - } - ], - "currentCostumeIndex": 0, - "scratchX": -4, - "scratchY": -26, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ad458251c5bf5b375870829f1762fa47", + "name": "horse-a", + "bitmapResolution": 1, + "md5ext": "ad458251c5bf5b375870829f1762fa47.svg", + "dataFormat": "svg", + "rotationCenterX": 119, + "rotationCenterY": 83 + }, + { + "assetId": "0e0fa871bea01c2dfb70e9955dc098be", + "name": "horse-b", + "bitmapResolution": 1, + "md5ext": "0e0fa871bea01c2dfb70e9955dc098be.svg", + "dataFormat": "svg", + "rotationCenterX": 103, + "rotationCenterY": 97 + } + ], + "sounds": [ + { + "assetId": "45ffcf97ee2edca0199ff5aa71a5b72e", + "name": "horse", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 57856, + "md5ext": "45ffcf97ee2edca0199ff5aa71a5b72e.wav" + }, + { + "assetId": "058a34b5fb8b57178b5322d994b6b8c8", + "name": "horse gallop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 153344, + "md5ext": "058a34b5fb8b57178b5322d994b6b8c8.wav" + } + ], + "blocks": {} }, { "name": "Jaime", - "md5": "3ddc912edef87ae29121f57294fa0cb5.png", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 7, - 1 - ], - "json": { - "objName": "Jaime", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "jaime-a", - "baseLayerID": -1, - "baseLayerMD5": "3ddc912edef87ae29121f57294fa0cb5.png", - "bitmapResolution": 2, - "rotationCenterX": 76, - "rotationCenterY": 154 - }, - { - "costumeName": "jaime-b", - "baseLayerID": -1, - "baseLayerMD5": "5a683f4536abca0f83a77bc341df4c9a.png", - "bitmapResolution": 2, - "rotationCenterX": 68, - "rotationCenterY": 154 - }, - { - "costumeName": "jaime walking-a", - "baseLayerID": -1, - "baseLayerMD5": "d6cc9814f7a6640e4c2b1a4276987dc5.png", - "bitmapResolution": 2, - "rotationCenterX": 106, - "rotationCenterY": 172 - }, - { - "costumeName": "jaime walking-b", - "baseLayerID": -1, - "baseLayerMD5": "7fb579a98d6db257f1b16109d3c4609a.png", - "bitmapResolution": 2, - "rotationCenterX": 52, - "rotationCenterY": 176 - }, - { - "costumeName": "jaime walking-c", - "baseLayerID": -1, - "baseLayerMD5": "5883bdefba451aaeac8d77c798d41eb0.png", - "bitmapResolution": 2, - "rotationCenterX": 88, - "rotationCenterY": 170 - }, - { - "costumeName": "jaime walking-d", - "baseLayerID": -1, - "baseLayerMD5": "4b9d2162e30dbb924840575ed35fddb0.png", - "bitmapResolution": 2, - "rotationCenterX": 46, - "rotationCenterY": 174 - }, - { - "costumeName": "jaime walking-e", - "baseLayerID": -1, - "baseLayerMD5": "63e56d28cc3e3d9b735e1f1d51248cc0.png", - "bitmapResolution": 2, - "rotationCenterX": 84, - "rotationCenterY": 172 - } - ], - "currentCostumeIndex": 0, - "scratchX": 51, - "scratchY": 31, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3ddc912edef87ae29121f57294fa0cb5", + "name": "jaime-a", + "bitmapResolution": 2, + "md5ext": "3ddc912edef87ae29121f57294fa0cb5.png", + "dataFormat": "png", + "rotationCenterX": 76, + "rotationCenterY": 154 + }, + { + "assetId": "5a683f4536abca0f83a77bc341df4c9a", + "name": "jaime-b", + "bitmapResolution": 2, + "md5ext": "5a683f4536abca0f83a77bc341df4c9a.png", + "dataFormat": "png", + "rotationCenterX": 68, + "rotationCenterY": 154 + }, + { + "assetId": "d6cc9814f7a6640e4c2b1a4276987dc5", + "name": "jaime walking-a", + "bitmapResolution": 2, + "md5ext": "d6cc9814f7a6640e4c2b1a4276987dc5.png", + "dataFormat": "png", + "rotationCenterX": 106, + "rotationCenterY": 172 + }, + { + "assetId": "7fb579a98d6db257f1b16109d3c4609a", + "name": "jaime walking-b", + "bitmapResolution": 2, + "md5ext": "7fb579a98d6db257f1b16109d3c4609a.png", + "dataFormat": "png", + "rotationCenterX": 52, + "rotationCenterY": 176 + }, + { + "assetId": "5883bdefba451aaeac8d77c798d41eb0", + "name": "jaime walking-c", + "bitmapResolution": 2, + "md5ext": "5883bdefba451aaeac8d77c798d41eb0.png", + "dataFormat": "png", + "rotationCenterX": 88, + "rotationCenterY": 170 + }, + { + "assetId": "4b9d2162e30dbb924840575ed35fddb0", + "name": "jaime walking-d", + "bitmapResolution": 2, + "md5ext": "4b9d2162e30dbb924840575ed35fddb0.png", + "dataFormat": "png", + "rotationCenterX": 46, + "rotationCenterY": 174 + }, + { + "assetId": "63e56d28cc3e3d9b735e1f1d51248cc0", + "name": "jaime walking-e", + "bitmapResolution": 2, + "md5ext": "63e56d28cc3e3d9b735e1f1d51248cc0.png", + "dataFormat": "png", + "rotationCenterX": 84, + "rotationCenterY": 172 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Jamal", - "md5": "c7531e6c05aa488edd6ad3c369204452.svg", - "type": "sprite", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 2 - ], - "json": { - "objName": "Jamal", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - }, - { - "soundName": "basketball bounce", - "soundID": -1, - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "jamal-a", - "baseLayerID": -1, - "baseLayerMD5": "c7531e6c05aa488edd6ad3c369204452.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 49 - }, - { - "costumeName": "jamal-b", - "baseLayerID": -1, - "baseLayerMD5": "8b8bd6ff0fe64e7056d1e70c63b9ec9f.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 53 - }, - { - "costumeName": "jamal-c", - "baseLayerID": -1, - "baseLayerMD5": "c659f292333f93854be243f84b337ec5.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 102 - }, - { - "costumeName": "jamal-d", - "baseLayerID": -1, - "baseLayerMD5": "9dc8cfa22793c43aee826c76d144e09b.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 95 - } - ], - "currentCostumeIndex": 0, - "scratchX": 56, - "scratchY": 37, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3c8d5e688450ad1e6bf024a32c55bcda", + "name": "jamal-a", + "bitmapResolution": 1, + "md5ext": "3c8d5e688450ad1e6bf024a32c55bcda.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 49 + }, + { + "assetId": "2408318e743873c7254db1623441b9c5", + "name": "jamal-b", + "bitmapResolution": 1, + "md5ext": "2408318e743873c7254db1623441b9c5.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 53 + }, + { + "assetId": "693748d763c8da4b119a5e4bee6a1768", + "name": "jamal-c", + "bitmapResolution": 1, + "md5ext": "693748d763c8da4b119a5e4bee6a1768.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 102 + }, + { + "assetId": "92692e0c0f376797274392484ba74133", + "name": "jamal-d", + "bitmapResolution": 1, + "md5ext": "92692e0c0f376797274392484ba74133.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 95 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + }, + { + "assetId": "1727f65b5f22d151685b8e5917456a60", + "name": "basketball bounce", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav" + } + ], + "blocks": {} }, { "name": "Jar", - "md5": "73784b267083733e08bcf06aa7d6536a.svg", - "type": "sprite", "tags": [ "food", "ipzy", "things" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Jar", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "jar-a", - "baseLayerID": -1, - "baseLayerMD5": "73784b267083733e08bcf06aa7d6536a.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 25 - }, - { - "costumeName": "jar-b", - "baseLayerID": -1, - "baseLayerMD5": "a37eb72115966a75bc1bf521deeccc0c.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 25 - } - ], - "currentCostumeIndex": 0, - "scratchX": 9, - "scratchY": -11, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "33b537168f3c2eb3dafeb739c22f38a6", + "name": "jar-a", + "bitmapResolution": 1, + "md5ext": "33b537168f3c2eb3dafeb739c22f38a6.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 25 + }, + { + "assetId": "e0f5ac773987470ff2467e3e01b9ab23", + "name": "jar-b", + "bitmapResolution": 1, + "md5ext": "e0f5ac773987470ff2467e3e01b9ab23.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 25 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Jellyfish", - "md5": "9e6563e417350af3094c2ed02b9b0bbd.svg", - "type": "sprite", "tags": [ "animals", "ocean", @@ -8771,80 +7505,70 @@ "emotions", "daria skrybchencko" ], - "info": [ - 0, - 4, - 2 - ], - "json": { - "objName": "Jellyfish", - "sounds": [ - { - "soundName": "bubbles", - "soundID": -1, - "md5": "78b0be9c9c2f664158b886bc7e794095.wav", - "sampleCount": 45056, - "rate": 11025, - "format": "" - }, - { - "soundName": "ocean wave", - "soundID": -1, - "md5": "c904610d770398b98872a708a2f75611.wav", - "sampleCount": 99206, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "jellyfish-a", - "baseLayerID": -1, - "baseLayerMD5": "9e6563e417350af3094c2ed02b9b0bbd.svg", - "bitmapResolution": 1, - "rotationCenterX": 99, - "rotationCenterY": 86 - }, - { - "costumeName": "jellyfish-b", - "baseLayerID": -1, - "baseLayerMD5": "31a42fad0891f1298c522a6d5008930a.svg", - "bitmapResolution": 1, - "rotationCenterX": 99, - "rotationCenterY": 86 - }, - { - "costumeName": "jellyfish-c", - "baseLayerID": -1, - "baseLayerMD5": "697262d9ed04467bae52cca786c36bd3.svg", - "bitmapResolution": 1, - "rotationCenterX": 99, - "rotationCenterY": 86 - }, - { - "costumeName": "jellyfish-d", - "baseLayerID": -1, - "baseLayerMD5": "6a949493aaf62954f1c74f8369d494c4.svg", - "bitmapResolution": 1, - "rotationCenterX": 99, - "rotationCenterY": 86 - } - ], - "currentCostumeIndex": 0, - "scratchX": -163, - "scratchY": 99, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4e259b7c08f05145fc7800b33e4f356e", + "name": "jellyfish-a", + "bitmapResolution": 1, + "md5ext": "4e259b7c08f05145fc7800b33e4f356e.svg", + "dataFormat": "svg", + "rotationCenterX": 99, + "rotationCenterY": 86 + }, + { + "assetId": "5944a1e687fa31589517825b2144a17b", + "name": "jellyfish-b", + "bitmapResolution": 1, + "md5ext": "5944a1e687fa31589517825b2144a17b.svg", + "dataFormat": "svg", + "rotationCenterX": 99, + "rotationCenterY": 86 + }, + { + "assetId": "00c99df84f8385038461d6c42a5465ab", + "name": "jellyfish-c", + "bitmapResolution": 1, + "md5ext": "00c99df84f8385038461d6c42a5465ab.svg", + "dataFormat": "svg", + "rotationCenterX": 99, + "rotationCenterY": 86 + }, + { + "assetId": "3158299771b3d34ed2c50a00fbab715e", + "name": "jellyfish-d", + "bitmapResolution": 1, + "md5ext": "3158299771b3d34ed2c50a00fbab715e.svg", + "dataFormat": "svg", + "rotationCenterX": 99, + "rotationCenterY": 86 + } + ], + "sounds": [ + { + "assetId": "78b0be9c9c2f664158b886bc7e794095", + "name": "bubbles", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 180224, + "md5ext": "78b0be9c9c2f664158b886bc7e794095.wav" + }, + { + "assetId": "c904610d770398b98872a708a2f75611", + "name": "ocean wave", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 99569, + "md5ext": "c904610d770398b98872a708a2f75611.wav" + } + ], + "blocks": {} }, { "name": "Jordyn", - "md5": "2f59adebc2c0feb9ebfabd7ee9642f2b.svg", - "type": "sprite", "tags": [ "sports", "soccer", @@ -8852,755 +7576,727 @@ "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 2 - ], - "json": { - "objName": "Jordyn", - "sounds": [ - { - "soundName": "Goal Cheer", - "soundID": -1, - "md5": "199b30c8b4fe0642e849924bd1e1b463.wav", - "sampleCount": 84411, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Referee Whistle", - "soundID": -1, - "md5": "7d91d95d841dc6cf1282914306a4674a.wav", - "sampleCount": 14238, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "jordyn-a", - "baseLayerID": -1, - "baseLayerMD5": "2f59adebc2c0feb9ebfabd7ee9642f2b.svg", - "bitmapResolution": 1, - "rotationCenterX": 51, - "rotationCenterY": 62 - }, - { - "costumeName": "jordyn-b", - "baseLayerID": -1, - "baseLayerMD5": "075f382883e60dba8094b3dc30918f60.svg", - "bitmapResolution": 1, - "rotationCenterX": 51, - "rotationCenterY": 63 - }, - { - "costumeName": "jordyn-c", - "baseLayerID": -1, - "baseLayerMD5": "fbe81c40d4a880c8799c458359758629.svg", - "bitmapResolution": 1, - "rotationCenterX": 68, - "rotationCenterY": 62 - }, - { - "costumeName": "jordyn-d", - "baseLayerID": -1, - "baseLayerMD5": "68a784d4d0340475a6e6feff3b28b470.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 62 - } - ], - "currentCostumeIndex": 0, - "scratchX": 61, - "scratchY": 93, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "db4d97cbf24e2b8af665bfbf06f67fa0", + "name": "jordyn-a", + "bitmapResolution": 1, + "md5ext": "db4d97cbf24e2b8af665bfbf06f67fa0.svg", + "dataFormat": "svg", + "rotationCenterX": 51, + "rotationCenterY": 62 + }, + { + "assetId": "a7cc1e5f02b58ecc8095cfc18eef0289", + "name": "jordyn-b", + "bitmapResolution": 1, + "md5ext": "a7cc1e5f02b58ecc8095cfc18eef0289.svg", + "dataFormat": "svg", + "rotationCenterX": 51, + "rotationCenterY": 63 + }, + { + "assetId": "768c4601174f0dfcb96b3080ccc3a192", + "name": "jordyn-c", + "bitmapResolution": 1, + "md5ext": "768c4601174f0dfcb96b3080ccc3a192.svg", + "dataFormat": "svg", + "rotationCenterX": 68, + "rotationCenterY": 62 + }, + { + "assetId": "00c8c464c19460df693f8d5ae69afdab", + "name": "jordyn-d", + "bitmapResolution": 1, + "md5ext": "00c8c464c19460df693f8d5ae69afdab.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 62 + } + ], + "sounds": [ + { + "assetId": "199b30c8b4fe0642e849924bd1e1b463", + "name": "Goal Cheer", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 84329, + "md5ext": "199b30c8b4fe0642e849924bd1e1b463.wav" + }, + { + "assetId": "7d91d95d841dc6cf1282914306a4674a", + "name": "Referee Whistle", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 14225, + "md5ext": "7d91d95d841dc6cf1282914306a4674a.wav" + } + ], + "blocks": {} }, { "name": "Jouvi Dance", - "md5": "6f68790ee3eb9bdccf8749305186b0dd.png", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 13, - 1 - ], - "json": { - "objName": "Jouvi Dance", - "sounds": [ - { - "soundName": "dance celebrate2", - "soundID": -1, - "md5": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "jo stance", - "baseLayerID": -1, - "baseLayerMD5": "6f68790ee3eb9bdccf8749305186b0dd.png", - "bitmapResolution": 2, - "rotationCenterX": 94, - "rotationCenterY": 240 - }, - { - "costumeName": "jo top stand", - "baseLayerID": -1, - "baseLayerMD5": "0ed4a09c41871d150c51119c1bceded2.png", - "bitmapResolution": 2, - "rotationCenterX": 68, - "rotationCenterY": 260 - }, - { - "costumeName": "jo top R leg", - "baseLayerID": -1, - "baseLayerMD5": "efaa8eb6c8cf7dc35d4d37d546ebd333.png", - "bitmapResolution": 2, - "rotationCenterX": 218, - "rotationCenterY": 262 - }, - { - "costumeName": "jo top L leg", - "baseLayerID": -1, - "baseLayerMD5": "a12f40b18067bb31746f9cf461de88aa.png", - "bitmapResolution": 2, - "rotationCenterX": 208, - "rotationCenterY": 268 - }, - { - "costumeName": "jo top R cross", - "baseLayerID": -1, - "baseLayerMD5": "c2d5519e8a0f2214ff757117038c28dc.png", - "bitmapResolution": 2, - "rotationCenterX": 144, - "rotationCenterY": 270 - }, - { - "costumeName": "jo top L cross", - "baseLayerID": -1, - "baseLayerMD5": "2e2a6534d33883fdd2f8471a1adbebb7.png", - "bitmapResolution": 2, - "rotationCenterX": 84, - "rotationCenterY": 268 - }, - { - "costumeName": "jo pop front", - "baseLayerID": -1, - "baseLayerMD5": "3d3ea804243800981acabc7caba10939.png", - "bitmapResolution": 2, - "rotationCenterX": 70, - "rotationCenterY": 228 - }, - { - "costumeName": "jo pop down", - "baseLayerID": -1, - "baseLayerMD5": "a55fbb529c10f70bcb374aef8a63571b.png", - "bitmapResolution": 2, - "rotationCenterX": 68, - "rotationCenterY": 74 - }, - { - "costumeName": "jo pop left", - "baseLayerID": -1, - "baseLayerMD5": "ea812b4c2b2405aa2b73158023298f71.png", - "bitmapResolution": 2, - "rotationCenterX": 196, - "rotationCenterY": 226 - }, - { - "costumeName": "jo pop right", - "baseLayerID": -1, - "baseLayerMD5": "01dd2f553c7262329ebaba2516e3a2b1.png", - "bitmapResolution": 2, - "rotationCenterX": 66, - "rotationCenterY": 242 - }, - { - "costumeName": "jo pop L arm", - "baseLayerID": -1, - "baseLayerMD5": "a9fbc01a4124d555da12630312e46197.png", - "bitmapResolution": 2, - "rotationCenterX": 108, - "rotationCenterY": 258 - }, - { - "costumeName": "jo pop stand", - "baseLayerID": -1, - "baseLayerMD5": "75ee2383fd83992b401c8a0730521d94.png", - "bitmapResolution": 2, - "rotationCenterX": 78, - "rotationCenterY": 262 - }, - { - "costumeName": "jo pop R arm", - "baseLayerID": -1, - "baseLayerMD5": "aabfedff0d11243386b6b0941e0f72e9.png", - "bitmapResolution": 2, - "rotationCenterX": 108, - "rotationCenterY": 260 - } - ], - "currentCostumeIndex": 0, - "scratchX": -58, - "scratchY": -27, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6f68790ee3eb9bdccf8749305186b0dd", + "name": "jo stance", + "bitmapResolution": 2, + "md5ext": "6f68790ee3eb9bdccf8749305186b0dd.png", + "dataFormat": "png", + "rotationCenterX": 94, + "rotationCenterY": 240 + }, + { + "assetId": "0ed4a09c41871d150c51119c1bceded2", + "name": "jo top stand", + "bitmapResolution": 2, + "md5ext": "0ed4a09c41871d150c51119c1bceded2.png", + "dataFormat": "png", + "rotationCenterX": 68, + "rotationCenterY": 260 + }, + { + "assetId": "efaa8eb6c8cf7dc35d4d37d546ebd333", + "name": "jo top R leg", + "bitmapResolution": 2, + "md5ext": "efaa8eb6c8cf7dc35d4d37d546ebd333.png", + "dataFormat": "png", + "rotationCenterX": 218, + "rotationCenterY": 262 + }, + { + "assetId": "a12f40b18067bb31746f9cf461de88aa", + "name": "jo top L leg", + "bitmapResolution": 2, + "md5ext": "a12f40b18067bb31746f9cf461de88aa.png", + "dataFormat": "png", + "rotationCenterX": 208, + "rotationCenterY": 268 + }, + { + "assetId": "c2d5519e8a0f2214ff757117038c28dc", + "name": "jo top R cross", + "bitmapResolution": 2, + "md5ext": "c2d5519e8a0f2214ff757117038c28dc.png", + "dataFormat": "png", + "rotationCenterX": 144, + "rotationCenterY": 270 + }, + { + "assetId": "2e2a6534d33883fdd2f8471a1adbebb7", + "name": "jo top L cross", + "bitmapResolution": 2, + "md5ext": "2e2a6534d33883fdd2f8471a1adbebb7.png", + "dataFormat": "png", + "rotationCenterX": 84, + "rotationCenterY": 268 + }, + { + "assetId": "3d3ea804243800981acabc7caba10939", + "name": "jo pop front", + "bitmapResolution": 2, + "md5ext": "3d3ea804243800981acabc7caba10939.png", + "dataFormat": "png", + "rotationCenterX": 70, + "rotationCenterY": 228 + }, + { + "assetId": "a55fbb529c10f70bcb374aef8a63571b", + "name": "jo pop down", + "bitmapResolution": 2, + "md5ext": "a55fbb529c10f70bcb374aef8a63571b.png", + "dataFormat": "png", + "rotationCenterX": 68, + "rotationCenterY": 74 + }, + { + "assetId": "ea812b4c2b2405aa2b73158023298f71", + "name": "jo pop left", + "bitmapResolution": 2, + "md5ext": "ea812b4c2b2405aa2b73158023298f71.png", + "dataFormat": "png", + "rotationCenterX": 196, + "rotationCenterY": 226 + }, + { + "assetId": "01dd2f553c7262329ebaba2516e3a2b1", + "name": "jo pop right", + "bitmapResolution": 2, + "md5ext": "01dd2f553c7262329ebaba2516e3a2b1.png", + "dataFormat": "png", + "rotationCenterX": 66, + "rotationCenterY": 242 + }, + { + "assetId": "a9fbc01a4124d555da12630312e46197", + "name": "jo pop L arm", + "bitmapResolution": 2, + "md5ext": "a9fbc01a4124d555da12630312e46197.png", + "dataFormat": "png", + "rotationCenterX": 108, + "rotationCenterY": 258 + }, + { + "assetId": "75ee2383fd83992b401c8a0730521d94", + "name": "jo pop stand", + "bitmapResolution": 2, + "md5ext": "75ee2383fd83992b401c8a0730521d94.png", + "dataFormat": "png", + "rotationCenterX": 78, + "rotationCenterY": 262 + }, + { + "assetId": "aabfedff0d11243386b6b0941e0f72e9", + "name": "jo pop R arm", + "bitmapResolution": 2, + "md5ext": "aabfedff0d11243386b6b0941e0f72e9.png", + "dataFormat": "png", + "rotationCenterX": 108, + "rotationCenterY": 260 + } + ], + "sounds": [ + { + "assetId": "0edb8fb88af19e6e17d0f8cf64c1d136", + "name": "dance celebrate", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 176785, + "md5ext": "0edb8fb88af19e6e17d0f8cf64c1d136.wav" + } + ], + "blocks": {} }, { "name": "Kai", - "md5": "6e007fde15e49c66ee7996561f80b452.png", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Kai", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "kai-a", - "baseLayerID": -1, - "baseLayerMD5": "6e007fde15e49c66ee7996561f80b452.png", - "bitmapResolution": 2, - "rotationCenterX": 68, - "rotationCenterY": 160 - }, - { - "costumeName": "kai-b", - "baseLayerID": -1, - "baseLayerMD5": "c1e1149f6d7e308e3e4eba14ccc8a751.png", - "bitmapResolution": 2, - "rotationCenterX": 82, - "rotationCenterY": 158 - } - ], - "currentCostumeIndex": 0, - "scratchX": 57, - "scratchY": 47, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6e007fde15e49c66ee7996561f80b452", + "name": "kai-a", + "bitmapResolution": 2, + "md5ext": "6e007fde15e49c66ee7996561f80b452.png", + "dataFormat": "png", + "rotationCenterX": 68, + "rotationCenterY": 160 + }, + { + "assetId": "c1e1149f6d7e308e3e4eba14ccc8a751", + "name": "kai-b", + "bitmapResolution": 2, + "md5ext": "c1e1149f6d7e308e3e4eba14ccc8a751.png", + "dataFormat": "png", + "rotationCenterX": 82, + "rotationCenterY": 158 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Key", - "md5": "af35300cef35803e11f4ed744dc5e818.svg", - "type": "sprite", "tags": [ "thing", "fantasy" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Key", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "key", - "baseLayerID": -1, - "baseLayerMD5": "af35300cef35803e11f4ed744dc5e818.svg", - "bitmapResolution": 1, - "rotationCenterX": 42, - "rotationCenterY": 27 - } - ], - "currentCostumeIndex": 0, - "scratchX": -14, - "scratchY": 0, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "680d3e4dce002f922b32447fcf29743d", + "name": "key", + "bitmapResolution": 1, + "md5ext": "680d3e4dce002f922b32447fcf29743d.svg", + "dataFormat": "svg", + "rotationCenterX": 42, + "rotationCenterY": 27 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Keyboard", - "md5": "c67d180e964926b6393ac14781541b39.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 8 - ], - "json": { - "objName": "Keyboard", - "sounds": [ - { - "soundName": "C Elec Piano", - "soundID": -1, - "md5": "8366ee963cc57ad24a8a35a26f722c2b.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "D Elec Piano", - "soundID": -1, - "md5": "835f136ca8d346a17b4d4baf8405be37.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "E Elec Piano", - "soundID": -1, - "md5": "ab3c198f8e36efff14f0a5bad35fa3cd.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "F Elec Piano", - "soundID": -1, - "md5": "dc5e368fc0d0dad1da609bfc3e29aa15.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "G Elec Piano", - "soundID": -1, - "md5": "39525f6545d62a95d05153f92d63301a.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "A Elec Piano", - "soundID": -1, - "md5": "0cfa8e84d6a5cd63afa31d541625a9ef.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "B Elec Piano", - "soundID": -1, - "md5": "9cc77167419f228503dd57fddaa5b2a6.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - }, - { - "soundName": "C2 Elec Piano", - "soundID": -1, - "md5": "366c7edbd4dd5cca68bf62902999bd66.wav", - "sampleCount": 44100, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "keyboard-a", - "baseLayerID": -1, - "baseLayerMD5": "c67d180e964926b6393ac14781541b39.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 68 - }, - { - "costumeName": "keyboard-b", - "baseLayerID": -1, - "baseLayerMD5": "dbaf62b33de45093c3c7d13b5d49d637.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 68 - } - ], - "currentCostumeIndex": 0, - "scratchX": 135, - "scratchY": -90, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0ad880b5e829578832c8927b3f6ef7f8", + "name": "keyboard-a", + "bitmapResolution": 1, + "md5ext": "0ad880b5e829578832c8927b3f6ef7f8.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 68 + }, + { + "assetId": "6efd23c91dab070526feacdf72e2d3da", + "name": "keyboard-b", + "bitmapResolution": 1, + "md5ext": "6efd23c91dab070526feacdf72e2d3da.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 68 + } + ], + "sounds": [ + { + "assetId": "8366ee963cc57ad24a8a35a26f722c2b", + "name": "C Elec Piano", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "8366ee963cc57ad24a8a35a26f722c2b.wav" + }, + { + "assetId": "835f136ca8d346a17b4d4baf8405be37", + "name": "D Elec Piano", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "835f136ca8d346a17b4d4baf8405be37.wav" + }, + { + "assetId": "ab3c198f8e36efff14f0a5bad35fa3cd", + "name": "E Elec Piano", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "ab3c198f8e36efff14f0a5bad35fa3cd.wav" + }, + { + "assetId": "dc5e368fc0d0dad1da609bfc3e29aa15", + "name": "F Elec Piano", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "dc5e368fc0d0dad1da609bfc3e29aa15.wav" + }, + { + "assetId": "39525f6545d62a95d05153f92d63301a", + "name": "G Elec Piano", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "39525f6545d62a95d05153f92d63301a.wav" + }, + { + "assetId": "0cfa8e84d6a5cd63afa31d541625a9ef", + "name": "A Elec Piano", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "0cfa8e84d6a5cd63afa31d541625a9ef.wav" + }, + { + "assetId": "9cc77167419f228503dd57fddaa5b2a6", + "name": "B Elec Piano", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "9cc77167419f228503dd57fddaa5b2a6.wav" + }, + { + "assetId": "366c7edbd4dd5cca68bf62902999bd66", + "name": "C2 Elec Piano", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88200, + "md5ext": "366c7edbd4dd5cca68bf62902999bd66.wav" + } + ], + "blocks": {} + }, + { + "name": "Kia", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e56e480c994572323d88355b8733e1a3", + "name": "Kia-a", + "bitmapResolution": 1, + "md5ext": "e56e480c994572323d88355b8733e1a3.svg", + "dataFormat": "svg", + "rotationCenterX": 38.99436950683594, + "rotationCenterY": 133.91017150878906 + }, + { + "assetId": "b3d0a248adbc26b0d0826e042a81670a", + "name": "Kia-b", + "bitmapResolution": 1, + "md5ext": "b3d0a248adbc26b0d0826e042a81670a.svg", + "dataFormat": "svg", + "rotationCenterX": 33.86018625895264, + "rotationCenterY": 133.81014001838557 + }, + { + "assetId": "db6cd6b145bb6d8dc299475af7423d6e", + "name": "Kia-c", + "bitmapResolution": 1, + "md5ext": "db6cd6b145bb6d8dc299475af7423d6e.svg", + "dataFormat": "svg", + "rotationCenterX": 55.533868959382346, + "rotationCenterY": 133.7360717987814 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "Pop", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 1123, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Kiran", - "md5": "9de23c4a7a7fbb67136b539241346854.svg", - "type": "sprite", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 0, - 6, - 1 - ], - "json": { - "objName": "Kiran", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "kiran-a", - "baseLayerID": -1, - "baseLayerMD5": "9de23c4a7a7fbb67136b539241346854.svg", - "bitmapResolution": 1, - "rotationCenterX": 67, - "rotationCenterY": 95 - }, - { - "costumeName": "kiran-b", - "baseLayerID": -1, - "baseLayerMD5": "f1e74f3c02333e9e2068e8baf4e77aa0.svg", - "bitmapResolution": 1, - "rotationCenterX": 67, - "rotationCenterY": 95 - }, - { - "costumeName": "kiran-c", - "baseLayerID": -1, - "baseLayerMD5": "e2482cf509c312935f08be0e2e2c9d84.svg", - "bitmapResolution": 1, - "rotationCenterX": 67, - "rotationCenterY": 95 - }, - { - "costumeName": "kiran-d", - "baseLayerID": -1, - "baseLayerMD5": "569e736b519199efddfbae2572f7e92b.svg", - "bitmapResolution": 1, - "rotationCenterX": 67, - "rotationCenterY": 95 - }, - { - "costumeName": "kiran-e", - "baseLayerID": -1, - "baseLayerMD5": "2261bed0f2cc819def17969158297b4f.svg", - "bitmapResolution": 1, - "rotationCenterX": 77, - "rotationCenterY": 95 - }, - { - "costumeName": "kiran-f", - "baseLayerID": -1, - "baseLayerMD5": "d7f44adb3dc7906b9dfb3599a028e0d6.svg", - "bitmapResolution": 1, - "rotationCenterX": 62, - "rotationCenterY": 94 - } - ], - "currentCostumeIndex": 0, - "scratchX": 57, - "scratchY": -42, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "7c0bedab5404830a5147cc4a2d46e997", + "name": "kiran-a", + "bitmapResolution": 1, + "md5ext": "7c0bedab5404830a5147cc4a2d46e997.svg", + "dataFormat": "svg", + "rotationCenterX": 67, + "rotationCenterY": 95 + }, + { + "assetId": "b0566e0eed7b5216b92d61468d21ecee", + "name": "kiran-b", + "bitmapResolution": 1, + "md5ext": "b0566e0eed7b5216b92d61468d21ecee.svg", + "dataFormat": "svg", + "rotationCenterX": 67, + "rotationCenterY": 95 + }, + { + "assetId": "78bd6de23d4929aef678ddf0f3f5c276", + "name": "kiran-c", + "bitmapResolution": 1, + "md5ext": "78bd6de23d4929aef678ddf0f3f5c276.svg", + "dataFormat": "svg", + "rotationCenterX": 67, + "rotationCenterY": 95 + }, + { + "assetId": "2928e9fbd5ca08e326192b3a41bea691", + "name": "kiran-d", + "bitmapResolution": 1, + "md5ext": "2928e9fbd5ca08e326192b3a41bea691.svg", + "dataFormat": "svg", + "rotationCenterX": 67, + "rotationCenterY": 95 + }, + { + "assetId": "7912b6f378bd781f62683e003c574dbe", + "name": "kiran-e", + "bitmapResolution": 1, + "md5ext": "7912b6f378bd781f62683e003c574dbe.svg", + "dataFormat": "svg", + "rotationCenterX": 77, + "rotationCenterY": 95 + }, + { + "assetId": "7f0bc123819fc2666321b6cd38069bdb", + "name": "kiran-f", + "bitmapResolution": 1, + "md5ext": "7f0bc123819fc2666321b6cd38069bdb.svg", + "dataFormat": "svg", + "rotationCenterX": 62, + "rotationCenterY": 94 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Knight", - "md5": "f2c5e8bc24d001b81566879dbf2f1a13.svg", - "type": "sprite", "tags": [ "people", "castle", "armor" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Knight", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "knight", - "baseLayerID": -1, - "baseLayerMD5": "f2c5e8bc24d001b81566879dbf2f1a13.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": 90, - "scratchY": -18, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "188325c56b79ff3cd58497c970ba87a6", + "name": "knight", + "bitmapResolution": 1, + "md5ext": "188325c56b79ff3cd58497c970ba87a6.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "LB Dance", - "md5": "71dde8c43985815bffb5a5ed5632af58.png", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 13, - 1 - ], - "json": { - "objName": "LB Dance", - "sounds": [ - { - "soundName": "dance celebrate", - "soundID": -1, - "md5": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "lb stance", - "baseLayerID": 0, - "baseLayerMD5": "71dde8c43985815bffb5a5ed5632af58.png", - "bitmapResolution": 2, - "rotationCenterX": 54, - "rotationCenterY": 244 - }, - { - "costumeName": "lb top stand", - "baseLayerID": -1, - "baseLayerMD5": "e68d899e178309ff3eae3e1de8a8ec28.png", - "bitmapResolution": 2, - "rotationCenterX": 70, - "rotationCenterY": 248 - }, - { - "costumeName": "lb top R leg", - "baseLayerID": -1, - "baseLayerMD5": "79ca528d13ffb557a236f0a35a0eb486.png", - "bitmapResolution": 2, - "rotationCenterX": 244, - "rotationCenterY": 250 - }, - { - "costumeName": "lb top L leg", - "baseLayerID": -1, - "baseLayerMD5": "63d099e94aa8a973dcfa4c5d8b4a3e7a.png", - "bitmapResolution": 2, - "rotationCenterX": 234, - "rotationCenterY": 286 - }, - { - "costumeName": "lb top L cross", - "baseLayerID": -1, - "baseLayerMD5": "645d6e2674452009df7a9a844a604791.png", - "bitmapResolution": 2, - "rotationCenterX": 148, - "rotationCenterY": 258 - }, - { - "costumeName": "lb top R cross", - "baseLayerID": -1, - "baseLayerMD5": "4423159d81378ada5ffd7f053d7ef471.png", - "bitmapResolution": 2, - "rotationCenterX": 174, - "rotationCenterY": 256 - }, - { - "costumeName": "lb pop front", - "baseLayerID": -1, - "baseLayerMD5": "cdd52259075b75628001672d375e4985.png", - "bitmapResolution": 2, - "rotationCenterX": 66, - "rotationCenterY": 272 - }, - { - "costumeName": "lb pop down", - "baseLayerID": -1, - "baseLayerMD5": "563f86443cb102b9241cebb62eb2d81a.png", - "bitmapResolution": 2, - "rotationCenterX": 56, - "rotationCenterY": 90 - }, - { - "costumeName": "lb pop left", - "baseLayerID": -1, - "baseLayerMD5": "525285312925e1e6b4e237a119b61305.png", - "bitmapResolution": 2, - "rotationCenterX": 198, - "rotationCenterY": 266 - }, - { - "costumeName": "lb pop right", - "baseLayerID": -1, - "baseLayerMD5": "0a2461b3b9a4b8603e75565d78b1d4d7.png", - "bitmapResolution": 2, - "rotationCenterX": 76, - "rotationCenterY": 264 - }, - { - "costumeName": "lb pop L arm", - "baseLayerID": -1, - "baseLayerMD5": "b508808c087adb55ce156f5cfbdac61b.png", - "bitmapResolution": 2, - "rotationCenterX": 100, - "rotationCenterY": 262 - }, - { - "costumeName": "lb pop stand", - "baseLayerID": -1, - "baseLayerMD5": "5f176ef763be18f7c342dc2e2de7bf16.png", - "bitmapResolution": 2, - "rotationCenterX": 66, - "rotationCenterY": 268 - }, - { - "costumeName": "lb pop R arm", - "baseLayerID": -1, - "baseLayerMD5": "0725440743391e7c622bb5df6a94e1d4.png", - "bitmapResolution": 2, - "rotationCenterX": 78, - "rotationCenterY": 258 - } - ], - "currentCostumeIndex": 0, - "scratchX": 12, - "scratchY": 17, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "71dde8c43985815bffb5a5ed5632af58", + "name": "lb stance", + "bitmapResolution": 2, + "md5ext": "71dde8c43985815bffb5a5ed5632af58.png", + "dataFormat": "png", + "rotationCenterX": 54, + "rotationCenterY": 244 + }, + { + "assetId": "e68d899e178309ff3eae3e1de8a8ec28", + "name": "lb top stand", + "bitmapResolution": 2, + "md5ext": "e68d899e178309ff3eae3e1de8a8ec28.png", + "dataFormat": "png", + "rotationCenterX": 70, + "rotationCenterY": 248 + }, + { + "assetId": "79ca528d13ffb557a236f0a35a0eb486", + "name": "lb top R leg", + "bitmapResolution": 2, + "md5ext": "79ca528d13ffb557a236f0a35a0eb486.png", + "dataFormat": "png", + "rotationCenterX": 244, + "rotationCenterY": 250 + }, + { + "assetId": "63d099e94aa8a973dcfa4c5d8b4a3e7a", + "name": "lb top L leg", + "bitmapResolution": 2, + "md5ext": "63d099e94aa8a973dcfa4c5d8b4a3e7a.png", + "dataFormat": "png", + "rotationCenterX": 234, + "rotationCenterY": 286 + }, + { + "assetId": "645d6e2674452009df7a9a844a604791", + "name": "lb top L cross", + "bitmapResolution": 2, + "md5ext": "645d6e2674452009df7a9a844a604791.png", + "dataFormat": "png", + "rotationCenterX": 148, + "rotationCenterY": 258 + }, + { + "assetId": "4423159d81378ada5ffd7f053d7ef471", + "name": "lb top R cross", + "bitmapResolution": 2, + "md5ext": "4423159d81378ada5ffd7f053d7ef471.png", + "dataFormat": "png", + "rotationCenterX": 174, + "rotationCenterY": 256 + }, + { + "assetId": "cdd52259075b75628001672d375e4985", + "name": "lb pop front", + "bitmapResolution": 2, + "md5ext": "cdd52259075b75628001672d375e4985.png", + "dataFormat": "png", + "rotationCenterX": 66, + "rotationCenterY": 272 + }, + { + "assetId": "563f86443cb102b9241cebb62eb2d81a", + "name": "lb pop down", + "bitmapResolution": 2, + "md5ext": "563f86443cb102b9241cebb62eb2d81a.png", + "dataFormat": "png", + "rotationCenterX": 56, + "rotationCenterY": 90 + }, + { + "assetId": "525285312925e1e6b4e237a119b61305", + "name": "lb pop left", + "bitmapResolution": 2, + "md5ext": "525285312925e1e6b4e237a119b61305.png", + "dataFormat": "png", + "rotationCenterX": 198, + "rotationCenterY": 266 + }, + { + "assetId": "0a2461b3b9a4b8603e75565d78b1d4d7", + "name": "lb pop right", + "bitmapResolution": 2, + "md5ext": "0a2461b3b9a4b8603e75565d78b1d4d7.png", + "dataFormat": "png", + "rotationCenterX": 76, + "rotationCenterY": 264 + }, + { + "assetId": "b508808c087adb55ce156f5cfbdac61b", + "name": "lb pop L arm", + "bitmapResolution": 2, + "md5ext": "b508808c087adb55ce156f5cfbdac61b.png", + "dataFormat": "png", + "rotationCenterX": 100, + "rotationCenterY": 262 + }, + { + "assetId": "5f176ef763be18f7c342dc2e2de7bf16", + "name": "lb pop stand", + "bitmapResolution": 2, + "md5ext": "5f176ef763be18f7c342dc2e2de7bf16.png", + "dataFormat": "png", + "rotationCenterX": 66, + "rotationCenterY": 268 + }, + { + "assetId": "0725440743391e7c622bb5df6a94e1d4", + "name": "lb pop R arm", + "bitmapResolution": 2, + "md5ext": "0725440743391e7c622bb5df6a94e1d4.png", + "dataFormat": "png", + "rotationCenterX": 78, + "rotationCenterY": 258 + } + ], + "sounds": [ + { + "assetId": "0edb8fb88af19e6e17d0f8cf64c1d136", + "name": "dance celebrate", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 176785, + "md5ext": "0edb8fb88af19e6e17d0f8cf64c1d136.wav" + } + ], + "blocks": {} }, { "name": "Ladybug1", - "md5": "f16a1ccc69a4a8190a927f1595aa7bfa.svg", - "type": "sprite", "tags": [ "animals", "insect", "bug", "antennae" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Ladybug1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "ladybug2", - "baseLayerID": -1, - "baseLayerMD5": "f16a1ccc69a4a8190a927f1595aa7bfa.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 43 - } - ], - "currentCostumeIndex": 0, - "scratchX": -90, - "scratchY": 42, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "169c0efa8c094fdedddf8c19c36f0229", + "name": "ladybug2", + "bitmapResolution": 1, + "md5ext": "169c0efa8c094fdedddf8c19c36f0229.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 43 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Ladybug2", - "md5": "c018a3eed966d5f92c69f2188dfd2aae.svg", - "type": "sprite", "tags": [ "animals", "insect", @@ -9608,102 +8304,75 @@ "antennae", "aphids" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Ladybug2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "ladybug2-a", - "baseLayerID": -1, - "baseLayerMD5": "c018a3eed966d5f92c69f2188dfd2aae.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 28 - }, - { - "costumeName": "ladybug2-b", - "baseLayerID": -1, - "baseLayerMD5": "a2bb15ace808e070a2b815502952b292.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 28 - } - ], - "currentCostumeIndex": 0, - "scratchX": 26, - "scratchY": -3, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "457200f8dec8fea00d22473e9bd9175e", + "name": "ladybug2-a", + "bitmapResolution": 1, + "md5ext": "457200f8dec8fea00d22473e9bd9175e.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 28 + }, + { + "assetId": "3f48228829b77fc47d6d89b5729b2957", + "name": "ladybug2-b", + "bitmapResolution": 1, + "md5ext": "3f48228829b77fc47d6d89b5729b2957.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 28 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Laptop", - "md5": "76f456b30b98eeefd7c942b27b524e31.svg", - "type": "sprite", "tags": [ "things", "computers" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Laptop", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "laptop", - "baseLayerID": -1, - "baseLayerMD5": "76f456b30b98eeefd7c942b27b524e31.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": -22, - "scratchY": 7, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "cd2d1f72275e676df5f82be74ae91dfa", + "name": "laptop", + "bitmapResolution": 1, + "md5ext": "cd2d1f72275e676df5f82be74ae91dfa.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Lightning", - "md5": "c2d636ab2b491e591536afc3d49cbecd.svg", - "type": "sprite", "tags": [ "weather", "whether", @@ -9711,95 +8380,67 @@ "storm", "thunder" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Lightning", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "lightning", - "baseLayerID": -1, - "baseLayerMD5": "c2d636ab2b491e591536afc3d49cbecd.svg", - "bitmapResolution": 1, - "rotationCenterX": 21, - "rotationCenterY": 83 - } - ], - "currentCostumeIndex": 0, - "scratchX": 65, - "scratchY": 25, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0ddd3a05a330925bcd2d048908ed40b8", + "name": "lightning", + "bitmapResolution": 1, + "md5ext": "0ddd3a05a330925bcd2d048908ed40b8.svg", + "dataFormat": "svg", + "rotationCenterX": 21, + "rotationCenterY": 83 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Line", - "md5": "1b2cfb4d4746522aeb84e16a62820299.svg", - "type": "sprite", "tags": [ "lava", "shape", "red" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Line", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "line", - "baseLayerID": -1, - "baseLayerMD5": "1b2cfb4d4746522aeb84e16a62820299.svg", - "bitmapResolution": 1, - "rotationCenterX": 239, - "rotationCenterY": 7 - } - ], - "currentCostumeIndex": 0, - "scratchX": 43, - "scratchY": -13, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e85305b47cfd92d971704dcb7ad6e17b", + "name": "line", + "bitmapResolution": 1, + "md5ext": "e85305b47cfd92d971704dcb7ad6e17b.svg", + "dataFormat": "svg", + "rotationCenterX": 239, + "rotationCenterY": 7 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Lion", - "md5": "75e6b2178518fa354f1ebf7ab7061ceb.svg", - "type": "sprite", "tags": [ "cat", "animals", @@ -9807,1055 +8448,1001 @@ "savanna", "robert hunter" ], - "info": [ - 0, - 3, - 2 - ], - "json": { - "objName": "Lion", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - }, - { - "soundName": "grunt", - "soundID": -1, - "md5": "caa0a1685ef7a5334413834c6c818c5a.wav", - "sampleCount": 20551, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "lion-a", - "baseLayerID": -1, - "baseLayerMD5": "75e6b2178518fa354f1ebf7ab7061ceb.svg", - "bitmapResolution": 1, - "rotationCenterX": 95, - "rotationCenterY": 43 - }, - { - "costumeName": "lion-b", - "baseLayerID": -1, - "baseLayerMD5": "7304176fe4dc85758e6b77324a185ea2.svg", - "bitmapResolution": 1, - "rotationCenterX": 94, - "rotationCenterY": 43 - }, - { - "costumeName": "lion-c", - "baseLayerID": -1, - "baseLayerMD5": "8411de793909216761cd19fd95418945.svg", - "bitmapResolution": 1, - "rotationCenterX": 95, - "rotationCenterY": 43 - } - ], - "currentCostumeIndex": 0, - "scratchX": 25, - "scratchY": -87, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e88e83c8b3ca80c54540b5f0c5a0cc03", + "name": "lion-a", + "bitmapResolution": 1, + "md5ext": "e88e83c8b3ca80c54540b5f0c5a0cc03.svg", + "dataFormat": "svg", + "rotationCenterX": 95, + "rotationCenterY": 43 + }, + { + "assetId": "f0d9ab3d82bbade6e279dc1c81e2e6db", + "name": "lion-b", + "bitmapResolution": 1, + "md5ext": "f0d9ab3d82bbade6e279dc1c81e2e6db.svg", + "dataFormat": "svg", + "rotationCenterX": 94, + "rotationCenterY": 43 + }, + { + "assetId": "91c64c5361d906fd36d5813ae27b85a8", + "name": "lion-c", + "bitmapResolution": 1, + "md5ext": "91c64c5361d906fd36d5813ae27b85a8.svg", + "dataFormat": "svg", + "rotationCenterX": 95, + "rotationCenterY": 43 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + }, + { + "assetId": "caa0a1685ef7a5334413834c6c818c5a", + "name": "grunt", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 21337, + "md5ext": "caa0a1685ef7a5334413834c6c818c5a.wav" + } + ], + "blocks": {} }, { "name": "Llama", - "md5": "f5841f36b41c4df26f9c724d913c279b.svg", - "type": "sprite", "tags": [ "animals", "mammal", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Llama", - "sounds": [ - { - "soundName": "snort", - "soundID": -1, - "md5": "362d7440a57cab29914fecea621e50d4.wav", - "sampleCount": 16421, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "llama", - "baseLayerID": -1, - "baseLayerMD5": "f5841f36b41c4df26f9c724d913c279b.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 95 - }, - { - "costumeName": "llama-b", - "baseLayerID": -1, - "baseLayerMD5": "ef3f8491668de2b751d8d7a8921c9879.svg", - "bitmapResolution": 1, - "rotationCenterX": 92, - "rotationCenterY": 90 - }, - { - "costumeName": "llama-c", - "baseLayerID": -1, - "baseLayerMD5": "b0af19d2c7a7c039c060f21874816164.svg", - "bitmapResolution": 1, - "rotationCenterX": 73, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -143, - "scratchY": -14, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c97824f20a45adfa3ff362f82247a025", + "name": "llama", + "bitmapResolution": 1, + "md5ext": "c97824f20a45adfa3ff362f82247a025.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 95 + }, + { + "assetId": "1f3aaeb598e121ad817143800d8c4a32", + "name": "llama-b", + "bitmapResolution": 1, + "md5ext": "1f3aaeb598e121ad817143800d8c4a32.svg", + "dataFormat": "svg", + "rotationCenterX": 92, + "rotationCenterY": 90 + }, + { + "assetId": "ac80d75745315f052f7f7b4e62e4a850", + "name": "llama-c", + "bitmapResolution": 1, + "md5ext": "ac80d75745315f052f7f7b4e62e4a850.svg", + "dataFormat": "svg", + "rotationCenterX": 73, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "362d7440a57cab29914fecea621e50d4", + "name": "snort", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 17273, + "md5ext": "362d7440a57cab29914fecea621e50d4.wav" + } + ], + "blocks": {} + }, + { + "name": "Luca", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "90fa2ad340edc6e6ba963710feef940e", + "name": "Luca-a", + "bitmapResolution": 1, + "md5ext": "90fa2ad340edc6e6ba963710feef940e.svg", + "dataFormat": "svg", + "rotationCenterX": 44.518938859952925, + "rotationCenterY": 130.28487970293187 + }, + { + "assetId": "18dfad514602a4907502c7c84861b24e", + "name": "Luca-b", + "bitmapResolution": 1, + "md5ext": "18dfad514602a4907502c7c84861b24e.svg", + "dataFormat": "svg", + "rotationCenterX": 41.801770753585856, + "rotationCenterY": 130.2642790555675 + }, + { + "assetId": "963cb82687acaf5de53a22b287192723", + "name": "Luca-c", + "bitmapResolution": 1, + "md5ext": "963cb82687acaf5de53a22b287192723.svg", + "dataFormat": "svg", + "rotationCenterX": 50.565256229860694, + "rotationCenterY": 130.02168173555543 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "Pop", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 1123, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Magic Wand", - "md5": "3db9bfe57d561557795633c5cda44e8c.svg", - "type": "sprite", "tags": [ "fantasy", "things", "zap" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Magic Wand", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "magicwand", - "baseLayerID": -1, - "baseLayerMD5": "3db9bfe57d561557795633c5cda44e8c.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 18 - } - ], - "currentCostumeIndex": 0, - "scratchX": 78, - "scratchY": 35, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "89aa5332042d7bbf8368293a4efeafa4", + "name": "magicwand", + "bitmapResolution": 1, + "md5ext": "89aa5332042d7bbf8368293a4efeafa4.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 18 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Marian", - "md5": "e9577a1eb098905dd386135bb38c0398.png", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Marian", - "sounds": [ - { - "soundName": "Hand Clap", - "soundID": -1, - "md5": "9502142875e67f7b0292a117a27e9563.wav", - "sampleCount": 2464, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "marian-a", - "baseLayerID": -1, - "baseLayerMD5": "e9577a1eb098905dd386135bb38c0398.png", - "bitmapResolution": 2, - "rotationCenterX": 108.5, - "rotationCenterY": 226 - }, - { - "costumeName": "marian-b", - "baseLayerID": -1, - "baseLayerMD5": "3d2ecee35eab8c37d1c3eadfe50ce447.png", - "bitmapResolution": 2, - "rotationCenterX": 108.5, - "rotationCenterY": 226 - }, - { - "costumeName": "marian-c", - "baseLayerID": -1, - "baseLayerMD5": "221e9999b20ecc21b37c68fcdf09ab02.png", - "bitmapResolution": 2, - "rotationCenterX": 70.5, - "rotationCenterY": 226 - }, - { - "costumeName": "marian-d", - "baseLayerID": -1, - "baseLayerMD5": "64206b46c411e40926569cf3f5e587be.png", - "bitmapResolution": 2, - "rotationCenterX": 139, - "rotationCenterY": 219 - }, - { - "costumeName": "marian-e", - "baseLayerID": -1, - "baseLayerMD5": "16893c6136292ae36e13dc72cc55719b.png", - "bitmapResolution": 2, - "rotationCenterX": 69.5, - "rotationCenterY": 211.5 - } - ], - "currentCostumeIndex": 0, - "scratchX": 143, - "scratchY": -71, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e9577a1eb098905dd386135bb38c0398", + "name": "Marian-a", + "bitmapResolution": 2, + "md5ext": "e9577a1eb098905dd386135bb38c0398.png", + "dataFormat": "png", + "rotationCenterX": 108.5, + "rotationCenterY": 226 + }, + { + "assetId": "3d2ecee35eab8c37d1c3eadfe50ce447", + "name": "Marian-b", + "bitmapResolution": 2, + "md5ext": "3d2ecee35eab8c37d1c3eadfe50ce447.png", + "dataFormat": "png", + "rotationCenterX": 108.5, + "rotationCenterY": 226 + }, + { + "assetId": "221e9999b20ecc21b37c68fcdf09ab02", + "name": "Marian-c", + "bitmapResolution": 2, + "md5ext": "221e9999b20ecc21b37c68fcdf09ab02.png", + "dataFormat": "png", + "rotationCenterX": 70.5, + "rotationCenterY": 226 + }, + { + "assetId": "64206b46c411e40926569cf3f5e587be", + "name": "Marian-d", + "bitmapResolution": 2, + "md5ext": "64206b46c411e40926569cf3f5e587be.png", + "dataFormat": "png", + "rotationCenterX": 139, + "rotationCenterY": 219 + }, + { + "assetId": "16893c6136292ae36e13dc72cc55719b", + "name": "Marian-e", + "bitmapResolution": 2, + "md5ext": "16893c6136292ae36e13dc72cc55719b.png", + "dataFormat": "png", + "rotationCenterX": 69.5, + "rotationCenterY": 211.5 + } + ], + "sounds": [ + { + "assetId": "9502142875e67f7b0292a117a27e9563", + "name": "Hand Clap", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 4928, + "md5ext": "9502142875e67f7b0292a117a27e9563.wav" + } + ], + "blocks": {} }, { "name": "Max", - "md5": "5cc168bddf4561e6e7f1d30845d6efbf.svg", - "type": "sprite", "tags": [ "sports", "basketball", "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Max", - "sounds": [ - { - "soundName": "basketball bounce", - "soundID": -1, - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "max-a", - "baseLayerID": -1, - "baseLayerMD5": "5cc168bddf4561e6e7f1d30845d6efbf.svg", - "bitmapResolution": 1, - "rotationCenterX": 70, - "rotationCenterY": 61 - }, - { - "costumeName": "max-b", - "baseLayerID": -1, - "baseLayerMD5": "8e2ad5735e26c5544b6b1a057f4efa80.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 64 - }, - { - "costumeName": "max-c", - "baseLayerID": -1, - "baseLayerMD5": "261a40ebecfe135308befd79c6c07fd5.svg", - "bitmapResolution": 1, - "rotationCenterX": 46, - "rotationCenterY": 59 - }, - { - "costumeName": "max-d", - "baseLayerID": -1, - "baseLayerMD5": "4b6eecd411daddef6422fa3a5850cd52.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 59 - } - ], - "currentCostumeIndex": 0, - "scratchX": 143, - "scratchY": -71, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5180649cfd62831c52f8994ce644d6ac", + "name": "max-a", + "bitmapResolution": 1, + "md5ext": "5180649cfd62831c52f8994ce644d6ac.svg", + "dataFormat": "svg", + "rotationCenterX": 70, + "rotationCenterY": 61 + }, + { + "assetId": "9669ce16eb6c6df6f26686598a59711d", + "name": "max-b", + "bitmapResolution": 1, + "md5ext": "9669ce16eb6c6df6f26686598a59711d.svg", + "dataFormat": "svg", + "rotationCenterX": 71, + "rotationCenterY": 64 + }, + { + "assetId": "7b3d1324382032f87384ef2c8c618156", + "name": "max-c", + "bitmapResolution": 1, + "md5ext": "7b3d1324382032f87384ef2c8c618156.svg", + "dataFormat": "svg", + "rotationCenterX": 46, + "rotationCenterY": 59 + }, + { + "assetId": "6b91183a4ad162e4950d95828a85144d", + "name": "max-d", + "bitmapResolution": 1, + "md5ext": "6b91183a4ad162e4950d95828a85144d.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 59 + } + ], + "sounds": [ + { + "assetId": "1727f65b5f22d151685b8e5917456a60", + "name": "basketball bounce", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav" + } + ], + "blocks": {} }, { "name": "Mermaid", - "md5": "36db41c47259881c26d9b98a806d3308.svg", - "type": "sprite", "tags": [ "fantasy", "people", "underwater", "ipzy" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Mermaid", - "sounds": [ - { - "soundName": "ocean wave", - "soundID": -1, - "md5": "c904610d770398b98872a708a2f75611.wav", - "sampleCount": 99206, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "mermaid-a", - "baseLayerID": -1, - "baseLayerMD5": "36db41c47259881c26d9b98a806d3308.svg", - "bitmapResolution": 1, - "rotationCenterX": 92, - "rotationCenterY": 130 - }, - { - "costumeName": "mermaid-b", - "baseLayerID": -1, - "baseLayerMD5": "564bf3f466df3b3e8aba71eeae8255ab.svg", - "bitmapResolution": 1, - "rotationCenterX": 92, - "rotationCenterY": 130 - }, - { - "costumeName": "mermaid-c", - "baseLayerID": -1, - "baseLayerMD5": "2295784bb8e6354bfa7676089235cb9f.svg", - "bitmapResolution": 1, - "rotationCenterX": 150, - "rotationCenterY": 115 - }, - { - "costumeName": "mermaid-d", - "baseLayerID": -1, - "baseLayerMD5": "9f973b89b68f7d8147f157cbac8af341.svg", - "bitmapResolution": 1, - "rotationCenterX": 150, - "rotationCenterY": 115 - } - ], - "currentCostumeIndex": 0, - "scratchX": -110, - "scratchY": -21, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "88a3b6b2f0b3ffa25cab97bc619f8386", + "name": "mermaid-a", + "bitmapResolution": 1, + "md5ext": "88a3b6b2f0b3ffa25cab97bc619f8386.svg", + "dataFormat": "svg", + "rotationCenterX": 92, + "rotationCenterY": 130 + }, + { + "assetId": "f903049308e2171178d889f5c4a7d466", + "name": "mermaid-b", + "bitmapResolution": 1, + "md5ext": "f903049308e2171178d889f5c4a7d466.svg", + "dataFormat": "svg", + "rotationCenterX": 92, + "rotationCenterY": 130 + }, + { + "assetId": "2a6274017350fab67ebec9157420ae96", + "name": "mermaid-c", + "bitmapResolution": 1, + "md5ext": "2a6274017350fab67ebec9157420ae96.svg", + "dataFormat": "svg", + "rotationCenterX": 150, + "rotationCenterY": 115 + }, + { + "assetId": "65419296861b1c7ee59075af0f949d67", + "name": "mermaid-d", + "bitmapResolution": 1, + "md5ext": "65419296861b1c7ee59075af0f949d67.svg", + "dataFormat": "svg", + "rotationCenterX": 150, + "rotationCenterY": 115 + } + ], + "sounds": [ + { + "assetId": "c904610d770398b98872a708a2f75611", + "name": "ocean wave", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 99569, + "md5ext": "c904610d770398b98872a708a2f75611.wav" + } + ], + "blocks": {} }, { "name": "Microphone", - "md5": "9126b6362313e20578fb88d38902cd4c.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 9 - ], - "json": { - "objName": "Microphone", - "sounds": [ - { - "soundName": "Bass Beatbox", - "soundID": -1, - "md5": "28153621d293c86da0b246d314458faf.wav", - "sampleCount": 6720, - "rate": 22050, - "format": "" - }, - { - "soundName": "Clap Beatbox", - "soundID": -1, - "md5": "abc70bb390f8e55f22f32265500d814a.wav", - "sampleCount": 4224, - "rate": 22050, - "format": "" - }, - { - "soundName": "Hi Beatbox", - "soundID": -1, - "md5": "5a07847bf246c227204728b05a3fc8f3.wav", - "sampleCount": 5856, - "rate": 22050, - "format": "" - }, - { - "soundName": "Scratch Beatbox", - "soundID": -1, - "md5": "859249563a7b1fc0f6e92e36d1db81c7.wav", - "sampleCount": 11552, - "rate": 22050, - "format": "" - }, - { - "soundName": "Snare Beatbox", - "soundID": -1, - "md5": "c642c4c00135d890998f351faec55498.wav", - "sampleCount": 5630, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Snare Beatbox2", - "soundID": -1, - "md5": "7ede1382b578d8fc32850b48d082d914.wav", - "sampleCount": 4960, - "rate": 22050, - "format": "" - }, - { - "soundName": "Wah Beatbox", - "soundID": -1, - "md5": "9021b7bb06f2399f18e2db4fb87095dc.wav", - "sampleCount": 6624, - "rate": 22050, - "format": "" - }, - { - "soundName": "Crash Beatbox", - "soundID": -1, - "md5": "725e29369e9138a43f11e0e5eb3eb562.wav", - "sampleCount": 26883, - "rate": 22050, - "format": "" - }, - { - "soundName": "Wub Beatbox", - "soundID": -1, - "md5": "e1f32c057411da4237181ce72ae15d23.wav", - "sampleCount": 7392, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "microphone-a", - "baseLayerID": -1, - "baseLayerMD5": "9126b6362313e20578fb88d38902cd4c.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 88 - }, - { - "costumeName": "microphone-b", - "baseLayerID": -1, - "baseLayerMD5": "29988ebbde49beaceb06d9eb66138b80.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 88 - } - ], - "currentCostumeIndex": 0, - "scratchX": 125, - "scratchY": 49, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d4d80e94e2cc759b8ca1d7b58f2a9052", + "name": "microphone-a", + "bitmapResolution": 1, + "md5ext": "d4d80e94e2cc759b8ca1d7b58f2a9052.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 88 + }, + { + "assetId": "c96578ffb9e314fee097862d69fde0af", + "name": "microphone-b", + "bitmapResolution": 1, + "md5ext": "c96578ffb9e314fee097862d69fde0af.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 88 + } + ], + "sounds": [ + { + "assetId": "28153621d293c86da0b246d314458faf", + "name": "Bass Beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 13440, + "md5ext": "28153621d293c86da0b246d314458faf.wav" + }, + { + "assetId": "abc70bb390f8e55f22f32265500d814a", + "name": "Clap Beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 8448, + "md5ext": "abc70bb390f8e55f22f32265500d814a.wav" + }, + { + "assetId": "5a07847bf246c227204728b05a3fc8f3", + "name": "Hi Beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11712, + "md5ext": "5a07847bf246c227204728b05a3fc8f3.wav" + }, + { + "assetId": "859249563a7b1fc0f6e92e36d1db81c7", + "name": "Scratch Beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 23104, + "md5ext": "859249563a7b1fc0f6e92e36d1db81c7.wav" + }, + { + "assetId": "c642c4c00135d890998f351faec55498", + "name": "Snare Beatbox", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 6097, + "md5ext": "c642c4c00135d890998f351faec55498.wav" + }, + { + "assetId": "7ede1382b578d8fc32850b48d082d914", + "name": "Snare Beatbox2", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 9920, + "md5ext": "7ede1382b578d8fc32850b48d082d914.wav" + }, + { + "assetId": "9021b7bb06f2399f18e2db4fb87095dc", + "name": "Wah Beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 13248, + "md5ext": "9021b7bb06f2399f18e2db4fb87095dc.wav" + }, + { + "assetId": "725e29369e9138a43f11e0e5eb3eb562", + "name": "Crash Beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 53766, + "md5ext": "725e29369e9138a43f11e0e5eb3eb562.wav" + }, + { + "assetId": "e1f32c057411da4237181ce72ae15d23", + "name": "Wub Beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 14784, + "md5ext": "e1f32c057411da4237181ce72ae15d23.wav" + } + ], + "blocks": {} }, { "name": "Milk", - "md5": "1b8ec45254b7c40d86e7a33818b77e35.svg", - "type": "sprite", "tags": [ "food", "drink", "alex eben meyer" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Milk", - "sounds": [ - { - "soundName": "glug", - "soundID": -1, - "md5": "5606722c6105f3c58f9689a958f5c45f.wav", - "sampleCount": 12100, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "milk-a", - "baseLayerID": -1, - "baseLayerMD5": "1b8ec45254b7c40d86e7a33818b77e35.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 63 - }, - { - "costumeName": "milk-b", - "baseLayerID": -1, - "baseLayerMD5": "2ba802dcac09a81f9d82cc9d3b95d71b.svg", - "bitmapResolution": 1, - "rotationCenterX": 42, - "rotationCenterY": 64 - }, - { - "costumeName": "milk-c", - "baseLayerID": -1, - "baseLayerMD5": "287b322e939ad54691aef4876c48f422.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 56 - }, - { - "costumeName": "milk-d", - "baseLayerID": -1, - "baseLayerMD5": "df4f5d863fa680331aa6c8f867b9fcbb.svg", - "bitmapResolution": 1, - "rotationCenterX": 45, - "rotationCenterY": 64 - }, - { - "costumeName": "milk-e", - "baseLayerID": -1, - "baseLayerMD5": "e642678d42d5e74fe49e6ceb5538724e.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 45 - } - ], - "currentCostumeIndex": 0, - "scratchX": -4, - "scratchY": -82, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "aa5f1501805aa68d3ad74623f59e6135", + "name": "milk-a", + "bitmapResolution": 1, + "md5ext": "aa5f1501805aa68d3ad74623f59e6135.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 63 + }, + { + "assetId": "0f683f65c737bbcbb916df0895d8436e", + "name": "milk-b", + "bitmapResolution": 1, + "md5ext": "0f683f65c737bbcbb916df0895d8436e.svg", + "dataFormat": "svg", + "rotationCenterX": 42, + "rotationCenterY": 64 + }, + { + "assetId": "1fa49d62f8028a375470e7bac451e666", + "name": "milk-c", + "bitmapResolution": 1, + "md5ext": "1fa49d62f8028a375470e7bac451e666.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 56 + }, + { + "assetId": "4d3eabd3ef848b61c3120d796c274733", + "name": "milk-d", + "bitmapResolution": 1, + "md5ext": "4d3eabd3ef848b61c3120d796c274733.svg", + "dataFormat": "svg", + "rotationCenterX": 45, + "rotationCenterY": 64 + }, + { + "assetId": "6ec300ae45758eff12e9d47cf4f0d2a0", + "name": "milk-e", + "bitmapResolution": 1, + "md5ext": "6ec300ae45758eff12e9d47cf4f0d2a0.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 45 + } + ], + "sounds": [ + { + "assetId": "5606722c6105f3c58f9689a958f5c45f", + "name": "glug", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 12193, + "md5ext": "5606722c6105f3c58f9689a958f5c45f.wav" + } + ], + "blocks": {} }, { "name": "Monet", - "md5": "11c46aaa5e30ad46f5c1883d6feb47b8.svg", - "type": "sprite", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Monet", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "monet-a", - "baseLayerID": -1, - "baseLayerMD5": "11c46aaa5e30ad46f5c1883d6feb47b8.svg", - "bitmapResolution": 1, - "rotationCenterX": 64, - "rotationCenterY": 87 - }, - { - "costumeName": "monet-b", - "baseLayerID": -1, - "baseLayerMD5": "9c8f83e39dc8ac49d57c0622ffe2063f.svg", - "bitmapResolution": 1, - "rotationCenterX": 64, - "rotationCenterY": 87 - }, - { - "costumeName": "monet-c", - "baseLayerID": -1, - "baseLayerMD5": "4435678d26e8fbc266d647693f65f5d7.svg", - "bitmapResolution": 1, - "rotationCenterX": 64, - "rotationCenterY": 87 - }, - { - "costumeName": "monet-d", - "baseLayerID": -1, - "baseLayerMD5": "42113ca3eca593c3a8f232a9202d6f14.svg", - "bitmapResolution": 1, - "rotationCenterX": 82, - "rotationCenterY": 87 - }, - { - "costumeName": "monet-e", - "baseLayerID": -1, - "baseLayerMD5": "e530d0dac5290c5366af719cfb4e5953.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 89 - } - ], - "currentCostumeIndex": 0, - "scratchX": -53, - "scratchY": -50, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4c6b016c55c4348b6dce29ba99e7ede4", + "name": "monet-a", + "bitmapResolution": 1, + "md5ext": "4c6b016c55c4348b6dce29ba99e7ede4.svg", + "dataFormat": "svg", + "rotationCenterX": 64, + "rotationCenterY": 87 + }, + { + "assetId": "137bbc522701a96908667d1b1730d041", + "name": "monet-b", + "bitmapResolution": 1, + "md5ext": "137bbc522701a96908667d1b1730d041.svg", + "dataFormat": "svg", + "rotationCenterX": 64, + "rotationCenterY": 87 + }, + { + "assetId": "138e6591f3317222521963ef3ce9a057", + "name": "monet-c", + "bitmapResolution": 1, + "md5ext": "138e6591f3317222521963ef3ce9a057.svg", + "dataFormat": "svg", + "rotationCenterX": 64, + "rotationCenterY": 87 + }, + { + "assetId": "740276a8aa9ddd12dd4b30f369975d66", + "name": "monet-d", + "bitmapResolution": 1, + "md5ext": "740276a8aa9ddd12dd4b30f369975d66.svg", + "dataFormat": "svg", + "rotationCenterX": 82, + "rotationCenterY": 87 + }, + { + "assetId": "5b67cb843dcc9dabdc580b9e35e95659", + "name": "monet-e", + "bitmapResolution": 1, + "md5ext": "5b67cb843dcc9dabdc580b9e35e95659.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 89 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Monkey", - "md5": "6e4de762dbd52cd2b6356694a9668211.svg", - "type": "sprite", "tags": [ "animals", "mammals", "primate", "prehensile tail" ], - "info": [ - 0, - 3, - 2 - ], - "json": { - "objName": "Monkey", - "sounds": [ - { - "soundName": "Chee Chee", - "soundID": -1, - "md5": "25f4826cdd61e0a1c623ec2324c16ca0.wav", - "sampleCount": 34560, - "rate": 22050, - "format": "" - }, - { - "soundName": "Chomp", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "monkey-a", - "baseLayerID": -1, - "baseLayerMD5": "6e4de762dbd52cd2b6356694a9668211.svg", - "bitmapResolution": 1, - "rotationCenterX": 68, - "rotationCenterY": 99 - }, - { - "costumeName": "monkey-b", - "baseLayerID": -1, - "baseLayerMD5": "7662a3a0f4c6fa21fdf2de33bd80fe5f.svg", - "bitmapResolution": 1, - "rotationCenterX": 68, - "rotationCenterY": 99 - }, - { - "costumeName": "monkey-c", - "baseLayerID": -1, - "baseLayerMD5": "db8eb50b948047181922310bb94511fb.svg", - "bitmapResolution": 1, - "rotationCenterX": 68, - "rotationCenterY": 99 - } - ], - "currentCostumeIndex": 0, - "scratchX": -61, - "scratchY": 24, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "254926ee81bfa82f2db7009a80635061", + "name": "monkey-a", + "bitmapResolution": 1, + "md5ext": "254926ee81bfa82f2db7009a80635061.svg", + "dataFormat": "svg", + "rotationCenterX": 68, + "rotationCenterY": 99 + }, + { + "assetId": "de0405b0576ade1282bdfcd198922baa", + "name": "monkey-b", + "bitmapResolution": 1, + "md5ext": "de0405b0576ade1282bdfcd198922baa.svg", + "dataFormat": "svg", + "rotationCenterX": 68, + "rotationCenterY": 99 + }, + { + "assetId": "ec6d62f0ff64bb5440ffdc662b6e46fa", + "name": "monkey-c", + "bitmapResolution": 1, + "md5ext": "ec6d62f0ff64bb5440ffdc662b6e46fa.svg", + "dataFormat": "svg", + "rotationCenterX": 68, + "rotationCenterY": 99 + } + ], + "sounds": [ + { + "assetId": "25f4826cdd61e0a1c623ec2324c16ca0", + "name": "Chee Chee", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 69120, + "md5ext": "25f4826cdd61e0a1c623ec2324c16ca0.wav" + }, + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "Chomp", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + } + ], + "blocks": {} }, { "name": "Motorcycle", - "md5": "5065a917834923efc3e0c112d5791e80.svg", - "type": "sprite", "tags": [ "city", "vehicle", "bike", "motorcycle" ], - "info": [ - 0, - 4, - 2 - ], - "json": { - "objName": "Motorcycle", - "sounds": [ - { - "soundName": "clown honk", - "soundID": -1, - "md5": "ec66961f188e9b8a9c75771db744d096.wav", - "sampleCount": 9009, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "car vroom", - "soundID": -1, - "md5": "ead1da4a87ff6cb53441142f7ac37b8f.wav", - "sampleCount": 43358, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "Motorcycle-a", - "baseLayerID": -1, - "baseLayerMD5": "5065a917834923efc3e0c112d5791e80.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 44 - }, - { - "costumeName": "Motorcycle-b", - "baseLayerID": -1, - "baseLayerMD5": "fe0923cb08c0b7c373de1daf8b74de74.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 44 - }, - { - "costumeName": "Motorcycle-c", - "baseLayerID": -1, - "baseLayerMD5": "6af27b2b5e1eeae9e60702630e6909a8.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 44 - }, - { - "costumeName": "Motorcycle-d", - "baseLayerID": -1, - "baseLayerMD5": "c5d78ac1de3a7f786a4ca6dc0fe087d4.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 44 - } - ], - "currentCostumeIndex": 0, - "scratchX": 181, - "scratchY": -133, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b73447c2577b8f77b5e2eb1da6d6445a", + "name": "Motorcycle-a", + "bitmapResolution": 1, + "md5ext": "b73447c2577b8f77b5e2eb1da6d6445a.svg", + "dataFormat": "svg", + "rotationCenterX": 51.21999999999994, + "rotationCenterY": 43.599999999999994 + }, + { + "assetId": "6e960b3c6a60ebe192e36b235c50ae03", + "name": "Motorcycle-b", + "bitmapResolution": 1, + "md5ext": "6e960b3c6a60ebe192e36b235c50ae03.svg", + "dataFormat": "svg", + "rotationCenterX": 51.21999999999994, + "rotationCenterY": 43.599999999999994 + }, + { + "assetId": "a70bdd403ace1f1ece2f2af0fbc3c720", + "name": "Motorcycle-c", + "bitmapResolution": 1, + "md5ext": "a70bdd403ace1f1ece2f2af0fbc3c720.svg", + "dataFormat": "svg", + "rotationCenterX": 51.21999999999994, + "rotationCenterY": 43.599999999999994 + }, + { + "assetId": "c6f8179ff3e8f8ab08b01d50343eefc4", + "name": "Motorcycle-d", + "bitmapResolution": 1, + "md5ext": "c6f8179ff3e8f8ab08b01d50343eefc4.svg", + "dataFormat": "svg", + "rotationCenterX": 51.21999999999994, + "rotationCenterY": 43.599999999999994 + } + ], + "sounds": [ + { + "assetId": "ec66961f188e9b8a9c75771db744d096", + "name": "clown honk", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 9145, + "md5ext": "ec66961f188e9b8a9c75771db744d096.wav" + }, + { + "assetId": "ead1da4a87ff6cb53441142f7ac37b8f", + "name": "car vroom", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "ead1da4a87ff6cb53441142f7ac37b8f.wav" + } + ], + "blocks": {} }, { "name": "Mouse1", - "md5": "e1f0c26afecbe9d4b9923d8e6bf489a8.svg", - "type": "sprite", "tags": [ "animals", "mammals", "rodents" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Mouse1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "mouse1-a", - "baseLayerID": -1, - "baseLayerMD5": "e1f0c26afecbe9d4b9923d8e6bf489a8.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 27 - }, - { - "costumeName": "mouse1-b", - "baseLayerID": -1, - "baseLayerMD5": "f5e477a3f94fc98ba3cd927228405646.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 21 - } - ], - "currentCostumeIndex": 0, - "scratchX": -10, - "scratchY": -20, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c5f76b65e30075c12d49ea8a8f7d6bad", + "name": "mouse1-a", + "bitmapResolution": 1, + "md5ext": "c5f76b65e30075c12d49ea8a8f7d6bad.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 27 + }, + { + "assetId": "8a7da35c473972f88896ca73b7df2188", + "name": "mouse1-b", + "bitmapResolution": 1, + "md5ext": "8a7da35c473972f88896ca73b7df2188.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 21 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Muffin", - "md5": "18da0857a1b7f1c960146d2b85edd10f.svg", - "type": "sprite", "tags": [ "food" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Muffin", - "sounds": [ - { - "soundName": "Chomp", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "muffin-a", - "baseLayerID": -1, - "baseLayerMD5": "18da0857a1b7f1c960146d2b85edd10f.svg", - "bitmapResolution": 1, - "rotationCenterX": 85, - "rotationCenterY": 48 - }, - { - "costumeName": "muffin-b", - "baseLayerID": -1, - "baseLayerMD5": "a89f3b99bf4cccfaeb1b39e25633c53c.svg", - "bitmapResolution": 1, - "rotationCenterX": 85, - "rotationCenterY": 48 - } - ], - "currentCostumeIndex": 0, - "scratchX": -74, - "scratchY": -3, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "afa34381db44e699d61f774911aab448", + "name": "muffin-a", + "bitmapResolution": 1, + "md5ext": "afa34381db44e699d61f774911aab448.svg", + "dataFormat": "svg", + "rotationCenterX": 85, + "rotationCenterY": 48 + }, + { + "assetId": "bd0581902cd6cc13888520776bf1620c", + "name": "muffin-b", + "bitmapResolution": 1, + "md5ext": "bd0581902cd6cc13888520776bf1620c.svg", + "dataFormat": "svg", + "rotationCenterX": 85, + "rotationCenterY": 48 + } + ], + "sounds": [ + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "Chomp", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + } + ], + "blocks": {} }, { "name": "Nano", - "md5": "02c5433118f508038484bbc5b111e187.svg", - "type": "sprite", "tags": [ "fantasy", "drawing" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Nano", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "nano-a", - "baseLayerID": -1, - "baseLayerMD5": "02c5433118f508038484bbc5b111e187.svg", - "bitmapResolution": 1, - "rotationCenterX": 61, - "rotationCenterY": 60 - }, - { - "costumeName": "nano-b", - "baseLayerID": -1, - "baseLayerMD5": "10d6d9130618cd092ae02158cde2e113.svg", - "bitmapResolution": 1, - "rotationCenterX": 61, - "rotationCenterY": 60 - }, - { - "costumeName": "nano-c", - "baseLayerID": -1, - "baseLayerMD5": "85e762d45bc626ca2edb3472c7cfaa32.svg", - "bitmapResolution": 1, - "rotationCenterX": 61, - "rotationCenterY": 60 - }, - { - "costumeName": "nano-d", - "baseLayerID": -1, - "baseLayerMD5": "b10925346da8080443f27e7dfaeff6f7.svg", - "bitmapResolution": 1, - "rotationCenterX": 61, - "rotationCenterY": 60 - } - ], - "currentCostumeIndex": 0, - "scratchX": -18, - "scratchY": 28, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a62e560863c0e49b12e5d57e13d084f1", + "name": "nano-a", + "bitmapResolution": 1, + "md5ext": "a62e560863c0e49b12e5d57e13d084f1.svg", + "dataFormat": "svg", + "rotationCenterX": 61, + "rotationCenterY": 60 + }, + { + "assetId": "d12aead3e3c2917e7eba8b2b90a7afd2", + "name": "nano-b", + "bitmapResolution": 1, + "md5ext": "d12aead3e3c2917e7eba8b2b90a7afd2.svg", + "dataFormat": "svg", + "rotationCenterX": 61, + "rotationCenterY": 60 + }, + { + "assetId": "8f2f4a70e87262ef478ce60567b6208a", + "name": "nano-c", + "bitmapResolution": 1, + "md5ext": "8f2f4a70e87262ef478ce60567b6208a.svg", + "dataFormat": "svg", + "rotationCenterX": 61, + "rotationCenterY": 60 + }, + { + "assetId": "a4e2034751fa650fd5fd69432c110104", + "name": "nano-d", + "bitmapResolution": 1, + "md5ext": "a4e2034751fa650fd5fd69432c110104.svg", + "dataFormat": "svg", + "rotationCenterX": 61, + "rotationCenterY": 60 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Neigh Pony", - "md5": "176c4fb4df80df899ca28a48bd1f0edf.svg", - "type": "sprite", "tags": [ "animals", "fantasy" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Neigh Pony", - "sounds": [ - { - "soundName": "horse", - "soundID": -1, - "md5": "45ffcf97ee2edca0199ff5aa71a5b72e.wav", - "sampleCount": 14464, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "neigh pony", - "baseLayerID": -1, - "baseLayerMD5": "176c4fb4df80df899ca28a48bd1f0edf.svg", - "bitmapResolution": 1, - "rotationCenterX": 74, - "rotationCenterY": 78 - } - ], - "currentCostumeIndex": 0, - "scratchX": 3, - "scratchY": 37, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "592816f56409d582603c485cbefcbbb8", + "name": "neigh pony", + "bitmapResolution": 1, + "md5ext": "592816f56409d582603c485cbefcbbb8.svg", + "dataFormat": "svg", + "rotationCenterX": 74, + "rotationCenterY": 78 + } + ], + "sounds": [ + { + "assetId": "45ffcf97ee2edca0199ff5aa71a5b72e", + "name": "horse", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 57856, + "md5ext": "45ffcf97ee2edca0199ff5aa71a5b72e.wav" + } + ], + "blocks": {} + }, + { + "name": "Noor", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4cf233c6540e434aded60608ba316ce3", + "name": "Noor-a", + "bitmapResolution": 1, + "md5ext": "4cf233c6540e434aded60608ba316ce3.svg", + "dataFormat": "svg", + "rotationCenterX": 38.4758779691426, + "rotationCenterY": 130.22760078036825 + }, + { + "assetId": "975585ca9461f0730a285fc96df73425", + "name": "Noor-b", + "bitmapResolution": 1, + "md5ext": "975585ca9461f0730a285fc96df73425.svg", + "dataFormat": "svg", + "rotationCenterX": 41.73210898803782, + "rotationCenterY": 130.22760078036825 + }, + { + "assetId": "c1792bbd5970034b4595ff7e742d6e47", + "name": "Noor-c", + "bitmapResolution": 1, + "md5ext": "c1792bbd5970034b4595ff7e742d6e47.svg", + "dataFormat": "svg", + "rotationCenterX": 50.673619073816894, + "rotationCenterY": 130.25802625960853 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "Pop", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 1123, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Octopus", - "md5": "038df646d2f935d2a5dd601b343fc1d9.svg", - "type": "sprite", "tags": [ "animals", "ocean", @@ -10863,488 +9450,390 @@ "underwater", "daria skrybchencko" ], - "info": [ - 0, - 5, - 2 - ], - "json": { - "objName": "Octopus", - "sounds": [ - { - "soundName": "splash", - "soundID": -1, - "md5": "6aed5e38d40b87a21d893d26fa2858c0.wav", - "sampleCount": 46080, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "ocean wave", - "soundID": -1, - "md5": "c904610d770398b98872a708a2f75611.wav", - "sampleCount": 99206, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "octopus-a", - "baseLayerID": -1, - "baseLayerMD5": "038df646d2f935d2a5dd601b343fc1d9.svg", - "bitmapResolution": 1, - "rotationCenterX": 88, - "rotationCenterY": 86 - }, - { - "costumeName": "octopus-b", - "baseLayerID": -1, - "baseLayerMD5": "31bdcbdf05688c01aace3fd94c5e82df.svg", - "bitmapResolution": 1, - "rotationCenterX": 88, - "rotationCenterY": 86 - }, - { - "costumeName": "octopus-c", - "baseLayerID": -1, - "baseLayerMD5": "51e80c09323e36489ad452250acd827c.svg", - "bitmapResolution": 1, - "rotationCenterX": 88, - "rotationCenterY": 86 - }, - { - "costumeName": "octopus-d", - "baseLayerID": -1, - "baseLayerMD5": "b4242e6cde0392bb9a5fb43a8f232962.svg", - "bitmapResolution": 1, - "rotationCenterX": 88, - "rotationCenterY": 86 - }, - { - "costumeName": "octopus-e", - "baseLayerID": -1, - "baseLayerMD5": "edfda0a36d9cd8482e3a8dc317107d56.svg", - "bitmapResolution": 1, - "rotationCenterX": 88, - "rotationCenterY": 86 - } - ], - "currentCostumeIndex": 0, - "scratchX": 157, - "scratchY": 83, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e22d9b633feffc1d026980a1f21e07d7", + "name": "octopus-a", + "bitmapResolution": 1, + "md5ext": "e22d9b633feffc1d026980a1f21e07d7.svg", + "dataFormat": "svg", + "rotationCenterX": 88, + "rotationCenterY": 86 + }, + { + "assetId": "9b5a2cd287229bf36ffcc176ed72cc0c", + "name": "octopus-b", + "bitmapResolution": 1, + "md5ext": "9b5a2cd287229bf36ffcc176ed72cc0c.svg", + "dataFormat": "svg", + "rotationCenterX": 88, + "rotationCenterY": 86 + }, + { + "assetId": "7d33a531087188b29deae879f23f76bc", + "name": "octopus-c", + "bitmapResolution": 1, + "md5ext": "7d33a531087188b29deae879f23f76bc.svg", + "dataFormat": "svg", + "rotationCenterX": 88, + "rotationCenterY": 86 + }, + { + "assetId": "f582f162c4438d82c9e2a0a87a3e02ce", + "name": "octopus-d", + "bitmapResolution": 1, + "md5ext": "f582f162c4438d82c9e2a0a87a3e02ce.svg", + "dataFormat": "svg", + "rotationCenterX": 88, + "rotationCenterY": 86 + }, + { + "assetId": "5d6e17d6260134d0402ba487a419d7c3", + "name": "octopus-e", + "bitmapResolution": 1, + "md5ext": "5d6e17d6260134d0402ba487a419d7c3.svg", + "dataFormat": "svg", + "rotationCenterX": 88, + "rotationCenterY": 86 + } + ], + "sounds": [ + { + "assetId": "6aed5e38d40b87a21d893d26fa2858c0", + "name": "splash", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 46737, + "md5ext": "6aed5e38d40b87a21d893d26fa2858c0.wav" + }, + { + "assetId": "c904610d770398b98872a708a2f75611", + "name": "ocean wave", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 99569, + "md5ext": "c904610d770398b98872a708a2f75611.wav" + } + ], + "blocks": {} }, { "name": "Orange", - "md5": "27d5dfbadceea215e983d2641ce3e51f.svg", - "type": "sprite", "tags": [ "food", "fruit" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Orange", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "orange", - "baseLayerID": -1, - "baseLayerMD5": "27d5dfbadceea215e983d2641ce3e51f.svg", - "bitmapResolution": 1, - "rotationCenterX": 19, - "rotationCenterY": 18 - } - ], - "currentCostumeIndex": 0, - "scratchX": 44, - "scratchY": -6, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d0a55aae1decb57152b454c9a5226757", + "name": "orange", + "bitmapResolution": 1, + "md5ext": "d0a55aae1decb57152b454c9a5226757.svg", + "dataFormat": "svg", + "rotationCenterX": 19, + "rotationCenterY": 18 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Orange2", - "md5": "8a7d8515df41f83c1326ec3233a3a42a.svg", - "type": "sprite", "tags": [ "food", "fruit", "eaten" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Orange2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "orange2-a", - "baseLayerID": -1, - "baseLayerMD5": "8a7d8515df41f83c1326ec3233a3a42a.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 24 - }, - { - "costumeName": "orange2-b", - "baseLayerID": -1, - "baseLayerMD5": "70c7f1822ffdb37157c304273dae9102.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 27 - } - ], - "currentCostumeIndex": 0, - "scratchX": -60, - "scratchY": 9, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "27286ca08451bc512e1d611965dad061", + "name": "orange2-a", + "bitmapResolution": 1, + "md5ext": "27286ca08451bc512e1d611965dad061.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 24 + }, + { + "assetId": "b823f73a31e61fd362574e2c24dfc0c2", + "name": "orange2-b", + "bitmapResolution": 1, + "md5ext": "b823f73a31e61fd362574e2c24dfc0c2.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 27 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Outfielder", - "md5": "d2e2e4a9249c4cbe479e431a4c985286.svg", - "type": "sprite", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Outfielder", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "outfielder-a", - "baseLayerID": -1, - "baseLayerMD5": "d2e2e4a9249c4cbe479e431a4c985286.svg", - "bitmapResolution": 1, - "rotationCenterX": 42, - "rotationCenterY": 78 - }, - { - "costumeName": "outfielder-b", - "baseLayerID": -1, - "baseLayerMD5": "5a960b109ae5dbe3c3ea5555894e8c13.svg", - "bitmapResolution": 1, - "rotationCenterX": 42, - "rotationCenterY": 74 - }, - { - "costumeName": "outfielder-c", - "baseLayerID": -1, - "baseLayerMD5": "480ab4ce1ab5586e829e1cf804824c8b.svg", - "bitmapResolution": 1, - "rotationCenterX": 67, - "rotationCenterY": 97 - }, - { - "costumeName": "outfielder-d", - "baseLayerID": -1, - "baseLayerMD5": "e5803b5601e0aafa8d0b227f1b1ae742.svg", - "bitmapResolution": 1, - "rotationCenterX": 130, - "rotationCenterY": 114 - } - ], - "currentCostumeIndex": 0, - "scratchX": -156, - "scratchY": -28, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "10578b06f97b9fdc34f622e9e682c144", + "name": "outfielder-a", + "bitmapResolution": 1, + "md5ext": "10578b06f97b9fdc34f622e9e682c144.svg", + "dataFormat": "svg", + "rotationCenterX": 42, + "rotationCenterY": 78 + }, + { + "assetId": "d0a8837867d39444a824b734d4cd5554", + "name": "outfielder-b", + "bitmapResolution": 1, + "md5ext": "d0a8837867d39444a824b734d4cd5554.svg", + "dataFormat": "svg", + "rotationCenterX": 42, + "rotationCenterY": 74 + }, + { + "assetId": "9f31c772f88a5f32fe857d57b3bcb04c", + "name": "outfielder-c", + "bitmapResolution": 1, + "md5ext": "9f31c772f88a5f32fe857d57b3bcb04c.svg", + "dataFormat": "svg", + "rotationCenterX": 67, + "rotationCenterY": 97 + }, + { + "assetId": "175ddc7ed99cc5b72909098046d8f558", + "name": "outfielder-d", + "bitmapResolution": 1, + "md5ext": "175ddc7ed99cc5b72909098046d8f558.svg", + "dataFormat": "svg", + "rotationCenterX": 130, + "rotationCenterY": 114 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Owl", - "md5": "5348f1ea36a645322e88796545ca8ca1.svg", - "type": "sprite", "tags": [ "animals", "bird", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Owl", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "owl-a", - "baseLayerID": -1, - "baseLayerMD5": "5348f1ea36a645322e88796545ca8ca1.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 40 - }, - { - "costumeName": "owl-b", - "baseLayerID": -1, - "baseLayerMD5": "3d8ba4198a03e484ed63bde584fd5bc1.svg", - "bitmapResolution": 1, - "rotationCenterX": 44, - "rotationCenterY": 46 - }, - { - "costumeName": "owl-c", - "baseLayerID": -1, - "baseLayerMD5": "4e81445e70169f074ad50473a78f3381.svg", - "bitmapResolution": 1, - "rotationCenterX": 109, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": 167, - "scratchY": -3, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a518f70b65ec489e709795209b43207a", + "name": "owl-a", + "bitmapResolution": 1, + "md5ext": "a518f70b65ec489e709795209b43207a.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 40 + }, + { + "assetId": "236bb6b33e7db00834bcea89b03b8a5e", + "name": "owl-b", + "bitmapResolution": 1, + "md5ext": "236bb6b33e7db00834bcea89b03b8a5e.svg", + "dataFormat": "svg", + "rotationCenterX": 44, + "rotationCenterY": 46 + }, + { + "assetId": "806139207066cb5eaef727d54c1bb4ec", + "name": "owl-c", + "bitmapResolution": 1, + "md5ext": "806139207066cb5eaef727d54c1bb4ec.svg", + "dataFormat": "svg", + "rotationCenterX": 109, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Paddle", - "md5": "8038149bdfe24733ea2144d37d297815.svg", - "type": "sprite", "tags": [ "thing" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Paddle", - "sounds": [ - { - "soundName": "boing", - "soundID": -1, - "md5": "53a3c2e27d1fb5fdb14aaf0cb41e7889.wav", - "sampleCount": 6804, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "paddle", - "baseLayerID": -1, - "baseLayerMD5": "8038149bdfe24733ea2144d37d297815.svg", - "bitmapResolution": 1, - "rotationCenterX": 44, - "rotationCenterY": 7 - } - ], - "currentCostumeIndex": 0, - "scratchX": 47, - "scratchY": -12, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "15864fac7d38bb94c1ec3a199de96c26", + "name": "paddle", + "bitmapResolution": 1, + "md5ext": "15864fac7d38bb94c1ec3a199de96c26.svg", + "dataFormat": "svg", + "rotationCenterX": 44, + "rotationCenterY": 7 + } + ], + "sounds": [ + { + "assetId": "53a3c2e27d1fb5fdb14aaf0cb41e7889", + "name": "boing", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 7113, + "md5ext": "53a3c2e27d1fb5fdb14aaf0cb41e7889.wav" + } + ], + "blocks": {} }, { "name": "Panther", - "md5": "04ca2c122cff11b9bc23834d6f79361e.svg", - "type": "sprite", "tags": [ "animals", "tiger", "leopard", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Panther", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "panther-a", - "baseLayerID": -1, - "baseLayerMD5": "04ca2c122cff11b9bc23834d6f79361e.svg", - "bitmapResolution": 1, - "rotationCenterX": 125, - "rotationCenterY": 81 - }, - { - "costumeName": "panther-b", - "baseLayerID": -1, - "baseLayerMD5": "f8c33765d1105f3bb4cd145fad0f717e.svg", - "bitmapResolution": 1, - "rotationCenterX": 125, - "rotationCenterY": 81 - }, - { - "costumeName": "panther-c", - "baseLayerID": -1, - "baseLayerMD5": "096bf9cad84def12eef2b5d84736b393.svg", - "bitmapResolution": 1, - "rotationCenterX": 125, - "rotationCenterY": 81 - } - ], - "currentCostumeIndex": 0, - "scratchX": -27, - "scratchY": 8, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0e7c244f54b27058f8b17d9e0d3cee12", + "name": "panther-a", + "bitmapResolution": 1, + "md5ext": "0e7c244f54b27058f8b17d9e0d3cee12.svg", + "dataFormat": "svg", + "rotationCenterX": 125, + "rotationCenterY": 81 + }, + { + "assetId": "4a762fd04901407544d8858adac2b3fa", + "name": "panther-b", + "bitmapResolution": 1, + "md5ext": "4a762fd04901407544d8858adac2b3fa.svg", + "dataFormat": "svg", + "rotationCenterX": 125, + "rotationCenterY": 81 + }, + { + "assetId": "a7aee991f51636574625c1300f035bdd", + "name": "panther-c", + "bitmapResolution": 1, + "md5ext": "a7aee991f51636574625c1300f035bdd.svg", + "dataFormat": "svg", + "rotationCenterX": 125, + "rotationCenterY": 81 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Pants", - "md5": "f7a0584eca14eaa0e29662e5c24fb62d.svg", - "type": "sprite", "tags": [ "fashion", "pants", "clothing" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Pants", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "pants-a", - "baseLayerID": -1, - "baseLayerMD5": "f7a0584eca14eaa0e29662e5c24fb62d.svg", - "bitmapResolution": 1, - "rotationCenterX": 34, - "rotationCenterY": 66 - }, - { - "costumeName": "pants-b", - "baseLayerID": -1, - "baseLayerMD5": "22ea0cf68b885817a5b6a01194c6f5d3.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 66 - } - ], - "currentCostumeIndex": 0, - "scratchX": 148, - "scratchY": -49, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ef8b1576f183222a4c2d373a7bc194cc", + "name": "pants-a", + "bitmapResolution": 1, + "md5ext": "ef8b1576f183222a4c2d373a7bc194cc.svg", + "dataFormat": "svg", + "rotationCenterX": 34, + "rotationCenterY": 66 + }, + { + "assetId": "ac9c7259873e472c2c1a99339c694f16", + "name": "pants-b", + "bitmapResolution": 1, + "md5ext": "ac9c7259873e472c2c1a99339c694f16.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 66 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Parrot", - "md5": "098570b8e1aa85b32f9b4eb07bea3af2.svg", - "type": "sprite", "tags": [ "animals", "bird", @@ -11354,172 +9843,134 @@ "flying", "flappers" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Parrot", - "sounds": [ - { - "soundName": "Bird", - "soundID": -1, - "md5": "18bd4b634a3f992a16b30344c7d810e0.wav", - "sampleCount": 3840, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "parrot-a", - "baseLayerID": -1, - "baseLayerMD5": "098570b8e1aa85b32f9b4eb07bea3af2.svg", - "bitmapResolution": 1, - "rotationCenterX": 86, - "rotationCenterY": 106 - }, - { - "costumeName": "parrot-b", - "baseLayerID": -1, - "baseLayerMD5": "721255a0733c9d8d2ba518ff09b3b7cb.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 31 - } - ], - "currentCostumeIndex": 0, - "scratchX": 77, - "scratchY": 23, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "082f371c206f07d20e53595a9c69cc22", + "name": "parrot-a", + "bitmapResolution": 1, + "md5ext": "082f371c206f07d20e53595a9c69cc22.svg", + "dataFormat": "svg", + "rotationCenterX": 86, + "rotationCenterY": 106 + }, + { + "assetId": "036fad20b674197358f8c0b2dc64e17e", + "name": "parrot-b", + "bitmapResolution": 1, + "md5ext": "036fad20b674197358f8c0b2dc64e17e.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 31 + } + ], + "sounds": [ + { + "assetId": "18bd4b634a3f992a16b30344c7d810e0", + "name": "Bird", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 15360, + "md5ext": "18bd4b634a3f992a16b30344c7d810e0.wav" + } + ], + "blocks": {} }, { "name": "Party Hats", - "md5": "f3ee428806f9fa6d396e30a8d6d0e741.svg", - "type": "sprite", "tags": [ "fashion", "holiday" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Party Hats", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Party Hat-a", - "baseLayerID": -1, - "baseLayerMD5": "f3ee428806f9fa6d396e30a8d6d0e741.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 55 - }, - { - "costumeName": "Party Hat-b", - "baseLayerID": -1, - "baseLayerMD5": "71b51d9680be4aa946eb6642bc044791.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 61 - }, - { - "costumeName": "Party Hat-e", - "baseLayerID": -1, - "baseLayerMD5": "e69516f2a9bb6d632fdaba4fadd8f8f1.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 44 - } - ], - "currentCostumeIndex": 0, - "scratchX": -80, - "scratchY": -31, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "1d14be44e4aa99a471115cd874204690", + "name": "Party Hat-a", + "bitmapResolution": 1, + "md5ext": "1d14be44e4aa99a471115cd874204690.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 55 + }, + { + "assetId": "8b43413906cf1ba1343580d3ca062048", + "name": "Party Hat-b", + "bitmapResolution": 1, + "md5ext": "8b43413906cf1ba1343580d3ca062048.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 61 + }, + { + "assetId": "abefb98344ece228afeb462f46d6b750", + "name": "Party Hat-e", + "bitmapResolution": 1, + "md5ext": "abefb98344ece228afeb462f46d6b750.svg", + "dataFormat": "svg", + "rotationCenterX": 52, + "rotationCenterY": 44 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Pencil", - "md5": "4495fcb0443cebc5d43e66243a88f1ac.svg", - "type": "sprite", "tags": [ "thing", "yellow" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Pencil", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "pencil-a", - "baseLayerID": -1, - "baseLayerMD5": "4495fcb0443cebc5d43e66243a88f1ac.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 54 - }, - { - "costumeName": "pencil-b", - "baseLayerID": -1, - "baseLayerMD5": "21088922dbe127f6d2e58e2e83fb632e.svg", - "bitmapResolution": 1, - "rotationCenterX": 48, - "rotationCenterY": 68 - } - ], - "currentCostumeIndex": 0, - "scratchX": 57, - "scratchY": 42, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b3d6eae85f285dd618bf9dcf609b9454", + "name": "pencil-a", + "bitmapResolution": 1, + "md5ext": "b3d6eae85f285dd618bf9dcf609b9454.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 54 + }, + { + "assetId": "f017876452a24d118fc0b1753caefad9", + "name": "pencil-b", + "bitmapResolution": 1, + "md5ext": "f017876452a24d118fc0b1753caefad9.svg", + "dataFormat": "svg", + "rotationCenterX": 48, + "rotationCenterY": 68 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Penguin", - "md5": "0e78708b8988802d2209a34b50292bd3.svg", - "type": "sprite", "tags": [ "animals", "penguin", @@ -11531,393 +9982,323 @@ "arctic", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Penguin", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "penguin-a", - "baseLayerID": -1, - "baseLayerMD5": "0e78708b8988802d2209a34b50292bd3.svg", - "bitmapResolution": 1, - "rotationCenterX": 36, - "rotationCenterY": 46 - }, - { - "costumeName": "penguin-b", - "baseLayerID": -1, - "baseLayerMD5": "43af2a0b7f922ec5dc94217b2f3e08e4.svg", - "bitmapResolution": 1, - "rotationCenterX": 26, - "rotationCenterY": 46 - }, - { - "costumeName": "penguin-c", - "baseLayerID": -1, - "baseLayerMD5": "4f35c3940957e3ffc2e83a2565942171.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 46 - } - ], - "currentCostumeIndex": 0, - "scratchX": -84, - "scratchY": -100, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "dad5b0d82cb6e053d1ded2ef537a9453", + "name": "penguin-a", + "bitmapResolution": 1, + "md5ext": "dad5b0d82cb6e053d1ded2ef537a9453.svg", + "dataFormat": "svg", + "rotationCenterX": 36, + "rotationCenterY": 46 + }, + { + "assetId": "c434b674f2da18ba13cdfe51dbc05ecc", + "name": "penguin-b", + "bitmapResolution": 1, + "md5ext": "c434b674f2da18ba13cdfe51dbc05ecc.svg", + "dataFormat": "svg", + "rotationCenterX": 26, + "rotationCenterY": 46 + }, + { + "assetId": "6d11aedea7f316215aaa0d08617f4c31", + "name": "penguin-c", + "bitmapResolution": 1, + "md5ext": "6d11aedea7f316215aaa0d08617f4c31.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 46 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Penguin 2", - "md5": "c17d9e4bdb59c574e0c34aa70af516da.svg", - "type": "sprite", "tags": [ "animals", "bird", "winter", "antarctica" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Penguin 2", - "sounds": [ - { - "soundName": "Chirp", - "soundID": -1, - "md5": "3b8236bbb288019d93ae38362e865972.wav", - "sampleCount": 5301, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "penguin2-a", - "baseLayerID": -1, - "baseLayerMD5": "c17d9e4bdb59c574e0c34aa70af516da.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 61 - }, - { - "costumeName": "penguin2-b", - "baseLayerID": -1, - "baseLayerMD5": "b224a582395e0847c2ef4eefcfbc4546.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 61 - }, - { - "costumeName": "penguin2-c", - "baseLayerID": -1, - "baseLayerMD5": "35fec7aa5f60cca945fe0615413f1f08.svg", - "bitmapResolution": 1, - "rotationCenterX": 48, - "rotationCenterY": 62 - }, - { - "costumeName": "penguin2-d", - "baseLayerID": -1, - "baseLayerMD5": "18fa51a64ebd5518f0c5c465525346e5.svg", - "bitmapResolution": 1, - "rotationCenterX": 48, - "rotationCenterY": 61 - } - ], - "currentCostumeIndex": 0, - "scratchX": -58, - "scratchY": -19, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "428772307d90f4b347d6cc3c0d8e76ef", + "name": "penguin2-a", + "bitmapResolution": 1, + "md5ext": "428772307d90f4b347d6cc3c0d8e76ef.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 61 + }, + { + "assetId": "d485f5620d2dde69a6aa1cda7c897d12", + "name": "penguin2-b", + "bitmapResolution": 1, + "md5ext": "d485f5620d2dde69a6aa1cda7c897d12.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 61 + }, + { + "assetId": "280d2aa13f0c6774cc8828dc177aaf60", + "name": "penguin2-c", + "bitmapResolution": 1, + "md5ext": "280d2aa13f0c6774cc8828dc177aaf60.svg", + "dataFormat": "svg", + "rotationCenterX": 48, + "rotationCenterY": 62 + }, + { + "assetId": "780467f3d173dcb37fd65834841babc6", + "name": "penguin2-d", + "bitmapResolution": 1, + "md5ext": "780467f3d173dcb37fd65834841babc6.svg", + "dataFormat": "svg", + "rotationCenterX": 48, + "rotationCenterY": 61 + } + ], + "sounds": [ + { + "assetId": "3b8236bbb288019d93ae38362e865972", + "name": "Chirp", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 6097, + "md5ext": "3b8236bbb288019d93ae38362e865972.wav" + } + ], + "blocks": {} }, { "name": "Pico", - "md5": "0579fe60bb3717c49dfd7743caa84ada.svg", - "type": "sprite", "tags": [ "fantasy", "drawing" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Pico", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "pico-a", - "baseLayerID": -1, - "baseLayerMD5": "0579fe60bb3717c49dfd7743caa84ada.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 66 - }, - { - "costumeName": "pico-b", - "baseLayerID": -1, - "baseLayerMD5": "26c688d7544757225ff51cd2fb1519b5.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 66 - }, - { - "costumeName": "pico-c", - "baseLayerID": -1, - "baseLayerMD5": "adf61e2090f8060e1e8b2b0604d03751.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 66 - }, - { - "costumeName": "pico-d", - "baseLayerID": -1, - "baseLayerMD5": "594704bf12e3c4d9e83bb91661ad709a.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 66 - } - ], - "currentCostumeIndex": 0, - "scratchX": 80, - "scratchY": -26, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e7ce31db37f7abd2901499db2e9ad83a", + "name": "pico-a", + "bitmapResolution": 1, + "md5ext": "e7ce31db37f7abd2901499db2e9ad83a.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 66 + }, + { + "assetId": "a7597b1f0c13455d335a3d4fe77da528", + "name": "pico-b", + "bitmapResolution": 1, + "md5ext": "a7597b1f0c13455d335a3d4fe77da528.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 66 + }, + { + "assetId": "bcc0e8a5dda3a813608902b887c87bb4", + "name": "pico-c", + "bitmapResolution": 1, + "md5ext": "bcc0e8a5dda3a813608902b887c87bb4.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 66 + }, + { + "assetId": "d6dfa2efe58939af4c85755feb3c0375", + "name": "pico-d", + "bitmapResolution": 1, + "md5ext": "d6dfa2efe58939af4c85755feb3c0375.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 66 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Pico Walking", - "md5": "8eab5fe20dd249bf22964298b1d377eb.svg", - "type": "sprite", "tags": [ "fantasy", "walking" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Pico Walking", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Pico walk1", - "baseLayerID": -1, - "baseLayerMD5": "8eab5fe20dd249bf22964298b1d377eb.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 71 - }, - { - "costumeName": "Pico walk2", - "baseLayerID": -1, - "baseLayerMD5": "39ecd3c38d3f2cd81e3a17ee6c25699f.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 71 - }, - { - "costumeName": "Pico walk3", - "baseLayerID": -1, - "baseLayerMD5": "43f7d92dcf9eadf77c07a6fc1eb4104f.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 70 - }, - { - "costumeName": "Pico walk4", - "baseLayerID": -1, - "baseLayerMD5": "2582d012d57bca59bc0315c5c5954958.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 70 - } - ], - "currentCostumeIndex": 0, - "scratchX": 98, - "scratchY": -32, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c8f58f31cabf4acabb3f828730061276", + "name": "Pico walk1", + "bitmapResolution": 1, + "md5ext": "c8f58f31cabf4acabb3f828730061276.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 71 + }, + { + "assetId": "52a60eccb624530fd3a24fc41fbad6e5", + "name": "Pico walk2", + "bitmapResolution": 1, + "md5ext": "52a60eccb624530fd3a24fc41fbad6e5.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 71 + }, + { + "assetId": "702bd644d01ea8eda2ea122daeea7d74", + "name": "Pico walk3", + "bitmapResolution": 1, + "md5ext": "702bd644d01ea8eda2ea122daeea7d74.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 70 + }, + { + "assetId": "22fb16ae7cc18187a7adaf2852f07884", + "name": "Pico walk4", + "bitmapResolution": 1, + "md5ext": "22fb16ae7cc18187a7adaf2852f07884.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 70 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Pitcher", - "md5": "24008f02de4b0d999d4526d34dec8b76.svg", - "type": "sprite", "tags": [ "baseball", "sports", "people", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Pitcher", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "pitcher-a", - "baseLayerID": -1, - "baseLayerMD5": "24008f02de4b0d999d4526d34dec8b76.svg", - "bitmapResolution": 1, - "rotationCenterX": 42, - "rotationCenterY": 74 - }, - { - "costumeName": "pitcher-b", - "baseLayerID": -1, - "baseLayerMD5": "4644ab73c577ed878e3ccaa3d89ccc2b.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 97 - }, - { - "costumeName": "pitcher-c", - "baseLayerID": -1, - "baseLayerMD5": "f46aa0b114a9977c52eeefa252953e2b.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 98 - }, - { - "costumeName": "pitcher-d", - "baseLayerID": -1, - "baseLayerMD5": "d75a06e24f717e8647db27e94618e693.svg", - "bitmapResolution": 1, - "rotationCenterX": 84, - "rotationCenterY": 57 - } - ], - "currentCostumeIndex": 0, - "scratchX": -6, - "scratchY": -88, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "bceae719ba1ec230afec56f14a1e4d52", + "name": "pitcher-a", + "bitmapResolution": 1, + "md5ext": "bceae719ba1ec230afec56f14a1e4d52.svg", + "dataFormat": "svg", + "rotationCenterX": 42, + "rotationCenterY": 74 + }, + { + "assetId": "049132404cb2cb157830aaf18aee6a24", + "name": "pitcher-b", + "bitmapResolution": 1, + "md5ext": "049132404cb2cb157830aaf18aee6a24.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 97 + }, + { + "assetId": "fc955dec7f1e97f1ddd9f8245a80907e", + "name": "pitcher-c", + "bitmapResolution": 1, + "md5ext": "fc955dec7f1e97f1ddd9f8245a80907e.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 98 + }, + { + "assetId": "ae8aa57ce6e5729d30d8b785bec97774", + "name": "pitcher-d", + "bitmapResolution": 1, + "md5ext": "ae8aa57ce6e5729d30d8b785bec97774.svg", + "dataFormat": "svg", + "rotationCenterX": 84, + "rotationCenterY": 57 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Planet2", - "md5": "978784738c1d9dd4b1d397fd18bdf406.svg", - "type": "sprite", "tags": [ "space" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Planet2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "planet2", - "baseLayerID": -1, - "baseLayerMD5": "978784738c1d9dd4b1d397fd18bdf406.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": 52, - "scratchY": 25, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "50cde8a4a737da0eba1ab73eb263f836", + "name": "planet2", + "bitmapResolution": 1, + "md5ext": "50cde8a4a737da0eba1ab73eb263f836.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Polar Bear", - "md5": "b1d892d9f8a897bc6a446e2ff766ba74.svg", - "type": "sprite", "tags": [ "animals", "bear", @@ -11930,174 +10311,136 @@ "arctic", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Polar Bear", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "polar bear-a", - "baseLayerID": -1, - "baseLayerMD5": "b1d892d9f8a897bc6a446e2ff766ba74.svg", - "bitmapResolution": 1, - "rotationCenterX": 104, - "rotationCenterY": 42 - }, - { - "costumeName": "polar bear-b", - "baseLayerID": -1, - "baseLayerMD5": "54728e795213e67ac7cecca1c32fe293.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 47 - }, - { - "costumeName": "polar bear-c", - "baseLayerID": -1, - "baseLayerMD5": "7d5812e0aa1cde33771f9270ff521cfe.svg", - "bitmapResolution": 1, - "rotationCenterX": 104, - "rotationCenterY": 43 - } - ], - "currentCostumeIndex": 0, - "scratchX": 109, - "scratchY": -55, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d050a3394b61ade080f7963c40192e7d", + "name": "polar bear-a", + "bitmapResolution": 1, + "md5ext": "d050a3394b61ade080f7963c40192e7d.svg", + "dataFormat": "svg", + "rotationCenterX": 104, + "rotationCenterY": 42 + }, + { + "assetId": "11d00a06abd2c882672464f4867e90b6", + "name": "polar bear-b", + "bitmapResolution": 1, + "md5ext": "11d00a06abd2c882672464f4867e90b6.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 47 + }, + { + "assetId": "5d7cd81aad80100368b8b77bf09ad576", + "name": "polar bear-c", + "bitmapResolution": 1, + "md5ext": "5d7cd81aad80100368b8b77bf09ad576.svg", + "dataFormat": "svg", + "rotationCenterX": 104, + "rotationCenterY": 43 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Potion", - "md5": "a317b50b255a208455a7733091adad23.svg", - "type": "sprite", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Potion", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "potion-a", - "baseLayerID": -1, - "baseLayerMD5": "a317b50b255a208455a7733091adad23.svg", - "bitmapResolution": 1, - "rotationCenterX": 15, - "rotationCenterY": 21 - }, - { - "costumeName": "potion-b", - "baseLayerID": -1, - "baseLayerMD5": "5f96576605c3a022df48278b630da745.svg", - "bitmapResolution": 1, - "rotationCenterX": 15, - "rotationCenterY": 28 - }, - { - "costumeName": "potion-c", - "baseLayerID": -1, - "baseLayerMD5": "92d0184c28fac9acb0fb720ec599d61d.svg", - "bitmapResolution": 1, - "rotationCenterX": 15, - "rotationCenterY": 42 - } - ], - "currentCostumeIndex": 0, - "scratchX": 86, - "scratchY": 7, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d922ffdfe38fd30fd8787810c6bce318", + "name": "potion-a", + "bitmapResolution": 1, + "md5ext": "d922ffdfe38fd30fd8787810c6bce318.svg", + "dataFormat": "svg", + "rotationCenterX": 15, + "rotationCenterY": 21 + }, + { + "assetId": "0eceab4561534dde827bf68233f47441", + "name": "potion-b", + "bitmapResolution": 1, + "md5ext": "0eceab4561534dde827bf68233f47441.svg", + "dataFormat": "svg", + "rotationCenterX": 15, + "rotationCenterY": 28 + }, + { + "assetId": "f8500e9530bf1136c6386f2a329519dd", + "name": "potion-c", + "bitmapResolution": 1, + "md5ext": "f8500e9530bf1136c6386f2a329519dd.svg", + "dataFormat": "svg", + "rotationCenterX": 15, + "rotationCenterY": 42 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Prince", - "md5": "a760bed1cfc28a30b2dc7fd045c90792.svg", - "type": "sprite", "tags": [ "people", "☥", "fantasy" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Prince", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "prince", - "baseLayerID": -1, - "baseLayerMD5": "a760bed1cfc28a30b2dc7fd045c90792.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": -73, - "scratchY": -42, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ada9c5ce11245c467c780bceb665c42d", + "name": "prince", + "bitmapResolution": 1, + "md5ext": "ada9c5ce11245c467c780bceb665c42d.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Princess", - "md5": "fcbf44a543dfda884d8acbd6af66faad.svg", - "type": "sprite", "tags": [ "fantasy", "people", @@ -12105,80 +10448,70 @@ "castle", "emotions" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Princess", - "sounds": [ - { - "soundName": "magic spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "princess-a", - "baseLayerID": -1, - "baseLayerMD5": "fcbf44a543dfda884d8acbd6af66faad.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 150 - }, - { - "costumeName": "princess-b", - "baseLayerID": -1, - "baseLayerMD5": "562e5eba4a598118411be3062cfbb26f.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 150 - }, - { - "costumeName": "princess-c", - "baseLayerID": -1, - "baseLayerMD5": "f3e5f466d406745cf1b6ce44b0567b9a.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 150 - }, - { - "costumeName": "princess-d", - "baseLayerID": -1, - "baseLayerMD5": "663134f64588f0c55e77767ba9039cfe.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 150 - }, - { - "costumeName": "princess-e", - "baseLayerID": -1, - "baseLayerMD5": "ad0ecbf907d132ddbb547666551ac087.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 150 - } - ], - "currentCostumeIndex": 0, - "scratchX": 123, - "scratchY": -13, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e59f55c86ea557bdbd88302012ce8db5", + "name": "princess-a", + "bitmapResolution": 1, + "md5ext": "e59f55c86ea557bdbd88302012ce8db5.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 150 + }, + { + "assetId": "ba37f578cc6cabce6fe4d2864c9eb96f", + "name": "princess-b", + "bitmapResolution": 1, + "md5ext": "ba37f578cc6cabce6fe4d2864c9eb96f.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 150 + }, + { + "assetId": "39157d5d3280ab0b273260170d5436c2", + "name": "princess-c", + "bitmapResolution": 1, + "md5ext": "39157d5d3280ab0b273260170d5436c2.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 150 + }, + { + "assetId": "23330150c0a09180083b597cbfeca99a", + "name": "princess-d", + "bitmapResolution": 1, + "md5ext": "23330150c0a09180083b597cbfeca99a.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 150 + }, + { + "assetId": "0721f5238a2bcde49d05f72ca9d21d9b", + "name": "princess-e", + "bitmapResolution": 1, + "md5ext": "0721f5238a2bcde49d05f72ca9d21d9b.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 150 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "magic spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Pufferfish", - "md5": "81d7db99142a39c9082be2c2183f2175.svg", - "type": "sprite", "tags": [ "animals", "ocean", @@ -12186,143 +10519,121 @@ "underwater", "daria skrybchencko" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Pufferfish", - "sounds": [ - { - "soundName": "ocean wave", - "soundID": -1, - "md5": "c904610d770398b98872a708a2f75611.wav", - "sampleCount": 99206, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "pufferfish-a", - "baseLayerID": -1, - "baseLayerMD5": "81d7db99142a39c9082be2c2183f2175.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 61 - }, - { - "costumeName": "pufferfish-b", - "baseLayerID": -1, - "baseLayerMD5": "6ea79950db63f5ac24d6c5091df3836b.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 61 - }, - { - "costumeName": "pufferfish-c", - "baseLayerID": -1, - "baseLayerMD5": "4acf5bc398c19d58acf69fce047ee8f6.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 61 - }, - { - "costumeName": "pufferfish-d", - "baseLayerID": -1, - "baseLayerMD5": "c214fa8a9ceed06db03664007b8ad5c6.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 61 - } - ], - "currentCostumeIndex": 0, - "scratchX": -30, - "scratchY": 53, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b8aa1bd46eacc054c695b89167c3ad28", + "name": "pufferfish-a", + "bitmapResolution": 1, + "md5ext": "b8aa1bd46eacc054c695b89167c3ad28.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 61 + }, + { + "assetId": "1b4f39763c9848cc840522b95cc6d8ae", + "name": "pufferfish-b", + "bitmapResolution": 1, + "md5ext": "1b4f39763c9848cc840522b95cc6d8ae.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 61 + }, + { + "assetId": "2266c6bb2c3a8fb80783518a08852b4a", + "name": "pufferfish-c", + "bitmapResolution": 1, + "md5ext": "2266c6bb2c3a8fb80783518a08852b4a.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 61 + }, + { + "assetId": "e73e71718306f6c7085305dba142c315", + "name": "pufferfish-d", + "bitmapResolution": 1, + "md5ext": "e73e71718306f6c7085305dba142c315.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 61 + } + ], + "sounds": [ + { + "assetId": "c904610d770398b98872a708a2f75611", + "name": "ocean wave", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 99569, + "md5ext": "c904610d770398b98872a708a2f75611.wav" + } + ], + "blocks": {} }, { "name": "Puppy", - "md5": "2768d9e44a0aab055856d301bbc2b04e.png", - "type": "sprite", "tags": [ "animals", "dog", "puppy" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Puppy", - "sounds": [ - { - "soundName": "dog2", - "soundID": -1, - "md5": "cd8fa8390b0efdd281882533fbfcfcfb.wav", - "sampleCount": 3168, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "puppy right", - "baseLayerID": -1, - "baseLayerMD5": "2768d9e44a0aab055856d301bbc2b04e.png", - "bitmapResolution": 2, - "rotationCenterX": 107, - "rotationCenterY": 103 - }, - { - "costumeName": "puppy sit", - "baseLayerID": -1, - "baseLayerMD5": "c7817052ed9e78057f877d0d56b5c6a6.png", - "bitmapResolution": 2, - "rotationCenterX": 87, - "rotationCenterY": 112 - }, - { - "costumeName": "puppy side", - "baseLayerID": -1, - "baseLayerMD5": "c4aeb5c39b39ef57a3f18ace54cf7db1.png", - "bitmapResolution": 2, - "rotationCenterX": 104, - "rotationCenterY": 114 - }, - { - "costumeName": "puppy back", - "baseLayerID": -1, - "baseLayerMD5": "05630bfa94501a3e5d61ce443a0cea70.png", - "bitmapResolution": 2, - "rotationCenterX": 234, - "rotationCenterY": 94 - } - ], - "currentCostumeIndex": 0, - "scratchX": -91, - "scratchY": 33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2768d9e44a0aab055856d301bbc2b04e", + "name": "puppy right", + "bitmapResolution": 2, + "md5ext": "2768d9e44a0aab055856d301bbc2b04e.png", + "dataFormat": "png", + "rotationCenterX": 107, + "rotationCenterY": 103 + }, + { + "assetId": "c7817052ed9e78057f877d0d56b5c6a6", + "name": "puppy sit", + "bitmapResolution": 2, + "md5ext": "c7817052ed9e78057f877d0d56b5c6a6.png", + "dataFormat": "png", + "rotationCenterX": 87, + "rotationCenterY": 112 + }, + { + "assetId": "c4aeb5c39b39ef57a3f18ace54cf7db1", + "name": "puppy side", + "bitmapResolution": 2, + "md5ext": "c4aeb5c39b39ef57a3f18ace54cf7db1.png", + "dataFormat": "png", + "rotationCenterX": 104, + "rotationCenterY": 114 + }, + { + "assetId": "05630bfa94501a3e5d61ce443a0cea70", + "name": "puppy back", + "bitmapResolution": 2, + "md5ext": "05630bfa94501a3e5d61ce443a0cea70.png", + "dataFormat": "png", + "rotationCenterX": 234, + "rotationCenterY": 94 + } + ], + "sounds": [ + { + "assetId": "cd8fa8390b0efdd281882533fbfcfcfb", + "name": "dog2", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 6336, + "md5ext": "cd8fa8390b0efdd281882533fbfcfcfb.wav" + } + ], + "blocks": {} }, { "name": "Rabbit", - "md5": "2f42891c3f3d63c0e591aeabc5946533.svg", - "type": "sprite", "tags": [ "animals", "daria skrybchencko", @@ -12331,1155 +10642,1018 @@ "bunnies", "fluffy" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Rabbit", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "rabbit-a", - "baseLayerID": -1, - "baseLayerMD5": "2f42891c3f3d63c0e591aeabc5946533.svg", - "bitmapResolution": 1, - "rotationCenterX": 84, - "rotationCenterY": 84 - }, - { - "costumeName": "rabbit-b", - "baseLayerID": -1, - "baseLayerMD5": "80e05ff501040cdc9f52fa6782e06fd2.svg", - "bitmapResolution": 1, - "rotationCenterX": 84, - "rotationCenterY": 84 - }, - { - "costumeName": "rabbit-c", - "baseLayerID": -1, - "baseLayerMD5": "88ed8b7925baa025b6c7fc628a64b9b1.svg", - "bitmapResolution": 1, - "rotationCenterX": 84, - "rotationCenterY": 84 - }, - { - "costumeName": "rabbit-d", - "baseLayerID": -1, - "baseLayerMD5": "5f3b8df4d6ab8a72e887f89f554db0be.svg", - "bitmapResolution": 1, - "rotationCenterX": 84, - "rotationCenterY": 84 - }, - { - "costumeName": "rabbit-e", - "baseLayerID": -1, - "baseLayerMD5": "3003f1135f4aa3b6c361734243621260.svg", - "bitmapResolution": 1, - "rotationCenterX": 84, - "rotationCenterY": 84 - } - ], - "currentCostumeIndex": 0, - "scratchX": 71, - "scratchY": -48, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "970f886bfa454e1daa6d6c30ef49a972", + "name": "rabbit-a", + "bitmapResolution": 1, + "md5ext": "970f886bfa454e1daa6d6c30ef49a972.svg", + "dataFormat": "svg", + "rotationCenterX": 84, + "rotationCenterY": 84 + }, + { + "assetId": "1ca3f829a2c9f7fa4d1df295fe5f787c", + "name": "rabbit-b", + "bitmapResolution": 1, + "md5ext": "1ca3f829a2c9f7fa4d1df295fe5f787c.svg", + "dataFormat": "svg", + "rotationCenterX": 84, + "rotationCenterY": 84 + }, + { + "assetId": "49169d752f20d27fb71022b16044d759", + "name": "rabbit-c", + "bitmapResolution": 1, + "md5ext": "49169d752f20d27fb71022b16044d759.svg", + "dataFormat": "svg", + "rotationCenterX": 84, + "rotationCenterY": 84 + }, + { + "assetId": "90677c6f16380ef077d6115f6a6371ff", + "name": "rabbit-d", + "bitmapResolution": 1, + "md5ext": "90677c6f16380ef077d6115f6a6371ff.svg", + "dataFormat": "svg", + "rotationCenterX": 84, + "rotationCenterY": 84 + }, + { + "assetId": "137976ec71439e2f986caeaa70e4c932", + "name": "rabbit-e", + "bitmapResolution": 1, + "md5ext": "137976ec71439e2f986caeaa70e4c932.svg", + "dataFormat": "svg", + "rotationCenterX": 84, + "rotationCenterY": 84 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Radio", - "md5": "d2266f31369a97fdf7ec37090bf0a968.svg", - "type": "sprite", "tags": [ "radio", "music", "beatbox", "bedrorom" ], - "info": [ - 0, - 2, - 4 - ], - "json": { - "objName": "Radio", - "sounds": [ - { - "soundName": "scratch beatbox", - "soundID": -1, - "md5": "859249563a7b1fc0f6e92e36d1db81c7.wav", - "sampleCount": 11552, - "rate": 22050, - "format": "" - }, - { - "soundName": "snare beatbox2", - "soundID": -1, - "md5": "7ede1382b578d8fc32850b48d082d914.wav", - "sampleCount": 4960, - "rate": 22050, - "format": "" - }, - { - "soundName": "wah beatbox", - "soundID": -1, - "md5": "9021b7bb06f2399f18e2db4fb87095dc.wav", - "sampleCount": 6624, - "rate": 22050, - "format": "" - }, - { - "soundName": "bass beatbox", - "soundID": -1, - "md5": "28153621d293c86da0b246d314458faf.wav", - "sampleCount": 6720, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Radio-a", - "baseLayerID": -1, - "baseLayerMD5": "d2266f31369a97fdf7ec37090bf0a968.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 38 - }, - { - "costumeName": "Radio-b", - "baseLayerID": -1, - "baseLayerMD5": "cd4cff5586d0167fd992772360bddf68.svg", - "bitmapResolution": 1, - "rotationCenterX": 51, - "rotationCenterY": 84 - } - ], - "currentCostumeIndex": 0, - "scratchX": -164, - "scratchY": -96, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "828f0762d028605f6fe52f9287555b74", + "name": "Radio-a", + "bitmapResolution": 1, + "md5ext": "828f0762d028605f6fe52f9287555b74.svg", + "dataFormat": "svg", + "rotationCenterX": 52, + "rotationCenterY": 38 + }, + { + "assetId": "e96676f038fc523b40392dc1676552dc", + "name": "Radio-b", + "bitmapResolution": 1, + "md5ext": "e96676f038fc523b40392dc1676552dc.svg", + "dataFormat": "svg", + "rotationCenterX": 51, + "rotationCenterY": 84 + } + ], + "sounds": [ + { + "assetId": "859249563a7b1fc0f6e92e36d1db81c7", + "name": "scratch beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 23104, + "md5ext": "859249563a7b1fc0f6e92e36d1db81c7.wav" + }, + { + "assetId": "7ede1382b578d8fc32850b48d082d914", + "name": "snare beatbox2", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 9920, + "md5ext": "7ede1382b578d8fc32850b48d082d914.wav" + }, + { + "assetId": "9021b7bb06f2399f18e2db4fb87095dc", + "name": "wah beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 13248, + "md5ext": "9021b7bb06f2399f18e2db4fb87095dc.wav" + }, + { + "assetId": "28153621d293c86da0b246d314458faf", + "name": "bass beatbox", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 13440, + "md5ext": "28153621d293c86da0b246d314458faf.wav" + } + ], + "blocks": {} }, { "name": "Rainbow", - "md5": "680a806bd87a28c8b25b5f9b6347f022.svg", - "type": "sprite", "tags": [ "things", "flying", "drawing", "color" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Rainbow", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "rainbow", - "baseLayerID": -1, - "baseLayerMD5": "680a806bd87a28c8b25b5f9b6347f022.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 36 - } - ], - "currentCostumeIndex": 0, - "scratchX": -91, - "scratchY": 11, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "033979eba12e4572b2520bd93a87583e", + "name": "rainbow", + "bitmapResolution": 1, + "md5ext": "033979eba12e4572b2520bd93a87583e.svg", + "dataFormat": "svg", + "rotationCenterX": 72, + "rotationCenterY": 36 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Referee", - "md5": "7caaa6c83b0f947268866b48fbf34ed9.svg", - "type": "sprite", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Referee", - "sounds": [ - { - "soundName": "referee whistle", - "soundID": -1, - "md5": "8468b9b3f11a665ee4d215afd8463b97.wav", - "sampleCount": 14034, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "referee-a", - "baseLayerID": -1, - "baseLayerMD5": "7caaa6c83b0f947268866b48fbf34ed9.svg", - "bitmapResolution": 1, - "rotationCenterX": 44, - "rotationCenterY": 63 - }, - { - "costumeName": "referee-b", - "baseLayerID": -1, - "baseLayerMD5": "b26bc52a8400fa3d51201e9ab4a4dbb2.svg", - "bitmapResolution": 1, - "rotationCenterX": 44, - "rotationCenterY": 63 - }, - { - "costumeName": "referee-c", - "baseLayerID": -1, - "baseLayerMD5": "f96a3af7f21c0b195b8f7a84146b6704.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 62 - }, - { - "costumeName": "referee-d", - "baseLayerID": -1, - "baseLayerMD5": "d6795f2992d899611ee5889811801e42.svg", - "bitmapResolution": 1, - "rotationCenterX": 50, - "rotationCenterY": 63 - } - ], - "currentCostumeIndex": 0, - "scratchX": 112, - "scratchY": 28, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "46dde2baba61a7e48463ae8e58441470", + "name": "referee-a", + "bitmapResolution": 1, + "md5ext": "46dde2baba61a7e48463ae8e58441470.svg", + "dataFormat": "svg", + "rotationCenterX": 44, + "rotationCenterY": 63 + }, + { + "assetId": "7eeca5313c2e7d455482badff3079f64", + "name": "referee-b", + "bitmapResolution": 1, + "md5ext": "7eeca5313c2e7d455482badff3079f64.svg", + "dataFormat": "svg", + "rotationCenterX": 44, + "rotationCenterY": 63 + }, + { + "assetId": "5948c4160089fcc0975a867221ff2256", + "name": "referee-c", + "bitmapResolution": 1, + "md5ext": "5948c4160089fcc0975a867221ff2256.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 62 + }, + { + "assetId": "1cd641a48499db84636d983916b62a83", + "name": "referee-d", + "bitmapResolution": 1, + "md5ext": "1cd641a48499db84636d983916b62a83.svg", + "dataFormat": "svg", + "rotationCenterX": 50, + "rotationCenterY": 63 + } + ], + "sounds": [ + { + "assetId": "8468b9b3f11a665ee4d215afd8463b97", + "name": "referee whistle", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 14225, + "md5ext": "8468b9b3f11a665ee4d215afd8463b97.wav" + } + ], + "blocks": {} }, { "name": "Reindeer", - "md5": "0fff0b181cc4d9250b5b985cc283b049.svg", - "type": "sprite", "tags": [ "animals", "mammals", "holiday" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Reindeer", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "reindeer", - "baseLayerID": -1, - "baseLayerMD5": "0fff0b181cc4d9250b5b985cc283b049.svg", - "bitmapResolution": 1, - "rotationCenterX": 39, - "rotationCenterY": 70 - } - ], - "currentCostumeIndex": 0, - "scratchX": 13, - "scratchY": 26, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "60993a025167e7886736109dca5d55e2", + "name": "reindeer", + "bitmapResolution": 1, + "md5ext": "60993a025167e7886736109dca5d55e2.svg", + "dataFormat": "svg", + "rotationCenterX": 39, + "rotationCenterY": 70 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Retro Robot", - "md5": "a17c1ce38c261395ae268f3b8a9037db.svg", - "type": "sprite", "tags": [ "robot" ], - "info": [ - 0, - 3, - 2 - ], - "json": { - "objName": "Retro Robot", - "sounds": [ - { - "soundName": "computer beeps1", - "soundID": -1, - "md5": "1da43f6d52d0615da8a250e28100a80d.wav", - "sampleCount": 19200, - "rate": 11025, - "format": "" - }, - { - "soundName": "computer beeps2", - "soundID": -1, - "md5": "28c76b6bebd04be1383fe9ba4933d263.wav", - "sampleCount": 9536, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Retro Robot a", - "baseLayerID": -1, - "baseLayerMD5": "a17c1ce38c261395ae268f3b8a9037db.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 86 - }, - { - "costumeName": "Retro Robot b", - "baseLayerID": -1, - "baseLayerMD5": "bfb5afe62358ef542f118299bb53d4b7.svg", - "bitmapResolution": 1, - "rotationCenterX": 52, - "rotationCenterY": 88 - }, - { - "costumeName": "Retro Robot c", - "baseLayerID": -1, - "baseLayerMD5": "f925e3bde178001133a11fa97847a9ae.svg", - "bitmapResolution": 1, - "rotationCenterX": 72, - "rotationCenterY": 91 - } - ], - "currentCostumeIndex": 0, - "scratchX": 50, - "scratchY": -72, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "35070c1078c4eec153ea2769516c922c", + "name": "Retro Robot a", + "bitmapResolution": 1, + "md5ext": "35070c1078c4eec153ea2769516c922c.svg", + "dataFormat": "svg", + "rotationCenterX": 55.04000000000008, + "rotationCenterY": 85.55 + }, + { + "assetId": "d139f89665962dcaab4cb2b246359ba1", + "name": "Retro Robot b", + "bitmapResolution": 1, + "md5ext": "d139f89665962dcaab4cb2b246359ba1.svg", + "dataFormat": "svg", + "rotationCenterX": 50.49583299552708, + "rotationCenterY": 87.39 + }, + { + "assetId": "53398a713b144ecda6ec32fb4a8d28e1", + "name": "Retro Robot c", + "bitmapResolution": 1, + "md5ext": "53398a713b144ecda6ec32fb4a8d28e1.svg", + "dataFormat": "svg", + "rotationCenterX": 70.61999999999998, + "rotationCenterY": 90.3795 + } + ], + "sounds": [ + { + "assetId": "1da43f6d52d0615da8a250e28100a80d", + "name": "computer beeps1", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 76800, + "md5ext": "1da43f6d52d0615da8a250e28100a80d.wav" + }, + { + "assetId": "28c76b6bebd04be1383fe9ba4933d263", + "name": "computer beeps2", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 38144, + "md5ext": "28c76b6bebd04be1383fe9ba4933d263.wav" + } + ], + "blocks": {} }, { "name": "Ripley", - "md5": "417ec9f25ad70281564e85e67c97aa08.svg", - "type": "sprite", "tags": [ "space", "people", "wren mcdonald" ], - "info": [ - 0, - 6, - 1 - ], - "json": { - "objName": "Ripley", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "ripley-a", - "baseLayerID": -1, - "baseLayerMD5": "417ec9f25ad70281564e85e67c97aa08.svg", - "bitmapResolution": 1, - "rotationCenterX": 57, - "rotationCenterY": 89 - }, - { - "costumeName": "ripley-b", - "baseLayerID": -1, - "baseLayerMD5": "e40918acf5c4d1d0d42b437b6b6e965d.svg", - "bitmapResolution": 1, - "rotationCenterX": 57, - "rotationCenterY": 89 - }, - { - "costumeName": "ripley-c", - "baseLayerID": -1, - "baseLayerMD5": "5fb713effcdae17208e6e89527bf720c.svg", - "bitmapResolution": 1, - "rotationCenterX": 57, - "rotationCenterY": 89 - }, - { - "costumeName": "ripley-d", - "baseLayerID": -1, - "baseLayerMD5": "6c6597c221c9a5b46c160f537b9795a2.svg", - "bitmapResolution": 1, - "rotationCenterX": 85, - "rotationCenterY": 89 - }, - { - "costumeName": "ripley-e", - "baseLayerID": -1, - "baseLayerMD5": "92909161afd79673c93a77d15fe8d456.svg", - "bitmapResolution": 1, - "rotationCenterX": 56, - "rotationCenterY": 89 - }, - { - "costumeName": "ripley-f", - "baseLayerID": -1, - "baseLayerMD5": "16e31a6b510ba4e8c1215e6e3a41d9f9.svg", - "bitmapResolution": 1, - "rotationCenterX": 58, - "rotationCenterY": 90 - } - ], - "currentCostumeIndex": 0, - "scratchX": 163, - "scratchY": -51, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e751d0a781694897f75046eb2810e9a5", + "name": "ripley-a", + "bitmapResolution": 1, + "md5ext": "e751d0a781694897f75046eb2810e9a5.svg", + "dataFormat": "svg", + "rotationCenterX": 57, + "rotationCenterY": 89 + }, + { + "assetId": "3ab169f52ea3783270d28ef035a5a7c5", + "name": "ripley-b", + "bitmapResolution": 1, + "md5ext": "3ab169f52ea3783270d28ef035a5a7c5.svg", + "dataFormat": "svg", + "rotationCenterX": 57, + "rotationCenterY": 89 + }, + { + "assetId": "043373c51689f3df8bf50eb12c4e3d39", + "name": "ripley-c", + "bitmapResolution": 1, + "md5ext": "043373c51689f3df8bf50eb12c4e3d39.svg", + "dataFormat": "svg", + "rotationCenterX": 57, + "rotationCenterY": 89 + }, + { + "assetId": "8e173178d886d1cb272877e8923d651b", + "name": "ripley-d", + "bitmapResolution": 1, + "md5ext": "8e173178d886d1cb272877e8923d651b.svg", + "dataFormat": "svg", + "rotationCenterX": 85, + "rotationCenterY": 89 + }, + { + "assetId": "f798adaf44e8891c5e2f1b2a82a613b2", + "name": "ripley-e", + "bitmapResolution": 1, + "md5ext": "f798adaf44e8891c5e2f1b2a82a613b2.svg", + "dataFormat": "svg", + "rotationCenterX": 56, + "rotationCenterY": 89 + }, + { + "assetId": "90feaffe3d0c4d31287d57bd1bc64afa", + "name": "ripley-f", + "bitmapResolution": 1, + "md5ext": "90feaffe3d0c4d31287d57bd1bc64afa.svg", + "dataFormat": "svg", + "rotationCenterX": 58, + "rotationCenterY": 90 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Robot", - "md5": "cb3985cd066ccbab11954709b3d54c17.svg", - "type": "sprite", "tags": [ "space", "robot", "wren mcdonald" ], - "info": [ - 0, - 4, - 3 - ], - "json": { - "objName": "Robot", - "sounds": [ - { - "soundName": "computer beep", - "soundID": -1, - "md5": "28c76b6bebd04be1383fe9ba4933d263.wav", - "sampleCount": 9536, - "rate": 11025, - "format": "" - }, - { - "soundName": "collect", - "soundID": -1, - "md5": "32514c51e03db680e9c63857b840ae78.wav", - "sampleCount": 13320, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "buzz whir", - "soundID": -1, - "md5": "d4f76ded6bccd765958d15b63804de55.wav", - "sampleCount": 9037, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "robot-a", - "baseLayerID": -1, - "baseLayerMD5": "cb3985cd066ccbab11954709b3d54c17.svg", - "bitmapResolution": 1, - "rotationCenterX": 74, - "rotationCenterY": 109 - }, - { - "costumeName": "robot-b", - "baseLayerID": -1, - "baseLayerMD5": "fc9276d0909539fd31c30db7b2e08bf9.svg", - "bitmapResolution": 1, - "rotationCenterX": 56, - "rotationCenterY": 97 - }, - { - "costumeName": "robot-c", - "baseLayerID": -1, - "baseLayerMD5": "c5e02f00d233199fea1c51b71c402ce4.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 97 - }, - { - "costumeName": "robot-d", - "baseLayerID": -1, - "baseLayerMD5": "ca2cf7d6c0446fbce36621006a4b0fac.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 95 - } - ], - "currentCostumeIndex": 0, - "scratchX": -127, - "scratchY": 87, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "89679608327ad572b93225d06fe9edda", + "name": "robot-a", + "bitmapResolution": 1, + "md5ext": "89679608327ad572b93225d06fe9edda.svg", + "dataFormat": "svg", + "rotationCenterX": 58.44040786180267, + "rotationCenterY": 95.79979917361628 + }, + { + "assetId": "36d1098b880dbe47e58d93e7b2842381", + "name": "robot-b", + "bitmapResolution": 1, + "md5ext": "36d1098b880dbe47e58d93e7b2842381.svg", + "dataFormat": "svg", + "rotationCenterX": 55.442543885282845, + "rotationCenterY": 96.58879942566811 + }, + { + "assetId": "4f5441207afc9bc075b0b404dbba8b59", + "name": "robot-c", + "bitmapResolution": 1, + "md5ext": "4f5441207afc9bc075b0b404dbba8b59.svg", + "dataFormat": "svg", + "rotationCenterX": 62.61885234361475, + "rotationCenterY": 96.97427621034126 + }, + { + "assetId": "10060b3b58c77345cfe92288a46e5c20", + "name": "robot-d", + "bitmapResolution": 1, + "md5ext": "10060b3b58c77345cfe92288a46e5c20.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 95 + } + ], + "sounds": [ + { + "assetId": "28c76b6bebd04be1383fe9ba4933d263", + "name": "computer beep", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 38144, + "md5ext": "28c76b6bebd04be1383fe9ba4933d263.wav" + }, + { + "assetId": "32514c51e03db680e9c63857b840ae78", + "name": "collect", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 14225, + "md5ext": "32514c51e03db680e9c63857b840ae78.wav" + }, + { + "assetId": "d4f76ded6bccd765958d15b63804de55", + "name": "buzz whir", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 36148, + "md5ext": "d4f76ded6bccd765958d15b63804de55.wav" + } + ], + "blocks": {} }, { "name": "Rocketship", - "md5": "85190bb07708855c0896224340e159ed.svg", - "type": "sprite", "tags": [ "space", "spaceship", "wren mcdonald" ], - "info": [ - 0, - 5, - 3 - ], - "json": { - "objName": "Rocketship", - "sounds": [ - { - "soundName": "space ripple", - "soundID": -1, - "md5": "ff8b8c3bf841a11fd5fe3afaa92be1b5.wav", - "sampleCount": 41149, - "rate": 11025, - "format": "" - }, - { - "soundName": "laser1", - "soundID": -1, - "md5": "46571f8ec0f2cc91666c80e312579082.wav", - "sampleCount": 516, - "rate": 11025, - "format": "" - }, - { - "soundName": "laser2", - "soundID": -1, - "md5": "27654ed2e3224f0a3f77c244e4fae9aa.wav", - "sampleCount": 755, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "rocketship-a", - "baseLayerID": -1, - "baseLayerMD5": "85190bb07708855c0896224340e159ed.svg", - "bitmapResolution": 1, - "rotationCenterX": 63, - "rotationCenterY": 92 - }, - { - "costumeName": "rocketship-b", - "baseLayerID": -1, - "baseLayerMD5": "2c0f804073ec656a86bbc3ebdf18bf5d.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 92 - }, - { - "costumeName": "rocketship-c", - "baseLayerID": -1, - "baseLayerMD5": "13a0accfa405979e4deee12e6eb9c41e.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 91 - }, - { - "costumeName": "rocketship-d", - "baseLayerID": -1, - "baseLayerMD5": "f4d0c6da1c167abbd8e86ff720ae24f9.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 91 - }, - { - "costumeName": "rocketship-e", - "baseLayerID": -1, - "baseLayerMD5": "6e58c447e994a38b51eeb105dff5711c.svg", - "bitmapResolution": 1, - "rotationCenterX": 71, - "rotationCenterY": 111 - } - ], - "currentCostumeIndex": 0, - "scratchX": 123, - "scratchY": 50, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "525c06ceb3a351244bcd810c9ba951c7", + "name": "rocketship-a", + "bitmapResolution": 1, + "md5ext": "525c06ceb3a351244bcd810c9ba951c7.svg", + "dataFormat": "svg", + "rotationCenterX": 63, + "rotationCenterY": 92 + }, + { + "assetId": "10f83786e5ee34f40ee43b49bba89ee2", + "name": "rocketship-b", + "bitmapResolution": 1, + "md5ext": "10f83786e5ee34f40ee43b49bba89ee2.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 92 + }, + { + "assetId": "a6ff2f1344a18cc0a4bcc945e00afaf4", + "name": "rocketship-c", + "bitmapResolution": 1, + "md5ext": "a6ff2f1344a18cc0a4bcc945e00afaf4.svg", + "dataFormat": "svg", + "rotationCenterX": 58.746896096779665, + "rotationCenterY": 90.91206944356854 + }, + { + "assetId": "5682c68af2cc8aea791f0373e9ed03d8", + "name": "rocketship-d", + "bitmapResolution": 1, + "md5ext": "5682c68af2cc8aea791f0373e9ed03d8.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 91 + }, + { + "assetId": "49ee475c516a444d8a512724063b8b98", + "name": "rocketship-e", + "bitmapResolution": 1, + "md5ext": "49ee475c516a444d8a512724063b8b98.svg", + "dataFormat": "svg", + "rotationCenterX": 57.220799012796846, + "rotationCenterY": 85.12261084456834 + } + ], + "sounds": [ + { + "assetId": "ff8b8c3bf841a11fd5fe3afaa92be1b5", + "name": "space ripple", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 164596, + "md5ext": "ff8b8c3bf841a11fd5fe3afaa92be1b5.wav" + }, + { + "assetId": "46571f8ec0f2cc91666c80e312579082", + "name": "laser1", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 2064, + "md5ext": "46571f8ec0f2cc91666c80e312579082.wav" + }, + { + "assetId": "27654ed2e3224f0a3f77c244e4fae9aa", + "name": "laser2", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 3020, + "md5ext": "27654ed2e3224f0a3f77c244e4fae9aa.wav" + } + ], + "blocks": {} }, { "name": "Rocks", - "md5": "82c79fdb6a7d9c49ab7f70ee79a3d7f8.svg", - "type": "sprite", "tags": [ "things", "potassium" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Rocks", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "rocks", - "baseLayerID": -1, - "baseLayerMD5": "82c79fdb6a7d9c49ab7f70ee79a3d7f8.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 15 - } - ], - "currentCostumeIndex": 0, - "scratchX": 35, - "scratchY": 36, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "55426ccbb5c49b1526e53586943f3ec3", + "name": "rocks", + "bitmapResolution": 1, + "md5ext": "55426ccbb5c49b1526e53586943f3ec3.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 15 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Rooster", - "md5": "db49a3dc8db15ea2b92d7934488f996b.svg", - "type": "sprite", "tags": [ "animals", "chicken", "farm", "owen davey" ], - "info": [ - 0, - 3, - 2 - ], - "json": { - "objName": "Rooster", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - }, - { - "soundName": "rooster", - "soundID": -1, - "md5": "2e375acae2c7c0d655935a9de14b12f6.wav", - "sampleCount": 17110, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "rooster-a", - "baseLayerID": -1, - "baseLayerMD5": "db49a3dc8db15ea2b92d7934488f996b.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 70 - }, - { - "costumeName": "rooster-b", - "baseLayerID": -1, - "baseLayerMD5": "c5aa68995a2ac203d6fe2e4dd9d86911.svg", - "bitmapResolution": 1, - "rotationCenterX": 58, - "rotationCenterY": 70 - }, - { - "costumeName": "rooster-c", - "baseLayerID": -1, - "baseLayerMD5": "b7a5c9f9d387cc7d36d6ed935d2a46b1.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 72 - } - ], - "currentCostumeIndex": 0, - "scratchX": -6, - "scratchY": 3, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0ae345deb1c81ec7f4f4644c26ac85fa", + "name": "rooster-a", + "bitmapResolution": 1, + "md5ext": "0ae345deb1c81ec7f4f4644c26ac85fa.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 70 + }, + { + "assetId": "bd5f701c99aa6512bac7b87c51e7cd46", + "name": "rooster-b", + "bitmapResolution": 1, + "md5ext": "bd5f701c99aa6512bac7b87c51e7cd46.svg", + "dataFormat": "svg", + "rotationCenterX": 58, + "rotationCenterY": 70 + }, + { + "assetId": "6490360bd5d6efd2b646fb24c19df6b1", + "name": "rooster-c", + "bitmapResolution": 1, + "md5ext": "6490360bd5d6efd2b646fb24c19df6b1.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 72 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + }, + { + "assetId": "2e375acae2c7c0d655935a9de14b12f6", + "name": "rooster", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 68440, + "md5ext": "2e375acae2c7c0d655935a9de14b12f6.wav" + } + ], + "blocks": {} }, { "name": "Ruby", - "md5": "c30210e8f719c3a4d2c7cc6917a39300.png", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Ruby", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "ruby-a", - "baseLayerID": -1, - "baseLayerMD5": "c30210e8f719c3a4d2c7cc6917a39300.png", - "bitmapResolution": 2, - "rotationCenterX": 54, - "rotationCenterY": 172 - }, - { - "costumeName": "ruby-b", - "baseLayerID": -1, - "baseLayerMD5": "fc15fdbcc535473f6140cab28197f3be.png", - "bitmapResolution": 2, - "rotationCenterX": 76, - "rotationCenterY": 142 - } - ], - "currentCostumeIndex": 0, - "scratchX": -39, - "scratchY": 37, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c30210e8f719c3a4d2c7cc6917a39300", + "name": "ruby-a", + "bitmapResolution": 2, + "md5ext": "c30210e8f719c3a4d2c7cc6917a39300.png", + "dataFormat": "png", + "rotationCenterX": 54, + "rotationCenterY": 172 + }, + { + "assetId": "fc15fdbcc535473f6140cab28197f3be", + "name": "ruby-b", + "bitmapResolution": 2, + "md5ext": "fc15fdbcc535473f6140cab28197f3be.png", + "dataFormat": "png", + "rotationCenterX": 76, + "rotationCenterY": 142 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Sailboat", - "md5": "ca241a938a2c44a0de6b91230012ff39.png", - "type": "sprite", "tags": [ "boat", "transportation" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Sailboat", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "sailboat", - "baseLayerID": -1, - "baseLayerMD5": "ca241a938a2c44a0de6b91230012ff39.png", - "bitmapResolution": 2, - "rotationCenterX": 224, - "rotationCenterY": 182 - } - ], - "currentCostumeIndex": 0, - "scratchX": 18, - "scratchY": 49, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ca241a938a2c44a0de6b91230012ff39", + "name": "sailboat", + "bitmapResolution": 2, + "md5ext": "ca241a938a2c44a0de6b91230012ff39.png", + "dataFormat": "png", + "rotationCenterX": 224, + "rotationCenterY": 182 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Sam", - "md5": "8208e99159b36c957fb9fbc187e51bc7.png", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Sam", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "sam", - "baseLayerID": -1, - "baseLayerMD5": "8208e99159b36c957fb9fbc187e51bc7.png", - "bitmapResolution": 2, - "rotationCenterX": 117, - "rotationCenterY": 159 - } - ], - "currentCostumeIndex": 0, - "scratchX": 50, - "scratchY": -28, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "8208e99159b36c957fb9fbc187e51bc7", + "name": "sam", + "bitmapResolution": 2, + "md5ext": "8208e99159b36c957fb9fbc187e51bc7.png", + "dataFormat": "png", + "rotationCenterX": 117, + "rotationCenterY": 159 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} + }, + { + "name": "Sasha", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e26bf53469cafd730ca150e745ceeafc", + "name": "Sasha-a", + "bitmapResolution": 1, + "md5ext": "e26bf53469cafd730ca150e745ceeafc.svg", + "dataFormat": "svg", + "rotationCenterX": 48.12538146972656, + "rotationCenterY": 132.3017578125 + }, + { + "assetId": "a0b8890ce458aebed5e7002e1897508e", + "name": "Sasha-b", + "bitmapResolution": 1, + "md5ext": "a0b8890ce458aebed5e7002e1897508e.svg", + "dataFormat": "svg", + "rotationCenterX": 40.4882598059082, + "rotationCenterY": 132.05174255371094 + }, + { + "assetId": "89bb25e1465eb9481d267e4f9df592af", + "name": "Sasha-c", + "bitmapResolution": 1, + "md5ext": "89bb25e1465eb9481d267e4f9df592af.svg", + "dataFormat": "svg", + "rotationCenterX": 56.06647351528716, + "rotationCenterY": 131.95398475097656 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "Pop", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 1123, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Saxophone", - "md5": "e9e4297f5d7e630a384b1dea835ec72d.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 8 - ], - "json": { - "objName": "Saxophone", - "sounds": [ - { - "soundName": "C Sax", - "soundID": -1, - "md5": "4d2c939d6953b5f241a27a62cf72de64.wav", - "sampleCount": 9491, - "rate": 22050, - "format": "" - }, - { - "soundName": "D Sax", - "soundID": -1, - "md5": "39f41954a73c0e15d842061e1a4c5e1d.wav", - "sampleCount": 9555, - "rate": 22050, - "format": "" - }, - { - "soundName": "E Sax", - "soundID": -1, - "md5": "3568b7dfe173fab6877a9ff1dcbcf1aa.wav", - "sampleCount": 7489, - "rate": 22050, - "format": "" - }, - { - "soundName": "F Sax", - "soundID": -1, - "md5": "2ae3083817bcd595e26ea2884b6684d5.wav", - "sampleCount": 7361, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "G Sax", - "soundID": -1, - "md5": "cefba5de46adfe5702485e0934bb1e13.wav", - "sampleCount": 7349, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "A Sax", - "soundID": -1, - "md5": "420991e0d6d99292c6d736963842536a.wav", - "sampleCount": 6472, - "rate": 22050, - "format": "" - }, - { - "soundName": "B Sax", - "soundID": -1, - "md5": "653ebe92d491b49ad5d8101d629f567b.wav", - "sampleCount": 9555, - "rate": 22050, - "format": "" - }, - { - "soundName": "C2 Sax", - "soundID": -1, - "md5": "ea8d34b18c3d8fe328cea201666458bf.wav", - "sampleCount": 7349, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "saxophone-a", - "baseLayerID": -1, - "baseLayerMD5": "e9e4297f5d7e630a384b1dea835ec72d.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 80 - }, - { - "costumeName": "saxophone-b", - "baseLayerID": -1, - "baseLayerMD5": "04e5650480bfcf9190aa35bbd8d67b8e.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 80 - } - ], - "currentCostumeIndex": 0, - "scratchX": 137, - "scratchY": -13, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4414c51bdd03f60f40a1210e1d55cf57", + "name": "saxophone-a", + "bitmapResolution": 1, + "md5ext": "4414c51bdd03f60f40a1210e1d55cf57.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 80 + }, + { + "assetId": "459a64bebb7a788395c70e5369ab4746", + "name": "saxophone-b", + "bitmapResolution": 1, + "md5ext": "459a64bebb7a788395c70e5369ab4746.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 80 + } + ], + "sounds": [ + { + "assetId": "4d2c939d6953b5f241a27a62cf72de64", + "name": "C Sax", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 18982, + "md5ext": "4d2c939d6953b5f241a27a62cf72de64.wav" + }, + { + "assetId": "39f41954a73c0e15d842061e1a4c5e1d", + "name": "D Sax", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 19110, + "md5ext": "39f41954a73c0e15d842061e1a4c5e1d.wav" + }, + { + "assetId": "3568b7dfe173fab6877a9ff1dcbcf1aa", + "name": "E Sax", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 14978, + "md5ext": "3568b7dfe173fab6877a9ff1dcbcf1aa.wav" + }, + { + "assetId": "2ae3083817bcd595e26ea2884b6684d5", + "name": "F Sax", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "2ae3083817bcd595e26ea2884b6684d5.wav" + }, + { + "assetId": "cefba5de46adfe5702485e0934bb1e13", + "name": "G Sax", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "cefba5de46adfe5702485e0934bb1e13.wav" + }, + { + "assetId": "420991e0d6d99292c6d736963842536a", + "name": "A Sax", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 12944, + "md5ext": "420991e0d6d99292c6d736963842536a.wav" + }, + { + "assetId": "653ebe92d491b49ad5d8101d629f567b", + "name": "B Sax", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 19110, + "md5ext": "653ebe92d491b49ad5d8101d629f567b.wav" + }, + { + "assetId": "ea8d34b18c3d8fe328cea201666458bf", + "name": "C2 Sax", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "ea8d34b18c3d8fe328cea201666458bf.wav" + } + ], + "blocks": {} }, { "name": "Scarf", - "md5": "5d671a4eb5c42e365d3c0ba1b885d9d8.svg", - "type": "sprite", "tags": [ "fashion", "red" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Scarf", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Scarf-a", - "baseLayerID": -1, - "baseLayerMD5": "5d671a4eb5c42e365d3c0ba1b885d9d8.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 23 - }, - { - "costumeName": "Scarf-b", - "baseLayerID": -1, - "baseLayerMD5": "0c03668b4e26eba969ad803a4e810c78.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 23 - }, - { - "costumeName": "Scarf-c", - "baseLayerID": -1, - "baseLayerMD5": "ce66662165e2756070f1b12e0a7cb5db.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 44 - } - ], - "currentCostumeIndex": 0, - "scratchX": 53, - "scratchY": 10, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "213db212d5d0c602f85cb248719ce785", + "name": "Scarf-a", + "bitmapResolution": 1, + "md5ext": "213db212d5d0c602f85cb248719ce785.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 23 + }, + { + "assetId": "05b06ab8d2c6e2110896d70bb60a9fd7", + "name": "Scarf-b", + "bitmapResolution": 1, + "md5ext": "05b06ab8d2c6e2110896d70bb60a9fd7.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 23 + }, + { + "assetId": "4a85e4e6232f12abf9802bec4aa419b3", + "name": "Scarf-c", + "bitmapResolution": 1, + "md5ext": "4a85e4e6232f12abf9802bec4aa419b3.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 44 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Shark", - "md5": "4ca6776e9c021e8b21c3346793c9361d.svg", - "type": "sprite", "tags": [ "animals", "underwater", "ipzy", "fish" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Shark", - "sounds": [ - { - "soundName": "chomp", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "shark-a", - "baseLayerID": -1, - "baseLayerMD5": "4ca6776e9c021e8b21c3346793c9361d.svg", - "bitmapResolution": 1, - "rotationCenterX": 150, - "rotationCenterY": 60 - }, - { - "costumeName": "shark-b", - "baseLayerID": -1, - "baseLayerMD5": "0bb623f0bbec53ee9667cee0b7ad6d47.svg", - "bitmapResolution": 1, - "rotationCenterX": 150, - "rotationCenterY": 60 - } - ], - "currentCostumeIndex": 0, - "scratchX": -5, - "scratchY": 54, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6c8008ae677ec51af8da5023fa2cd521", + "name": "shark-a", + "bitmapResolution": 1, + "md5ext": "6c8008ae677ec51af8da5023fa2cd521.svg", + "dataFormat": "svg", + "rotationCenterX": 150, + "rotationCenterY": 60 + }, + { + "assetId": "b769db8fcbbf2609f0552db62ec1f94a", + "name": "shark-b", + "bitmapResolution": 1, + "md5ext": "b769db8fcbbf2609f0552db62ec1f94a.svg", + "dataFormat": "svg", + "rotationCenterX": 150, + "rotationCenterY": 60 + } + ], + "sounds": [ + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "chomp", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + } + ], + "blocks": {} }, { "name": "Shark 2", - "md5": "7c0a907eae79462f69f8e2af8e7df828.svg", - "type": "sprite", "tags": [ "animals", "ocean", @@ -13489,308 +11663,247 @@ "carnivore", "chomp" ], - "info": [ - 0, - 3, - 3 - ], - "json": { - "objName": "Shark 2", - "sounds": [ - { - "soundName": "Water drop", - "soundID": -1, - "md5": "e133e625fd367d269e76964d4b722fc2.wav", - "sampleCount": 15131, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Bite", - "soundID": -1, - "md5": "0039635b1d6853face36581784558454.wav", - "sampleCount": 7672, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Water drop", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "shark2-a", - "baseLayerID": -1, - "baseLayerMD5": "7c0a907eae79462f69f8e2af8e7df828.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "shark2-b", - "baseLayerID": -1, - "baseLayerMD5": "cff9ae87a93294693a0650b38a7a33d2.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "shark2-c", - "baseLayerID": -1, - "baseLayerMD5": "afeae3f998598424f7c50918507f6ce6.svg", - "bitmapResolution": 1, - "rotationCenterX": 77, - "rotationCenterY": 37 - } - ], - "currentCostumeIndex": 0, - "scratchX": 41, - "scratchY": -15, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "8a8d551e951087050cfa88fc64f9b4db", + "name": "shark2-a", + "bitmapResolution": 1, + "md5ext": "8a8d551e951087050cfa88fc64f9b4db.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + }, + { + "assetId": "6182a0628eadf2d16624864bea964432", + "name": "shark2-b", + "bitmapResolution": 1, + "md5ext": "6182a0628eadf2d16624864bea964432.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + }, + { + "assetId": "7f4440b268358417aa79ccef06877c57", + "name": "shark2-c", + "bitmapResolution": 1, + "md5ext": "7f4440b268358417aa79ccef06877c57.svg", + "dataFormat": "svg", + "rotationCenterX": 77, + "rotationCenterY": 37 + } + ], + "sounds": [ + { + "assetId": "e133e625fd367d269e76964d4b722fc2", + "name": "Water drop", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 15241, + "md5ext": "e133e625fd367d269e76964d4b722fc2.wav" + }, + { + "assetId": "0039635b1d6853face36581784558454", + "name": "Bite", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "0039635b1d6853face36581784558454.wav" + }, + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "Water drop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + } + ], + "blocks": {} }, { "name": "Shirt", - "md5": "659465944053fe6fb6aa1ed0e11be9aa.svg", - "type": "sprite", "tags": [ "fashion", "shirt" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Shirt", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "shirt-a", - "baseLayerID": -1, - "baseLayerMD5": "659465944053fe6fb6aa1ed0e11be9aa.svg", - "bitmapResolution": 1, - "rotationCenterX": 46, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": 147, - "scratchY": 93, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "43e916bbe0ba7cecd08407d25ac3d104", + "name": "shirt-a", + "bitmapResolution": 1, + "md5ext": "43e916bbe0ba7cecd08407d25ac3d104.svg", + "dataFormat": "svg", + "rotationCenterX": 46, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Shoes", - "md5": "4639a1af5bc91f1a6f14e822cd46972f.svg", - "type": "sprite", "tags": [ "fashion", "shoes", "sneakers", "clothing" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Shoes", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "shoes-a", - "baseLayerID": -1, - "baseLayerMD5": "4639a1af5bc91f1a6f14e822cd46972f.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 13 - }, - { - "costumeName": "shoes-b", - "baseLayerID": -1, - "baseLayerMD5": "6ba2a692c17f47170d611578a5620ae5.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 31 - }, - { - "costumeName": "shoes-d", - "baseLayerID": -1, - "baseLayerMD5": "1130f7ca93716bac6afa31af86329e92.svg", - "bitmapResolution": 1, - "rotationCenterX": 44, - "rotationCenterY": 32 - }, - { - "costumeName": "shoes-c", - "baseLayerID": -1, - "baseLayerMD5": "14c6843195bd13824d253cb3fdb9e6de.svg", - "bitmapResolution": 1, - "rotationCenterX": 45, - "rotationCenterY": 33 - } - ], - "currentCostumeIndex": 0, - "scratchX": 49, - "scratchY": -140, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f89f1656251248f1591aa67ae946c047", + "name": "shoes-a", + "bitmapResolution": 1, + "md5ext": "f89f1656251248f1591aa67ae946c047.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 13 + }, + { + "assetId": "71b5a444d482455e9956cfd52d20526a", + "name": "shoes-b", + "bitmapResolution": 1, + "md5ext": "71b5a444d482455e9956cfd52d20526a.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 31 + }, + { + "assetId": "1e813a1618f38212a6febaa7e6b8d712", + "name": "shoes-d", + "bitmapResolution": 1, + "md5ext": "1e813a1618f38212a6febaa7e6b8d712.svg", + "dataFormat": "svg", + "rotationCenterX": 44, + "rotationCenterY": 32 + }, + { + "assetId": "724d9a8984279949ce452fc9b2e437a6", + "name": "shoes-c", + "bitmapResolution": 1, + "md5ext": "724d9a8984279949ce452fc9b2e437a6.svg", + "dataFormat": "svg", + "rotationCenterX": 45, + "rotationCenterY": 33 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Shorts", - "md5": "d9b580c913c0d1d1a996dd733af91e68.svg", - "type": "sprite", "tags": [ "fashion", "pants", "shorts", "clothing" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Shorts", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "shorts-a", - "baseLayerID": -1, - "baseLayerMD5": "d9b580c913c0d1d1a996dd733af91e68.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 37 - }, - { - "costumeName": "shorts-b", - "baseLayerID": -1, - "baseLayerMD5": "1e07ab2763e5e0f5557f97c0e2c89020.svg", - "bitmapResolution": 1, - "rotationCenterX": 43, - "rotationCenterY": 36 - }, - { - "costumeName": "shorts-c", - "baseLayerID": -1, - "baseLayerMD5": "dc9e0a1c2489ec0bf59a937b6c8ae85b.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 29 - } - ], - "currentCostumeIndex": 0, - "scratchX": -166, - "scratchY": -113, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ea78ad682811f9c42731ec648ec7af3c", + "name": "shorts-a", + "bitmapResolution": 1, + "md5ext": "ea78ad682811f9c42731ec648ec7af3c.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 37 + }, + { + "assetId": "d5fc56b7247f079e5821d74d3e91e7a6", + "name": "shorts-b", + "bitmapResolution": 1, + "md5ext": "d5fc56b7247f079e5821d74d3e91e7a6.svg", + "dataFormat": "svg", + "rotationCenterX": 43, + "rotationCenterY": 36 + }, + { + "assetId": "4d5f7a13ed20dc4f8fd194a7eb3f625f", + "name": "shorts-c", + "bitmapResolution": 1, + "md5ext": "4d5f7a13ed20dc4f8fd194a7eb3f625f.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 29 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Singer1", - "md5": "e47ef1af3b925e5ac9e3b3f809d440b3.svg", - "type": "sprite", "tags": [ "people", "music" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Singer1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Singer1", - "baseLayerID": -1, - "baseLayerMD5": "e47ef1af3b925e5ac9e3b3f809d440b3.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": -74, - "scratchY": -32, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d6ff94dc7e24200c28015ee5d6373140", + "name": "Singer1", + "bitmapResolution": 1, + "md5ext": "d6ff94dc7e24200c28015ee5d6373140.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Skeleton", - "md5": "e06f6eaf4fd27ff22f4c8207aa13c967.svg", - "type": "sprite", "tags": [ "fantasy", "spooky", @@ -13799,275 +11912,210 @@ "monster", "alex eben meyer" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Skeleton", - "sounds": [ - { - "soundName": "rattle", - "soundID": -1, - "md5": "74f1c07e0bcd7811fd9d456a5f8667f8.wav", - "sampleCount": 13184, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "skeleton-a", - "baseLayerID": -1, - "baseLayerMD5": "e06f6eaf4fd27ff22f4c8207aa13c967.svg", - "bitmapResolution": 1, - "rotationCenterX": 59, - "rotationCenterY": 100 - }, - { - "costumeName": "skeleton-b", - "baseLayerID": -1, - "baseLayerMD5": "06769ddf5fad85e101c7beda554d60b9.svg", - "bitmapResolution": 1, - "rotationCenterX": 69, - "rotationCenterY": 90 - }, - { - "costumeName": "skeleton-d", - "baseLayerID": -1, - "baseLayerMD5": "155efd0dfdc59a0e2a546a4a7d068ece.svg", - "bitmapResolution": 1, - "rotationCenterX": 51, - "rotationCenterY": 100 - }, - { - "costumeName": "skeleton-e", - "baseLayerID": -1, - "baseLayerMD5": "c41a11468602522cdc6dec7043215f65.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 89 - } - ], - "currentCostumeIndex": 0, - "scratchX": 148, - "scratchY": -34, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c4d755c672a0826caa7b6fb767cc3f9b", + "name": "skeleton-a", + "bitmapResolution": 1, + "md5ext": "c4d755c672a0826caa7b6fb767cc3f9b.svg", + "dataFormat": "svg", + "rotationCenterX": 59, + "rotationCenterY": 100 + }, + { + "assetId": "f4a00b2bd214b1d8412a2e89b2030354", + "name": "skeleton-b", + "bitmapResolution": 1, + "md5ext": "f4a00b2bd214b1d8412a2e89b2030354.svg", + "dataFormat": "svg", + "rotationCenterX": 69, + "rotationCenterY": 90 + }, + { + "assetId": "67108e6b1d0f41aba2f94f81114ebf59", + "name": "skeleton-d", + "bitmapResolution": 1, + "md5ext": "67108e6b1d0f41aba2f94f81114ebf59.svg", + "dataFormat": "svg", + "rotationCenterX": 51, + "rotationCenterY": 100 + }, + { + "assetId": "3cfff37072a4138b977ba406c290b419", + "name": "skeleton-e", + "bitmapResolution": 1, + "md5ext": "3cfff37072a4138b977ba406c290b419.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 89 + } + ], + "sounds": [ + { + "assetId": "74f1c07e0bcd7811fd9d456a5f8667f8", + "name": "rattle", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 26368, + "md5ext": "74f1c07e0bcd7811fd9d456a5f8667f8.wav" + } + ], + "blocks": {} }, { "name": "Snake", - "md5": "4d06e12d90479461303d828f0970f2d4.svg", - "type": "sprite", "tags": [ "animals", "reptile", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Snake", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "snake-a", - "baseLayerID": -1, - "baseLayerMD5": "4d06e12d90479461303d828f0970f2d4.svg", - "bitmapResolution": 1, - "rotationCenterX": 142, - "rotationCenterY": 68 - }, - { - "costumeName": "snake-b", - "baseLayerID": -1, - "baseLayerMD5": "a8546a5f9ccaa2bdb678a362c50a17ec.svg", - "bitmapResolution": 1, - "rotationCenterX": 142, - "rotationCenterY": 68 - }, - { - "costumeName": "snake-c", - "baseLayerID": -1, - "baseLayerMD5": "d993a7d70179777c14ac91a07e711d90.svg", - "bitmapResolution": 1, - "rotationCenterX": 142, - "rotationCenterY": 68 - } - ], - "currentCostumeIndex": 0, - "scratchX": -113, - "scratchY": -99, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f0e6ebdbdc8571b42f8a48cc2aed3042", + "name": "snake-a", + "bitmapResolution": 1, + "md5ext": "f0e6ebdbdc8571b42f8a48cc2aed3042.svg", + "dataFormat": "svg", + "rotationCenterX": 142, + "rotationCenterY": 68 + }, + { + "assetId": "42519e0ee19d75def88a514d3c49ce37", + "name": "snake-b", + "bitmapResolution": 1, + "md5ext": "42519e0ee19d75def88a514d3c49ce37.svg", + "dataFormat": "svg", + "rotationCenterX": 142, + "rotationCenterY": 68 + }, + { + "assetId": "a0acb49efdf60b20cea0833eeedd44a1", + "name": "snake-c", + "bitmapResolution": 1, + "md5ext": "a0acb49efdf60b20cea0833eeedd44a1.svg", + "dataFormat": "svg", + "rotationCenterX": 142, + "rotationCenterY": 68 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Snowflake", - "md5": "67de2af723246de37d7379b76800ee0b.svg", - "type": "sprite", "tags": [ "winter" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Snowflake", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "snowflake", - "baseLayerID": -1, - "baseLayerMD5": "67de2af723246de37d7379b76800ee0b.svg", - "bitmapResolution": 1, - "rotationCenterX": 104, - "rotationCenterY": 103 - } - ], - "currentCostumeIndex": 0, - "scratchX": 0, - "scratchY": -32, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "083735cc9cd0e6d8c3dbab5ab9ee5407", + "name": "snowflake", + "bitmapResolution": 1, + "md5ext": "083735cc9cd0e6d8c3dbab5ab9ee5407.svg", + "dataFormat": "svg", + "rotationCenterX": 104, + "rotationCenterY": 103 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Snowman", - "md5": "56c71c31c17b9bc66a2aab0342cf94b2.svg", - "type": "sprite", "tags": [ "fantasy", "drawing", "winter" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Snowman", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "snowman", - "baseLayerID": -1, - "baseLayerMD5": "56c71c31c17b9bc66a2aab0342cf94b2.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": -86, - "scratchY": 45, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0f109df620f935b94cb154101e6586d4", + "name": "snowman", + "bitmapResolution": 1, + "md5ext": "0f109df620f935b94cb154101e6586d4.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Soccer Ball", - "md5": "73eaf05fed60e9d65867508736f84569.svg", - "type": "sprite", "tags": [ "sports", "soccer", "football", "alex eben meyer" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Soccer Ball", - "sounds": [ - { - "soundName": "basketball bounce", - "soundID": -1, - "md5": "1727f65b5f22d151685b8e5917456a60.wav", - "sampleCount": 8099, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "soccer ball", - "baseLayerID": -1, - "baseLayerMD5": "73eaf05fed60e9d65867508736f84569.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 22 - } - ], - "currentCostumeIndex": 0, - "scratchX": 74, - "scratchY": -80, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5d973d7a3a8be3f3bd6e1cd0f73c32b5", + "name": "soccer ball", + "bitmapResolution": 1, + "md5ext": "5d973d7a3a8be3f3bd6e1cd0f73c32b5.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 22 + } + ], + "sounds": [ + { + "assetId": "1727f65b5f22d151685b8e5917456a60", + "name": "basketball bounce", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "1727f65b5f22d151685b8e5917456a60.wav" + } + ], + "blocks": {} }, { "name": "Speaker", - "md5": "44dc3a2ec161999545914d1f77332d76.svg", - "type": "sprite", "tags": [ "music", "things", @@ -14075,209 +12123,151 @@ "treble", "concert" ], - "info": [ - 0, - 1, - 7 - ], - "json": { - "objName": "Speaker", - "variables": [ - { - "name": "scale degree", - "value": 1, - "isPersistent": false - }, - { - "name": "octave", - "value": 0, - "isPersistent": false - }, - { - "name": "note number", - "value": 62, - "isPersistent": false - }, - { - "name": "loop number", - "value": 1, - "isPersistent": false - } - ], - "sounds": [ - { - "soundName": "Drive Around", - "soundID": -1, - "md5": "a3a85fb8564b0266f50a9c091087b7aa.wav", - "sampleCount": 44096, - "rate": 22050, - "format": "" - }, - { - "soundName": "Scratchy Beat", - "soundID": -1, - "md5": "289dc558e076971e74dd1a0bd55719b1.wav", - "sampleCount": 44096, - "rate": 22050, - "format": "" - }, - { - "soundName": "Drum Jam", - "soundID": -1, - "md5": "8b5486ccc806e97e83049d25b071f7e4.wav", - "sampleCount": 44288, - "rate": 22050, - "format": "" - }, - { - "soundName": "Cymbal Echo", - "soundID": -1, - "md5": "bb243badd1201b2607bf2513df10cd97.wav", - "sampleCount": 44326, - "rate": 22050, - "format": "" - }, - { - "soundName": "Drum Satellite", - "soundID": -1, - "md5": "079067d7909f791b29f8be1c00fc2131.wav", - "sampleCount": 44096, - "rate": 22050, - "format": "" - }, - { - "soundName": "Kick Back", - "soundID": -1, - "md5": "9cd340d9d568b1479f731e69e103b3ce.wav", - "sampleCount": 44748, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "Drum Funky", - "soundID": -1, - "md5": "fb56022366d21b299cbc3fd5e16000c2.wav", - "sampleCount": 44748, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "speaker", - "baseLayerID": -1, - "baseLayerMD5": "44dc3a2ec161999545914d1f77332d76.svg", - "bitmapResolution": 1, - "rotationCenterX": 53, - "rotationCenterY": 79 - } - ], - "currentCostumeIndex": 0, - "scratchX": -1, - "scratchY": -28, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "697f6becae5321f77990636564ef0c97", + "name": "speaker", + "bitmapResolution": 1, + "md5ext": "697f6becae5321f77990636564ef0c97.svg", + "dataFormat": "svg", + "rotationCenterX": 53, + "rotationCenterY": 79 + } + ], + "sounds": [ + { + "assetId": "a3a85fb8564b0266f50a9c091087b7aa", + "name": "Drive Around", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88192, + "md5ext": "a3a85fb8564b0266f50a9c091087b7aa.wav" + }, + { + "assetId": "289dc558e076971e74dd1a0bd55719b1", + "name": "Scratchy Beat", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88192, + "md5ext": "289dc558e076971e74dd1a0bd55719b1.wav" + }, + { + "assetId": "8b5486ccc806e97e83049d25b071f7e4", + "name": "Drum Jam", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88576, + "md5ext": "8b5486ccc806e97e83049d25b071f7e4.wav" + }, + { + "assetId": "bb243badd1201b2607bf2513df10cd97", + "name": "Cymbal Echo", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88652, + "md5ext": "bb243badd1201b2607bf2513df10cd97.wav" + }, + { + "assetId": "079067d7909f791b29f8be1c00fc2131", + "name": "Drum Satellite", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 88192, + "md5ext": "079067d7909f791b29f8be1c00fc2131.wav" + }, + { + "assetId": "9cd340d9d568b1479f731e69e103b3ce", + "name": "Kick Back", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 44705, + "md5ext": "9cd340d9d568b1479f731e69e103b3ce.wav" + }, + { + "assetId": "fb56022366d21b299cbc3fd5e16000c2", + "name": "Drum Funky", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 44705, + "md5ext": "fb56022366d21b299cbc3fd5e16000c2.wav" + } + ], + "blocks": {} }, { "name": "Squirrel", - "md5": "b86efb7f23387300cf9037a61f328ab9.png", - "type": "sprite", "tags": [ "animals" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Squirrel", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "squirrel", - "baseLayerID": -1, - "baseLayerMD5": "b86efb7f23387300cf9037a61f328ab9.png", - "bitmapResolution": 2, - "rotationCenterX": 158, - "rotationCenterY": 146 - } - ], - "currentCostumeIndex": 0, - "scratchX": 52, - "scratchY": -28, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b86efb7f23387300cf9037a61f328ab9", + "name": "squirrel", + "bitmapResolution": 2, + "md5ext": "b86efb7f23387300cf9037a61f328ab9.png", + "dataFormat": "png", + "rotationCenterX": 158, + "rotationCenterY": 146 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Star", - "md5": "e929c1274c379b6b6fed12e6dec63368.svg", - "type": "sprite", "tags": [ "shapes", "space" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Star", - "sounds": [ - { - "soundName": "collect", - "soundID": -1, - "md5": "32514c51e03db680e9c63857b840ae78.wav", - "sampleCount": 13320, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "star", - "baseLayerID": -1, - "baseLayerMD5": "e929c1274c379b6b6fed12e6dec63368.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": 55, - "scratchY": 44, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "551629f2a64c1f3703e57aaa133effa6", + "name": "star", + "bitmapResolution": 1, + "md5ext": "551629f2a64c1f3703e57aaa133effa6.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "32514c51e03db680e9c63857b840ae78", + "name": "collect", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 14225, + "md5ext": "32514c51e03db680e9c63857b840ae78.wav" + } + ], + "blocks": {} }, { "name": "Starfish", - "md5": "3d1101bbc24ae292a36356af325f660c.svg", - "type": "sprite", "tags": [ "animals", "echinodermata", @@ -14285,181 +12275,144 @@ "sea", "ocean" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Starfish", - "sounds": [ - { - "soundName": "collect", - "soundID": -1, - "md5": "32514c51e03db680e9c63857b840ae78.wav", - "sampleCount": 13320, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "starfish-a", - "baseLayerID": -1, - "baseLayerMD5": "3d1101bbc24ae292a36356af325f660c.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - }, - { - "costumeName": "starfish-b ", - "baseLayerID": -1, - "baseLayerMD5": "ad8007f4e63693984d4adc466ffa3ad2.svg", - "bitmapResolution": 1, - "rotationCenterX": 53, - "rotationCenterY": 60 - } - ], - "currentCostumeIndex": 0, - "scratchX": -32, - "scratchY": 5, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "69dca6e42d45d3fef89f81de40b11bef", + "name": "starfish-a", + "bitmapResolution": 1, + "md5ext": "69dca6e42d45d3fef89f81de40b11bef.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + }, + { + "assetId": "be2ca55a5688670302e7c3f79d5040d1", + "name": "starfish-b ", + "bitmapResolution": 1, + "md5ext": "be2ca55a5688670302e7c3f79d5040d1.svg", + "dataFormat": "svg", + "rotationCenterX": 53, + "rotationCenterY": 60 + } + ], + "sounds": [ + { + "assetId": "32514c51e03db680e9c63857b840ae78", + "name": "collect", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 14225, + "md5ext": "32514c51e03db680e9c63857b840ae78.wav" + } + ], + "blocks": {} }, { "name": "Stop", - "md5": "5b9e3e8edffb0bd4914113609eec5e04.svg", - "type": "sprite", "tags": [ "shapes", "things" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Stop", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "stop", - "baseLayerID": -1, - "baseLayerMD5": "5b9e3e8edffb0bd4914113609eec5e04.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 25 - } - ], - "currentCostumeIndex": 0, - "scratchX": -29, - "scratchY": -29, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "1e2c3987e4cdb1f317b1773662719b13", + "name": "stop", + "bitmapResolution": 1, + "md5ext": "1e2c3987e4cdb1f317b1773662719b13.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 25 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Strawberry", - "md5": "b4cff4b414b5f7fbf25c7c45abfb6c62.svg", - "type": "sprite", "tags": [ "food", "fruit", "alex eben meyer" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Strawberry", - "sounds": [ - { - "soundName": "chomp", - "soundID": -1, - "md5": "0b1e3033140d094563248e61de4039e5.wav", - "sampleCount": 2912, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "strawberry-a", - "baseLayerID": -1, - "baseLayerMD5": "b4cff4b414b5f7fbf25c7c45abfb6c62.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 47 - }, - { - "costumeName": "strawberry-b", - "baseLayerID": -1, - "baseLayerMD5": "ebb8720dc679772e3dcb1b49e0503aa4.svg", - "bitmapResolution": 1, - "rotationCenterX": 43, - "rotationCenterY": 47 - }, - { - "costumeName": "strawberry-c", - "baseLayerID": -1, - "baseLayerMD5": "278dc229a71e2fbff475908ca5c2483e.svg", - "bitmapResolution": 1, - "rotationCenterX": 43, - "rotationCenterY": 47 - }, - { - "costumeName": "strawberry-d", - "baseLayerID": -1, - "baseLayerMD5": "68a023e80cb9eff2350374361c034f08.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 47 - }, - { - "costumeName": "strawberry-e", - "baseLayerID": -1, - "baseLayerMD5": "9fef0cd91ba59163d74f4464b02824b8.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 36 - } - ], - "currentCostumeIndex": 0, - "scratchX": 138, - "scratchY": 91, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2fa57942dc7ded7eddc4d41554768d67", + "name": "strawberry-a", + "bitmapResolution": 1, + "md5ext": "2fa57942dc7ded7eddc4d41554768d67.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 47 + }, + { + "assetId": "662279c12965d2913a060a55aebec496", + "name": "strawberry-b", + "bitmapResolution": 1, + "md5ext": "662279c12965d2913a060a55aebec496.svg", + "dataFormat": "svg", + "rotationCenterX": 43, + "rotationCenterY": 47 + }, + { + "assetId": "10ed1486ff4bab3eebb3b8ae55d81ccd", + "name": "strawberry-c", + "bitmapResolution": 1, + "md5ext": "10ed1486ff4bab3eebb3b8ae55d81ccd.svg", + "dataFormat": "svg", + "rotationCenterX": 43, + "rotationCenterY": 47 + }, + { + "assetId": "aa4eae20c750900e4f63e6ede4083d81", + "name": "strawberry-d", + "bitmapResolution": 1, + "md5ext": "aa4eae20c750900e4f63e6ede4083d81.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 47 + }, + { + "assetId": "f5008785e74590689afca4b578d108a4", + "name": "strawberry-e", + "bitmapResolution": 1, + "md5ext": "f5008785e74590689afca4b578d108a4.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 36 + } + ], + "sounds": [ + { + "assetId": "0b1e3033140d094563248e61de4039e5", + "name": "chomp", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 11648, + "md5ext": "0b1e3033140d094563248e61de4039e5.wav" + } + ], + "blocks": {} }, { "name": "Sun", - "md5": "14b0508da0dc30e83b2bede13c1be1e9.svg", - "type": "sprite", "tags": [ "space", "star", @@ -14468,923 +12421,956 @@ "fusion", "nuclear" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Sun", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "sun", - "baseLayerID": -1, - "baseLayerMD5": "14b0508da0dc30e83b2bede13c1be1e9.svg", - "bitmapResolution": 1, - "rotationCenterX": 54, - "rotationCenterY": 54 - } - ], - "currentCostumeIndex": 0, - "scratchX": -3, - "scratchY": -42, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "406808d86aff20a15d592b308e166a32", + "name": "sun", + "bitmapResolution": 1, + "md5ext": "406808d86aff20a15d592b308e166a32.svg", + "dataFormat": "svg", + "rotationCenterX": 54, + "rotationCenterY": 54 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Sunglasses1", - "md5": "424393e8705aeadcfecb8559ce4dcea2.svg", - "type": "sprite", "tags": [ "fashion", "cool" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Sunglasses1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "sunglasses-a", - "baseLayerID": -1, - "baseLayerMD5": "424393e8705aeadcfecb8559ce4dcea2.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 14 - }, - { - "costumeName": "sunglasses-b", - "baseLayerID": -1, - "baseLayerMD5": "3185d2295bbf2c5ebd0688c9e4f13076.svg", - "bitmapResolution": 1, - "rotationCenterX": 29, - "rotationCenterY": 10 - } - ], - "currentCostumeIndex": 0, - "scratchX": -36, - "scratchY": 0, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c95a05c3bed665027d267d93454c428a", + "name": "sunglasses-a", + "bitmapResolution": 1, + "md5ext": "c95a05c3bed665027d267d93454c428a.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 14 + }, + { + "assetId": "dc568ae1f8b9b6544f0634ef975a7098", + "name": "sunglasses-b", + "bitmapResolution": 1, + "md5ext": "dc568ae1f8b9b6544f0634ef975a7098.svg", + "dataFormat": "svg", + "rotationCenterX": 29, + "rotationCenterY": 10 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Taco", - "md5": "bc78fb90ed373d56c11d5fafa4203ccd.svg", - "type": "sprite", "tags": [ "food", "designerd" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Taco", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Taco", - "baseLayerID": -1, - "baseLayerMD5": "bc78fb90ed373d56c11d5fafa4203ccd.svg", - "bitmapResolution": 1, - "rotationCenterX": 78, - "rotationCenterY": 48 - }, - { - "costumeName": "Taco-wizard", - "baseLayerID": -1, - "baseLayerMD5": "5e9e65db20d403b590578ed44b1a3792.svg", - "bitmapResolution": 1, - "rotationCenterX": 125, - "rotationCenterY": 82 - } - ], - "currentCostumeIndex": 0, - "scratchX": 0, - "scratchY": 0, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "383ea1ef802bc2706670536cfa8271b7", + "name": "Taco", + "bitmapResolution": 1, + "md5ext": "383ea1ef802bc2706670536cfa8271b7.svg", + "dataFormat": "svg", + "rotationCenterX": 78, + "rotationCenterY": 48 + }, + { + "assetId": "c97113d17afeaac9f461ea0ec257ef26", + "name": "Taco-wizard", + "bitmapResolution": 1, + "md5ext": "c97113d17afeaac9f461ea0ec257ef26.svg", + "dataFormat": "svg", + "rotationCenterX": 125, + "rotationCenterY": 82 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Takeout", - "md5": "05c010b2425c4433353ff85d43ed7a1d.svg", - "type": "sprite", "tags": [ "food", "alex eben meyer" ], - "info": [ - 0, - 5, - 1 - ], - "json": { - "objName": "Takeout", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "takeout-a", - "baseLayerID": -1, - "baseLayerMD5": "05c010b2425c4433353ff85d43ed7a1d.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 41 - }, - { - "costumeName": "takeout-b", - "baseLayerID": -1, - "baseLayerMD5": "26c3be261cbb0327eaa1afe0467c80d0.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 42 - }, - { - "costumeName": "takeout-c", - "baseLayerID": -1, - "baseLayerMD5": "801fa349b34531a15d467fef2b940f87.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 53 - }, - { - "costumeName": "takeout-d", - "baseLayerID": -1, - "baseLayerMD5": "24e21e2846b59cdf2c390ebe985b3c74.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 42 - }, - { - "costumeName": "takeout-e", - "baseLayerID": -1, - "baseLayerMD5": "95584a98e22df5ca7370f5c01ebe6d06.svg", - "bitmapResolution": 1, - "rotationCenterX": 41, - "rotationCenterY": 35 - } - ], - "currentCostumeIndex": 0, - "scratchX": -5, - "scratchY": 65, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "40f63eb18230c4defa9051830beffb0f", + "name": "takeout-a", + "bitmapResolution": 1, + "md5ext": "40f63eb18230c4defa9051830beffb0f.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 41 + }, + { + "assetId": "e03cd6e668e0eeddb2da98a095e2f30f", + "name": "takeout-b", + "bitmapResolution": 1, + "md5ext": "e03cd6e668e0eeddb2da98a095e2f30f.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 42 + }, + { + "assetId": "24cc271fd6cf55f25b71e78faf749a98", + "name": "takeout-c", + "bitmapResolution": 1, + "md5ext": "24cc271fd6cf55f25b71e78faf749a98.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 53 + }, + { + "assetId": "2b32d6a4a724c38bfaeb494d30827f19", + "name": "takeout-d", + "bitmapResolution": 1, + "md5ext": "2b32d6a4a724c38bfaeb494d30827f19.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 42 + }, + { + "assetId": "9202a59888545c56c864bacb700c4297", + "name": "takeout-e", + "bitmapResolution": 1, + "md5ext": "9202a59888545c56c864bacb700c4297.svg", + "dataFormat": "svg", + "rotationCenterX": 41, + "rotationCenterY": 35 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} + }, + { + "name": "Tatiana", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5cf65a9f942ca92c93915527ff9db1e6", + "name": "Tatiana-a", + "bitmapResolution": 1, + "md5ext": "5cf65a9f942ca92c93915527ff9db1e6.svg", + "dataFormat": "svg", + "rotationCenterX": 60.66618579359704, + "rotationCenterY": 53.97647634953694 + }, + { + "assetId": "91fb7d056beaf553ccec03d61d72c545", + "name": "Tatiana-b", + "bitmapResolution": 1, + "md5ext": "91fb7d056beaf553ccec03d61d72c545.svg", + "dataFormat": "svg", + "rotationCenterX": 49.74537298932822, + "rotationCenterY": 61.254895800177906 + }, + { + "assetId": "e207fd3f99e1db8c5d66f49446f27e37", + "name": "Tatiana-c", + "bitmapResolution": 1, + "md5ext": "e207fd3f99e1db8c5d66f49446f27e37.svg", + "dataFormat": "svg", + "rotationCenterX": 60.666205767105936, + "rotationCenterY": 53.86536113811712 + }, + { + "assetId": "e2ea6bbc6066574d4836e808a1c5f849", + "name": "Tatiana-d", + "bitmapResolution": 1, + "md5ext": "e2ea6bbc6066574d4836e808a1c5f849.svg", + "dataFormat": "svg", + "rotationCenterX": 49.85653018505951, + "rotationCenterY": 55.72124957487232 + } + ], + "sounds": [ + { + "assetId": "c893b0a9b3e2e0594f1f921a12aa66be", + "name": "Footsteps", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 256348, + "md5ext": "c893b0a9b3e2e0594f1f921a12aa66be.wav" + } + ], + "blocks": {} + }, + { + "name": "Taylor", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ae2eaae0882543dc276c8e7d56ff2e7b", + "name": "Taylor-a", + "bitmapResolution": 1, + "md5ext": "ae2eaae0882543dc276c8e7d56ff2e7b.svg", + "dataFormat": "svg", + "rotationCenterX": 59.066061145351995, + "rotationCenterY": 52.19126 + }, + { + "assetId": "e0082f49fc5d0d83d7fad6124ba82bb1", + "name": "Taylor-b", + "bitmapResolution": 1, + "md5ext": "e0082f49fc5d0d83d7fad6124ba82bb1.svg", + "dataFormat": "svg", + "rotationCenterX": 48.612321639466984, + "rotationCenterY": 53.0163 + }, + { + "assetId": "ae2eaae0882543dc276c8e7d56ff2e7b", + "name": "Taylor-c", + "bitmapResolution": 1, + "md5ext": "ae2eaae0882543dc276c8e7d56ff2e7b.svg", + "dataFormat": "svg", + "rotationCenterX": 59.066061145351995, + "rotationCenterY": 52.19126 + }, + { + "assetId": "a504d785629f2d1ca6b87e80b334d5e8", + "name": "Taylor-d", + "bitmapResolution": 1, + "md5ext": "a504d785629f2d1ca6b87e80b334d5e8.svg", + "dataFormat": "svg", + "rotationCenterX": 48.945654918401004, + "rotationCenterY": 50.35257000000004 + } + ], + "sounds": [ + { + "assetId": "c893b0a9b3e2e0594f1f921a12aa66be", + "name": "Footsteps", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 256348, + "md5ext": "c893b0a9b3e2e0594f1f921a12aa66be.wav" + } + ], + "blocks": {} }, { "name": "Ten80 Dance", - "md5": "f60f99278455c843b7833fb7615428dd.png", - "type": "sprite", "tags": [ "people", "dance" ], - "info": [ - 0, - 13, - 1 - ], - "json": { - "objName": "Ten80 Dance", - "sounds": [ - { - "soundName": "dance celebrate", - "soundID": -1, - "md5": "0edb8fb88af19e6e17d0f8cf64c1d136.wav", - "sampleCount": 176401, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "Ten80 stance", - "baseLayerID": -1, - "baseLayerMD5": "f60f99278455c843b7833fb7615428dd.png", - "bitmapResolution": 2, - "rotationCenterX": 70, - "rotationCenterY": 278 - }, - { - "costumeName": "Ten80 top stand", - "baseLayerID": -1, - "baseLayerMD5": "b2f75ac1cd84615efaea6a7d7a4ee205.png", - "bitmapResolution": 2, - "rotationCenterX": 74, - "rotationCenterY": 274 - }, - { - "costumeName": "Ten80 top R step", - "baseLayerID": -1, - "baseLayerMD5": "580fba92f23d5592200eb5a9079dc38f.png", - "bitmapResolution": 2, - "rotationCenterX": 200, - "rotationCenterY": 270 - }, - { - "costumeName": "Ten80 top L step", - "baseLayerID": -1, - "baseLayerMD5": "e51942bb4651e616549cfce1ad36ff83.png", - "bitmapResolution": 2, - "rotationCenterX": 144, - "rotationCenterY": 266 - }, - { - "costumeName": "Ten80 top freeze", - "baseLayerID": -1, - "baseLayerMD5": "8313a2229d555bbdb8ce92dffed067ad.png", - "bitmapResolution": 2, - "rotationCenterX": 54, - "rotationCenterY": 258 - }, - { - "costumeName": "Ten80 top R cross", - "baseLayerID": -1, - "baseLayerMD5": "e06ac61e96e3a5abf4ca0863816f5d28.png", - "bitmapResolution": 2, - "rotationCenterX": 206, - "rotationCenterY": 252 - }, - { - "costumeName": "Ten80 pop front", - "baseLayerID": -1, - "baseLayerMD5": "86602007ae2952236d47d7fd587a56b6.png", - "bitmapResolution": 2, - "rotationCenterX": 72, - "rotationCenterY": 266 - }, - { - "costumeName": "Ten80 pop down", - "baseLayerID": -1, - "baseLayerMD5": "fea7045c09073700b88fae8d4d257cd1.png", - "bitmapResolution": 2, - "rotationCenterX": 74, - "rotationCenterY": 188 - }, - { - "costumeName": "Ten80 pop left", - "baseLayerID": -1, - "baseLayerMD5": "3c9a7eac1d696ae74ee40c6efa8fa4dd.png", - "bitmapResolution": 2, - "rotationCenterX": 184, - "rotationCenterY": 266 - }, - { - "costumeName": "Ten80 pop right", - "baseLayerID": -1, - "baseLayerMD5": "548bdf23904e409c1fcc0992f44d0b4c.png", - "bitmapResolution": 2, - "rotationCenterX": 78, - "rotationCenterY": 276 - }, - { - "costumeName": "Ten80 pop L arm", - "baseLayerID": -1, - "baseLayerMD5": "ce2141ce97921ddc333bc65ff5bec27d.png", - "bitmapResolution": 2, - "rotationCenterX": 100, - "rotationCenterY": 280 - }, - { - "costumeName": "Ten80 pop stand", - "baseLayerID": -1, - "baseLayerMD5": "377b8521c436f4f39ed2100fa1cb7c2f.png", - "bitmapResolution": 2, - "rotationCenterX": 92, - "rotationCenterY": 280 - }, - { - "costumeName": "Ten80 pop R arm", - "baseLayerID": -1, - "baseLayerMD5": "279bd5499329f98a68cf92c68014e198.png", - "bitmapResolution": 2, - "rotationCenterX": 74, - "rotationCenterY": 278 - } - ], - "currentCostumeIndex": 0, - "scratchX": -86, - "scratchY": 4, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f60f99278455c843b7833fb7615428dd", + "name": "Ten80 stance", + "bitmapResolution": 2, + "md5ext": "f60f99278455c843b7833fb7615428dd.png", + "dataFormat": "png", + "rotationCenterX": 70, + "rotationCenterY": 278 + }, + { + "assetId": "b2f75ac1cd84615efaea6a7d7a4ee205", + "name": "Ten80 top stand", + "bitmapResolution": 2, + "md5ext": "b2f75ac1cd84615efaea6a7d7a4ee205.png", + "dataFormat": "png", + "rotationCenterX": 74, + "rotationCenterY": 274 + }, + { + "assetId": "580fba92f23d5592200eb5a9079dc38f", + "name": "Ten80 top R step", + "bitmapResolution": 2, + "md5ext": "580fba92f23d5592200eb5a9079dc38f.png", + "dataFormat": "png", + "rotationCenterX": 200, + "rotationCenterY": 270 + }, + { + "assetId": "e51942bb4651e616549cfce1ad36ff83", + "name": "Ten80 top L step", + "bitmapResolution": 2, + "md5ext": "e51942bb4651e616549cfce1ad36ff83.png", + "dataFormat": "png", + "rotationCenterX": 144, + "rotationCenterY": 266 + }, + { + "assetId": "8313a2229d555bbdb8ce92dffed067ad", + "name": "Ten80 top freeze", + "bitmapResolution": 2, + "md5ext": "8313a2229d555bbdb8ce92dffed067ad.png", + "dataFormat": "png", + "rotationCenterX": 54, + "rotationCenterY": 258 + }, + { + "assetId": "e06ac61e96e3a5abf4ca0863816f5d28", + "name": "Ten80 top R cross", + "bitmapResolution": 2, + "md5ext": "e06ac61e96e3a5abf4ca0863816f5d28.png", + "dataFormat": "png", + "rotationCenterX": 206, + "rotationCenterY": 252 + }, + { + "assetId": "86602007ae2952236d47d7fd587a56b6", + "name": "Ten80 pop front", + "bitmapResolution": 2, + "md5ext": "86602007ae2952236d47d7fd587a56b6.png", + "dataFormat": "png", + "rotationCenterX": 72, + "rotationCenterY": 266 + }, + { + "assetId": "fea7045c09073700b88fae8d4d257cd1", + "name": "Ten80 pop down", + "bitmapResolution": 2, + "md5ext": "fea7045c09073700b88fae8d4d257cd1.png", + "dataFormat": "png", + "rotationCenterX": 74, + "rotationCenterY": 188 + }, + { + "assetId": "3c9a7eac1d696ae74ee40c6efa8fa4dd", + "name": "Ten80 pop left", + "bitmapResolution": 2, + "md5ext": "3c9a7eac1d696ae74ee40c6efa8fa4dd.png", + "dataFormat": "png", + "rotationCenterX": 184, + "rotationCenterY": 266 + }, + { + "assetId": "548bdf23904e409c1fcc0992f44d0b4c", + "name": "Ten80 pop right", + "bitmapResolution": 2, + "md5ext": "548bdf23904e409c1fcc0992f44d0b4c.png", + "dataFormat": "png", + "rotationCenterX": 78, + "rotationCenterY": 276 + }, + { + "assetId": "ce2141ce97921ddc333bc65ff5bec27d", + "name": "Ten80 pop L arm", + "bitmapResolution": 2, + "md5ext": "ce2141ce97921ddc333bc65ff5bec27d.png", + "dataFormat": "png", + "rotationCenterX": 100, + "rotationCenterY": 280 + }, + { + "assetId": "377b8521c436f4f39ed2100fa1cb7c2f", + "name": "Ten80 pop stand", + "bitmapResolution": 2, + "md5ext": "377b8521c436f4f39ed2100fa1cb7c2f.png", + "dataFormat": "png", + "rotationCenterX": 92, + "rotationCenterY": 280 + }, + { + "assetId": "279bd5499329f98a68cf92c68014e198", + "name": "Ten80 pop R arm", + "bitmapResolution": 2, + "md5ext": "279bd5499329f98a68cf92c68014e198.png", + "dataFormat": "png", + "rotationCenterX": 74, + "rotationCenterY": 278 + } + ], + "sounds": [ + { + "assetId": "0edb8fb88af19e6e17d0f8cf64c1d136", + "name": "dance celebrate", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 176785, + "md5ext": "0edb8fb88af19e6e17d0f8cf64c1d136.wav" + } + ], + "blocks": {} }, { "name": "Tennis Ball", - "md5": "34fa36004be0340ec845ba6bbeb5e5d5.png", - "type": "sprite", "tags": [ "ball", "sports" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Tennis Ball", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "tennisball", - "baseLayerID": -1, - "baseLayerMD5": "34fa36004be0340ec845ba6bbeb5e5d5.png", - "bitmapResolution": 2, - "rotationCenterX": 30, - "rotationCenterY": 30 - } - ], - "currentCostumeIndex": 0, - "scratchX": 39, - "scratchY": -20, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "34fa36004be0340ec845ba6bbeb5e5d5", + "name": "tennisball", + "bitmapResolution": 2, + "md5ext": "34fa36004be0340ec845ba6bbeb5e5d5.png", + "dataFormat": "png", + "rotationCenterX": 30, + "rotationCenterY": 30 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Tera", - "md5": "b54a4a9087435863ab6f6c908f1cac99.svg", - "type": "sprite", "tags": [ "fantasy", "drawing" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Tera", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "tera-a", - "baseLayerID": -1, - "baseLayerMD5": "b54a4a9087435863ab6f6c908f1cac99.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 63 - }, - { - "costumeName": "tera-b", - "baseLayerID": -1, - "baseLayerMD5": "1e6b3a29351cda80d1a70a3cc0e499f2.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 64 - }, - { - "costumeName": "tera-c", - "baseLayerID": -1, - "baseLayerMD5": "7edf116cbb7111292361431521ae699e.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 63 - }, - { - "costumeName": "tera-d", - "baseLayerID": -1, - "baseLayerMD5": "7c3c9c8b5f4ac77de2036175712a777a.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 63 - } - ], - "currentCostumeIndex": 0, - "scratchX": 54, - "scratchY": -17, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "18f9a11ecdbd3ad8719beb176c484d41", + "name": "tera-a", + "bitmapResolution": 1, + "md5ext": "18f9a11ecdbd3ad8719beb176c484d41.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 63 + }, + { + "assetId": "365d4de6c99d71f1370f7c5e636728af", + "name": "tera-b", + "bitmapResolution": 1, + "md5ext": "365d4de6c99d71f1370f7c5e636728af.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 64 + }, + { + "assetId": "2daca5f43efc2d29fb089879448142e9", + "name": "tera-c", + "bitmapResolution": 1, + "md5ext": "2daca5f43efc2d29fb089879448142e9.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 63 + }, + { + "assetId": "5456a723f3b35eaa946b974a59888793", + "name": "tera-d", + "bitmapResolution": 1, + "md5ext": "5456a723f3b35eaa946b974a59888793.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 63 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Toucan", - "md5": "6c8798e606abd728b112aecedb5dc249.svg", - "type": "sprite", "tags": [ "animals", "bird", "robert hunter" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Toucan", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "toucan-a", - "baseLayerID": -1, - "baseLayerMD5": "6c8798e606abd728b112aecedb5dc249.svg", - "bitmapResolution": 1, - "rotationCenterX": 80, - "rotationCenterY": 63 - }, - { - "costumeName": "toucan-b", - "baseLayerID": -1, - "baseLayerMD5": "a3e12be9efa0e7aa83778f6054c9c541.svg", - "bitmapResolution": 1, - "rotationCenterX": 80, - "rotationCenterY": 63 - }, - { - "costumeName": "toucan-c", - "baseLayerID": -1, - "baseLayerMD5": "56522b58a9959fd6152060346129f7cb.svg", - "bitmapResolution": 1, - "rotationCenterX": 80, - "rotationCenterY": 63 - } - ], - "currentCostumeIndex": 0, - "scratchX": 111, - "scratchY": -94, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9eef2e49b3bbf371603ae783cd82db3c", + "name": "toucan-a", + "bitmapResolution": 1, + "md5ext": "9eef2e49b3bbf371603ae783cd82db3c.svg", + "dataFormat": "svg", + "rotationCenterX": 80, + "rotationCenterY": 63 + }, + { + "assetId": "72952d831d0b67c9d056b44a4bc3d0ae", + "name": "toucan-b", + "bitmapResolution": 1, + "md5ext": "72952d831d0b67c9d056b44a4bc3d0ae.svg", + "dataFormat": "svg", + "rotationCenterX": 80, + "rotationCenterY": 63 + }, + { + "assetId": "b6345d7386021ee85bb17f8aa4950eed", + "name": "toucan-c", + "bitmapResolution": 1, + "md5ext": "b6345d7386021ee85bb17f8aa4950eed.svg", + "dataFormat": "svg", + "rotationCenterX": 80, + "rotationCenterY": 63 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Trampoline", - "md5": "20b16bcb61396df304cad5e8886ceb46.png", - "type": "sprite", "tags": [ "sports" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Trampoline", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "trampoline", - "baseLayerID": -1, - "baseLayerMD5": "20b16bcb61396df304cad5e8886ceb46.png", - "bitmapResolution": 1, - "rotationCenterX": 100, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": 20, - "scratchY": -40, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "8fa3c6fcff2f25f5fe7842d68dcfe5cf", + "name": "trampoline", + "bitmapResolution": 2, + "md5ext": "8fa3c6fcff2f25f5fe7842d68dcfe5cf.png", + "dataFormat": "png", + "rotationCenterX": 200, + "rotationCenterY": 82 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Tree1", - "md5": "8c40e2662c55d17bc384f47165ac43c1.svg", - "type": "sprite", "tags": [ "plants", "wood", "forest" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Tree1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "tree1", - "baseLayerID": -1, - "baseLayerMD5": "8c40e2662c55d17bc384f47165ac43c1.svg", - "bitmapResolution": 1, - "rotationCenterX": 77, - "rotationCenterY": 126 - } - ], - "currentCostumeIndex": 0, - "scratchX": 91, - "scratchY": 18, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d04b15886635101db8220a4361c0c88d", + "name": "tree1", + "bitmapResolution": 1, + "md5ext": "d04b15886635101db8220a4361c0c88d.svg", + "dataFormat": "svg", + "rotationCenterX": 77, + "rotationCenterY": 126 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Trees", - "md5": "866ed2c2971bb04157e14e935ac8521c.svg", - "type": "sprite", "tags": [ "plants", "wood", "forest" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Trees", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "trees-a", - "baseLayerID": -1, - "baseLayerMD5": "866ed2c2971bb04157e14e935ac8521c.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 94 - }, - { - "costumeName": "trees-b", - "baseLayerID": -1, - "baseLayerMD5": "f1393dde1bb0fc512577995b27616d86.svg", - "bitmapResolution": 1, - "rotationCenterX": 36, - "rotationCenterY": 87 - } - ], - "currentCostumeIndex": 0, - "scratchX": 26, - "scratchY": -5, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "551b3fae8eab06b49013f54009a7767a", + "name": "trees-a", + "bitmapResolution": 1, + "md5ext": "551b3fae8eab06b49013f54009a7767a.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 94 + }, + { + "assetId": "04758bd432a8b1cab527bddf14432147", + "name": "trees-b", + "bitmapResolution": 1, + "md5ext": "04758bd432a8b1cab527bddf14432147.svg", + "dataFormat": "svg", + "rotationCenterX": 36, + "rotationCenterY": 87 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} + }, + { + "name": "Trisha", + "tags": [ + "people", + "person", + "boy", + "girl", + "nonbinary", + "non-binary", + "kid", + "character" + ], + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "55d31103bc86447c6a727b4f0664a5ea", + "name": "Trisha-a", + "bitmapResolution": 1, + "md5ext": "55d31103bc86447c6a727b4f0664a5ea.svg", + "dataFormat": "svg", + "rotationCenterX": 81.34455278988648, + "rotationCenterY": 57.02459255690913 + }, + { + "assetId": "c31dc8487a841f644889784ff437e2c5", + "name": "Trisha-b", + "bitmapResolution": 1, + "md5ext": "c31dc8487a841f644889784ff437e2c5.svg", + "dataFormat": "svg", + "rotationCenterX": 63.260135124357646, + "rotationCenterY": 60.86251166255646 + }, + { + "assetId": "55d31103bc86447c6a727b4f0664a5ea", + "name": "Trisha-c", + "bitmapResolution": 1, + "md5ext": "55d31103bc86447c6a727b4f0664a5ea.svg", + "dataFormat": "svg", + "rotationCenterX": 81.34455278988648, + "rotationCenterY": 57.02459255690913 + }, + { + "assetId": "2d06023ec09ec312ab49055530511134", + "name": "Trisha-d", + "bitmapResolution": 1, + "md5ext": "2d06023ec09ec312ab49055530511134.svg", + "dataFormat": "svg", + "rotationCenterX": 63.275047131412066, + "rotationCenterY": 55.525379847189015 + } + ], + "sounds": [ + { + "assetId": "c893b0a9b3e2e0594f1f921a12aa66be", + "name": "Footsteps", + "dataFormat": "wav", + "format": "", + "rate": 48000, + "sampleCount": 256348, + "md5ext": "c893b0a9b3e2e0594f1f921a12aa66be.wav" + } + ], + "blocks": {} }, { "name": "Truck", - "md5": "51404247db5cdbc082336dfa4c03d675.svg", - "type": "sprite", "tags": [ "truck", "city", "vehicle", "car" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Truck", - "sounds": [ - { - "soundName": "toy honk", - "soundID": -1, - "md5": "67aadcd28620ecdcdee2ad8eeebefa20.wav", - "sampleCount": 10726, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "Truck-a", - "baseLayerID": -1, - "baseLayerMD5": "51404247db5cdbc082336dfa4c03d675.svg", - "bitmapResolution": 1, - "rotationCenterX": 174, - "rotationCenterY": 49 - }, - { - "costumeName": "Truck-b", - "baseLayerID": -1, - "baseLayerMD5": "1887b8233d1b0728f715a3985f0e01b6.svg", - "bitmapResolution": 1, - "rotationCenterX": 174, - "rotationCenterY": 58 - }, - { - "costumeName": "Truck-c", - "baseLayerID": -1, - "baseLayerMD5": "e45bc3f87d9f603e588abe14b63b8e90.svg", - "bitmapResolution": 1, - "rotationCenterX": 174, - "rotationCenterY": 58 - } - ], - "currentCostumeIndex": 0, - "scratchX": -74, - "scratchY": -46, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "aaa05abc5aa182a0d7bfdc6db0f3207a", + "name": "Truck-a", + "bitmapResolution": 1, + "md5ext": "aaa05abc5aa182a0d7bfdc6db0f3207a.svg", + "dataFormat": "svg", + "rotationCenterX": 173.6413034351145, + "rotationCenterY": 48.359999999999985 + }, + { + "assetId": "63b00424bdabc3459e5bc554c6c21e06", + "name": "Truck-b", + "bitmapResolution": 1, + "md5ext": "63b00424bdabc3459e5bc554c6c21e06.svg", + "dataFormat": "svg", + "rotationCenterX": 173.6413034351145, + "rotationCenterY": 58.14 + }, + { + "assetId": "ce077e6db3573062017f94c2e4a8caea", + "name": "Truck-c", + "bitmapResolution": 1, + "md5ext": "ce077e6db3573062017f94c2e4a8caea.svg", + "dataFormat": "svg", + "rotationCenterX": 173.67363114754104, + "rotationCenterY": 57.74000000000001 + } + ], + "sounds": [ + { + "assetId": "67aadcd28620ecdcdee2ad8eeebefa20", + "name": "toy honk", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 11177, + "md5ext": "67aadcd28620ecdcdee2ad8eeebefa20.wav" + } + ], + "blocks": {} }, { "name": "Trumpet", - "md5": "36a48cc311fd28b4517e15d44b11587c.svg", - "type": "sprite", "tags": [ "music", "andrew rae" ], - "info": [ - 0, - 2, - 8 - ], - "json": { - "objName": "Trumpet", - "sounds": [ - { - "soundName": "C Trumpet", - "soundID": -1, - "md5": "8970afcdc4e47bb54959a81fe27522bd.wav", - "sampleCount": 13118, - "rate": 22050, - "format": "" - }, - { - "soundName": "D Trumpet", - "soundID": -1, - "md5": "0b1345b8fe2ba3076fedb4f3ae48748a.wav", - "sampleCount": 12702, - "rate": 22050, - "format": "" - }, - { - "soundName": "E Trumpet", - "soundID": -1, - "md5": "494295a92314cadb220945a6711c568c.wav", - "sampleCount": 8680, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "F Trumpet", - "soundID": -1, - "md5": "5fa3108b119ca266029b4caa340a7cd0.wav", - "sampleCount": 12766, - "rate": 22050, - "format": "" - }, - { - "soundName": "G Trumpet", - "soundID": -1, - "md5": "e84afda25975f14b364118591538ccf4.wav", - "sampleCount": 14640, - "rate": 22050, - "format": "" - }, - { - "soundName": "A Trumpet", - "soundID": -1, - "md5": "d2dd6b4372ca17411965dc92d52b2172.wav", - "sampleCount": 13911, - "rate": 22050, - "format": "" - }, - { - "soundName": "B Trumpet", - "soundID": -1, - "md5": "cad2bc57729942ed9b605145fc9ea65d.wav", - "sampleCount": 14704, - "rate": 22050, - "format": "" - }, - { - "soundName": "C2 Trumpet", - "soundID": -1, - "md5": "df08249ed5446cc5e10b7ac62faac89b.wav", - "sampleCount": 15849, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "trumpet-a", - "baseLayerID": -1, - "baseLayerMD5": "36a48cc311fd28b4517e15d44b11587c.svg", - "bitmapResolution": 1, - "rotationCenterX": 57, - "rotationCenterY": 38 - }, - { - "costumeName": "trumpet-b", - "baseLayerID": -1, - "baseLayerMD5": "c04cdfd5f05ff2817b6ab78027ef5d22.svg", - "bitmapResolution": 1, - "rotationCenterX": 55, - "rotationCenterY": 37 - } - ], - "currentCostumeIndex": 0, - "scratchX": 7, - "scratchY": 46, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "47a1ec267505be96b678df30b92ec534", + "name": "trumpet-a", + "bitmapResolution": 1, + "md5ext": "47a1ec267505be96b678df30b92ec534.svg", + "dataFormat": "svg", + "rotationCenterX": 57, + "rotationCenterY": 38 + }, + { + "assetId": "9a5c211622d6d2fed600c1809fccd21d", + "name": "trumpet-b", + "bitmapResolution": 1, + "md5ext": "9a5c211622d6d2fed600c1809fccd21d.svg", + "dataFormat": "svg", + "rotationCenterX": 55, + "rotationCenterY": 37 + } + ], + "sounds": [ + { + "assetId": "8970afcdc4e47bb54959a81fe27522bd", + "name": "C Trumpet", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 26236, + "md5ext": "8970afcdc4e47bb54959a81fe27522bd.wav" + }, + { + "assetId": "0b1345b8fe2ba3076fedb4f3ae48748a", + "name": "D Trumpet", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 25404, + "md5ext": "0b1345b8fe2ba3076fedb4f3ae48748a.wav" + }, + { + "assetId": "494295a92314cadb220945a6711c568c", + "name": "E Trumpet", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 9145, + "md5ext": "494295a92314cadb220945a6711c568c.wav" + }, + { + "assetId": "5fa3108b119ca266029b4caa340a7cd0", + "name": "F Trumpet", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 25532, + "md5ext": "5fa3108b119ca266029b4caa340a7cd0.wav" + }, + { + "assetId": "e84afda25975f14b364118591538ccf4", + "name": "G Trumpet", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 29280, + "md5ext": "e84afda25975f14b364118591538ccf4.wav" + }, + { + "assetId": "d2dd6b4372ca17411965dc92d52b2172", + "name": "A Trumpet", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 27822, + "md5ext": "d2dd6b4372ca17411965dc92d52b2172.wav" + }, + { + "assetId": "cad2bc57729942ed9b605145fc9ea65d", + "name": "B Trumpet", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 29408, + "md5ext": "cad2bc57729942ed9b605145fc9ea65d.wav" + }, + { + "assetId": "df08249ed5446cc5e10b7ac62faac89b", + "name": "C2 Trumpet", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 31698, + "md5ext": "df08249ed5446cc5e10b7ac62faac89b.wav" + } + ], + "blocks": {} }, { "name": "Unicorn", - "md5": "c491fd1867375aa0160b013788d188e5.svg", - "type": "sprite", "tags": [ "fantasy", "animals", "ipzy" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Unicorn", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "unicorn", - "baseLayerID": -1, - "baseLayerMD5": "c491fd1867375aa0160b013788d188e5.svg", - "bitmapResolution": 1, - "rotationCenterX": 91, - "rotationCenterY": 95 - } - ], - "currentCostumeIndex": 0, - "scratchX": 5, - "scratchY": -72, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "1439d51d9878276362b123c9045af6b5", + "name": "unicorn", + "bitmapResolution": 1, + "md5ext": "1439d51d9878276362b123c9045af6b5.svg", + "dataFormat": "svg", + "rotationCenterX": 91, + "rotationCenterY": 95 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Unicorn 2", - "md5": "a04def38351e7fd805226345cac4fbfe.svg", - "type": "sprite", "tags": [ "fantasy", "animals", @@ -15392,228 +13378,177 @@ "horn", "rainbow" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Unicorn 2", - "sounds": [ - { - "soundName": "magic spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "unicorn 2", - "baseLayerID": -1, - "baseLayerMD5": "a04def38351e7fd805226345cac4fbfe.svg", - "bitmapResolution": 1, - "rotationCenterX": 75, - "rotationCenterY": 75 - } - ], - "currentCostumeIndex": 0, - "scratchX": -96, - "scratchY": -43, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "dcbeac8e856c9ddd6c457376be6573c8", + "name": "unicorn 2", + "bitmapResolution": 1, + "md5ext": "dcbeac8e856c9ddd6c457376be6573c8.svg", + "dataFormat": "svg", + "rotationCenterX": 75, + "rotationCenterY": 75 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "magic spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Unicorn Running", - "md5": "d938a2bfbac8f3caf713d189fd993af5.svg", - "type": "sprite", "tags": [ "fantasy", "animals", "ipzy", "walking" ], - "info": [ - 0, - 6, - 1 - ], - "json": { - "objName": "Unicorn Running", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "unicorn running-a", - "baseLayerID": -1, - "baseLayerMD5": "d938a2bfbac8f3caf713d189fd993af5.svg", - "bitmapResolution": 1, - "rotationCenterX": 118, - "rotationCenterY": 90 - }, - { - "costumeName": "unicorn running-b", - "baseLayerID": -1, - "baseLayerMD5": "663618fcc0484879de6ad485b288c444.svg", - "bitmapResolution": 1, - "rotationCenterX": 120, - "rotationCenterY": 89 - }, - { - "costumeName": "unicorn running-c", - "baseLayerID": -1, - "baseLayerMD5": "ceb2f88fe182bc61af4e3864f8b46bba.svg", - "bitmapResolution": 1, - "rotationCenterX": 121, - "rotationCenterY": 90 - }, - { - "costumeName": "unicorn running-d", - "baseLayerID": -1, - "baseLayerMD5": "dddad08a2d03f406307ec7155f43c51c.svg", - "bitmapResolution": 1, - "rotationCenterX": 120, - "rotationCenterY": 87 - }, - { - "costumeName": "unicorn running-e", - "baseLayerID": -1, - "baseLayerMD5": "cf3a00e72f3fc20d9ad15379fdb7b424.svg", - "bitmapResolution": 1, - "rotationCenterX": 119, - "rotationCenterY": 90 - }, - { - "costumeName": "unicorn running-f", - "baseLayerID": -1, - "baseLayerMD5": "264a70e872af2d3f6b2abad85daf82ae.svg", - "bitmapResolution": 1, - "rotationCenterX": 117, - "rotationCenterY": 86 - } - ], - "currentCostumeIndex": 0, - "scratchX": 78, - "scratchY": -73, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4709966d11b37e8a11d24c800e8b2859", + "name": "unicorn running-a", + "bitmapResolution": 1, + "md5ext": "4709966d11b37e8a11d24c800e8b2859.svg", + "dataFormat": "svg", + "rotationCenterX": 118, + "rotationCenterY": 90 + }, + { + "assetId": "fa5fe4596494a43db8c7957d2254aee3", + "name": "unicorn running-b", + "bitmapResolution": 1, + "md5ext": "fa5fe4596494a43db8c7957d2254aee3.svg", + "dataFormat": "svg", + "rotationCenterX": 120, + "rotationCenterY": 89 + }, + { + "assetId": "f00efa25fc97f2cce2499771d6a5f809", + "name": "unicorn running-c", + "bitmapResolution": 1, + "md5ext": "f00efa25fc97f2cce2499771d6a5f809.svg", + "dataFormat": "svg", + "rotationCenterX": 121, + "rotationCenterY": 90 + }, + { + "assetId": "e111350b8bedefffee0d5e7e2490d446", + "name": "unicorn running-d", + "bitmapResolution": 1, + "md5ext": "e111350b8bedefffee0d5e7e2490d446.svg", + "dataFormat": "svg", + "rotationCenterX": 120, + "rotationCenterY": 87 + }, + { + "assetId": "8feaeec435125227c675dd95f69ff835", + "name": "unicorn running-e", + "bitmapResolution": 1, + "md5ext": "8feaeec435125227c675dd95f69ff835.svg", + "dataFormat": "svg", + "rotationCenterX": 119, + "rotationCenterY": 90 + }, + { + "assetId": "1fb3d038e985c01899881bc5bb373c16", + "name": "unicorn running-f", + "bitmapResolution": 1, + "md5ext": "1fb3d038e985c01899881bc5bb373c16.svg", + "dataFormat": "svg", + "rotationCenterX": 117, + "rotationCenterY": 86 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Wand", - "md5": "1aa56e9ef7043eaf36ecfe8e330271b7.svg", - "type": "sprite", "tags": [ "fantasy", "ipzy", "things" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Wand", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "wand", - "baseLayerID": -1, - "baseLayerMD5": "1aa56e9ef7043eaf36ecfe8e330271b7.svg", - "bitmapResolution": 1, - "rotationCenterX": 12, - "rotationCenterY": 42 - } - ], - "currentCostumeIndex": 0, - "scratchX": -63, - "scratchY": 15, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c021f0c7e3086a11336421dd864b7812", + "name": "wand", + "bitmapResolution": 1, + "md5ext": "c021f0c7e3086a11336421dd864b7812.svg", + "dataFormat": "svg", + "rotationCenterX": 12, + "rotationCenterY": 42 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Wanda", - "md5": "450bc8fbd5ab6bc2e83576aad58cd07c.svg", - "type": "sprite", "tags": [ "people" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Wanda", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "wanda", - "baseLayerID": -1, - "baseLayerMD5": "450bc8fbd5ab6bc2e83576aad58cd07c.svg", - "bitmapResolution": 1, - "rotationCenterX": 49, - "rotationCenterY": 68 - } - ], - "currentCostumeIndex": 0, - "scratchX": -75, - "scratchY": 49, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0b008dabac95126132ab4e0c56d25400", + "name": "wanda", + "bitmapResolution": 1, + "md5ext": "0b008dabac95126132ab4e0c56d25400.svg", + "dataFormat": "svg", + "rotationCenterX": 49, + "rotationCenterY": 68 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Watermelon", - "md5": "8736ecc2524895733534c888cd91fa1f.svg", - "type": "sprite", "tags": [ "food", "fruit", @@ -15622,112 +13557,86 @@ "seedless", "plants" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Watermelon", - "sounds": [ - { - "soundName": "Bite", - "soundID": -1, - "md5": "0039635b1d6853face36581784558454.wav", - "sampleCount": 7672, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "watermelon-a", - "baseLayerID": -1, - "baseLayerMD5": "8736ecc2524895733534c888cd91fa1f.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 27 - }, - { - "costumeName": "watermelon-b", - "baseLayerID": -1, - "baseLayerMD5": "1ed1c8b78eae2ee7422074d7f883031d.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 27 - }, - { - "costumeName": "watermelon-c", - "baseLayerID": -1, - "baseLayerMD5": "677738282686d2dcce35d731c3ddc043.svg", - "bitmapResolution": 1, - "rotationCenterX": 21, - "rotationCenterY": 15 - } - ], - "currentCostumeIndex": 0, - "scratchX": 73, - "scratchY": -47, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "21d1340478e32a942914a7afd12b9f1a", + "name": "watermelon-a", + "bitmapResolution": 1, + "md5ext": "21d1340478e32a942914a7afd12b9f1a.svg", + "dataFormat": "svg", + "rotationCenterX": 40.13434982299805, + "rotationCenterY": 27.860475540161133 + }, + { + "assetId": "1ed1c8b78eae2ee7422074d7f883031d", + "name": "watermelon-b", + "bitmapResolution": 1, + "md5ext": "1ed1c8b78eae2ee7422074d7f883031d.svg", + "dataFormat": "svg", + "rotationCenterX": 23.5, + "rotationCenterY": 28.5 + }, + { + "assetId": "677738282686d2dcce35d731c3ddc043", + "name": "watermelon-c", + "bitmapResolution": 1, + "md5ext": "677738282686d2dcce35d731c3ddc043.svg", + "dataFormat": "svg", + "rotationCenterX": 21.5, + "rotationCenterY": 16 + } + ], + "sounds": [ + { + "assetId": "0039635b1d6853face36581784558454", + "name": "Bite", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 8129, + "md5ext": "0039635b1d6853face36581784558454.wav" + } + ], + "blocks": {} }, { "name": "Winter Hat", - "md5": "62678324450bac2154703e2978e8ab61.svg", - "type": "sprite", "tags": [ "fashion", " clothing", "winter", "hat" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Winter Hat", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Winter Hat", - "baseLayerID": -1, - "baseLayerMD5": "62678324450bac2154703e2978e8ab61.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": 12, - "scratchY": -131, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2672323e34d6dc82fda8fc3b057fa5aa", + "name": "Winter Hat", + "bitmapResolution": 1, + "md5ext": "2672323e34d6dc82fda8fc3b057fa5aa.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Witch", - "md5": "cbc54e15cd62f0c16369587377636099.svg", - "type": "sprite", "tags": [ "fantasy", "people", @@ -15736,72 +13645,61 @@ "emotions", "magic" ], - "info": [ - 0, - 4, - 1 - ], - "json": { - "objName": "Witch", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "witch-a", - "baseLayerID": -1, - "baseLayerMD5": "cbc54e15cd62f0c16369587377636099.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 140 - }, - { - "costumeName": "witch-b", - "baseLayerID": -1, - "baseLayerMD5": "64d2c4c51e6cb6008cd5e93f77e6f591.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 140 - }, - { - "costumeName": "witch-c", - "baseLayerID": -1, - "baseLayerMD5": "00b768c3da5b4ee3efddf05d1eb88de2.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 140 - }, - { - "costumeName": "witch-d", - "baseLayerID": -1, - "baseLayerMD5": "4fe4c0ee34a9028f2c6988b7294a61c1.svg", - "bitmapResolution": 1, - "rotationCenterX": 65, - "rotationCenterY": 140 - } - ], - "currentCostumeIndex": 0, - "scratchX": -47, - "scratchY": 33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "44cbaf358d2d8e66815e447c25a4b72e", + "name": "witch-a", + "bitmapResolution": 1, + "md5ext": "44cbaf358d2d8e66815e447c25a4b72e.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 140 + }, + { + "assetId": "b10fb75f426397e10c878fda19d92009", + "name": "witch-b", + "bitmapResolution": 1, + "md5ext": "b10fb75f426397e10c878fda19d92009.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 140 + }, + { + "assetId": "668c9dc76ba6a07bebabf5aed4623566", + "name": "witch-c", + "bitmapResolution": 1, + "md5ext": "668c9dc76ba6a07bebabf5aed4623566.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 140 + }, + { + "assetId": "a7e48fc790511fbd46b30b1cdcdc98fc", + "name": "witch-d", + "bitmapResolution": 1, + "md5ext": "a7e48fc790511fbd46b30b1cdcdc98fc.svg", + "dataFormat": "svg", + "rotationCenterX": 65, + "rotationCenterY": 140 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Wizard", - "md5": "9632aab80fce1c5bdb58150b29cb0067.svg", - "type": "sprite", "tags": [ "fantasy", "people", @@ -15810,64 +13708,52 @@ "emotions", "magic" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Wizard", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "wizard-a", - "baseLayerID": -1, - "baseLayerMD5": "9632aab80fce1c5bdb58150b29cb0067.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 150 - }, - { - "costumeName": "wizard-b", - "baseLayerID": -1, - "baseLayerMD5": "36c9b8b93ddb2c392b7145862fc4e8d8.svg", - "bitmapResolution": 1, - "rotationCenterX": 79, - "rotationCenterY": 144 - }, - { - "costumeName": "wizard-c", - "baseLayerID": -1, - "baseLayerMD5": "16d4d221a2182278cfa6b0621f455cf6.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 150 - } - ], - "currentCostumeIndex": 0, - "scratchX": -137, - "scratchY": 2, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "91d495085eb4d02a375c42f6318071e7", + "name": "wizard-a", + "bitmapResolution": 1, + "md5ext": "91d495085eb4d02a375c42f6318071e7.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 150 + }, + { + "assetId": "55ba51188af86ca16ef30267e874c1ed", + "name": "wizard-b", + "bitmapResolution": 1, + "md5ext": "55ba51188af86ca16ef30267e874c1ed.svg", + "dataFormat": "svg", + "rotationCenterX": 79, + "rotationCenterY": 144 + }, + { + "assetId": "df943c9894ee4b9df8c5893ce30c2a5f", + "name": "wizard-c", + "bitmapResolution": 1, + "md5ext": "df943c9894ee4b9df8c5893ce30c2a5f.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 150 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Wizard Girl", - "md5": "dd40d3a2565990bcc24d2b36cd446394.svg", - "type": "sprite", "tags": [ "people", "female", @@ -15876,95 +13762,67 @@ "magic", "fantasy" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Wizard Girl", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "wizard girl", - "baseLayerID": -1, - "baseLayerMD5": "dd40d3a2565990bcc24d2b36cd446394.svg", - "bitmapResolution": 1, - "rotationCenterX": 80, - "rotationCenterY": 91 - } - ], - "currentCostumeIndex": 0, - "scratchX": -147, - "scratchY": -71, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4be145d338d921b2d9d6dfd10cda4a6c", + "name": "wizard girl", + "bitmapResolution": 1, + "md5ext": "4be145d338d921b2d9d6dfd10cda4a6c.svg", + "dataFormat": "svg", + "rotationCenterX": 80, + "rotationCenterY": 91 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + } + ], + "blocks": {} }, { "name": "Wizard Hat", - "md5": "2da561a7e5cbfcda613f4750020d4aa5.svg", - "type": "sprite", "tags": [ "fashion", "fantasy", "winter" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Wizard Hat", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Wizard Hat", - "baseLayerID": -1, - "baseLayerMD5": "2da561a7e5cbfcda613f4750020d4aa5.svg", - "bitmapResolution": 1, - "rotationCenterX": 34, - "rotationCenterY": 60 - } - ], - "currentCostumeIndex": 0, - "scratchX": 3, - "scratchY": -34, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "398e447e36465c2521fdb3a6917b0c65", + "name": "Wizard Hat", + "bitmapResolution": 1, + "md5ext": "398e447e36465c2521fdb3a6917b0c65.svg", + "dataFormat": "svg", + "rotationCenterX": 34, + "rotationCenterY": 60 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Wizard-toad", - "md5": "fd5c4cce36e866489febc227e23b21aa.svg", - "type": "sprite", "tags": [ "fantasy", "animals", @@ -15974,4578 +13832,3375 @@ "amphibians", "magic" ], - "info": [ - 0, - 2, - 2 - ], - "json": { - "objName": "Wizard-toad", - "sounds": [ - { - "soundName": "Magic Spell", - "soundID": -1, - "md5": "1cb60ecdb1075c8769cb346d5c2a22c7.wav", - "sampleCount": 43077, - "rate": 22050, - "format": "adpcm" - }, - { - "soundName": "croak", - "soundID": -1, - "md5": "c6ce0aadb89903a43f76fc20ea57633e.wav", - "sampleCount": 6424, - "rate": 22050, - "format": "adpcm" - } - ], - "costumes": [ - { - "costumeName": "wizard-toad-a", - "baseLayerID": -1, - "baseLayerMD5": "fd5c4cce36e866489febc227e23b21aa.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 80 - }, - { - "costumeName": "wizard-toad-b", - "baseLayerID": -1, - "baseLayerMD5": "4c260807d4ac4c0ad39760f1efeef1de.svg", - "bitmapResolution": 1, - "rotationCenterX": 87, - "rotationCenterY": 80 - } - ], - "currentCostumeIndex": 0, - "scratchX": -128, - "scratchY": -85, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ca3bb4d397ecf6cda3edc48340af908b", + "name": "wizard-toad-a", + "bitmapResolution": 1, + "md5ext": "ca3bb4d397ecf6cda3edc48340af908b.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 80 + }, + { + "assetId": "4041d5a2d1869e81268b9b92b49013a3", + "name": "wizard-toad-b", + "bitmapResolution": 1, + "md5ext": "4041d5a2d1869e81268b9b92b49013a3.svg", + "dataFormat": "svg", + "rotationCenterX": 87, + "rotationCenterY": 80 + } + ], + "sounds": [ + { + "assetId": "1cb60ecdb1075c8769cb346d5c2a22c7", + "name": "Magic Spell", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 43689, + "md5ext": "1cb60ecdb1075c8769cb346d5c2a22c7.wav" + }, + { + "assetId": "c6ce0aadb89903a43f76fc20ea57633e", + "name": "croak", + "dataFormat": "wav", + "format": "adpcm", + "rate": 22050, + "sampleCount": 7113, + "md5ext": "c6ce0aadb89903a43f76fc20ea57633e.wav" + } + ], + "blocks": {} }, { "name": "Zebra", - "md5": "f58632e6b34fa8f9b35219e52ed2c864.svg", - "type": "sprite", "tags": [ "animals", "zebra", "savanna", "robert hunter" ], - "info": [ - 0, - 2, - 1 - ], - "json": { - "objName": "Zebra", - "sounds": [ - { - "soundName": "horse gallop", - "soundID": -1, - "md5": "058a34b5fb8b57178b5322d994b6b8c8.wav", - "sampleCount": 38336, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "zebra-a", - "baseLayerID": -1, - "baseLayerMD5": "f58632e6b34fa8f9b35219e52ed2c864.svg", - "bitmapResolution": 1, - "rotationCenterX": 97, - "rotationCenterY": 56 - }, - { - "costumeName": "zebra-b", - "baseLayerID": -1, - "baseLayerMD5": "ea23797598a55938a2d46f2b0a389fd6.svg", - "bitmapResolution": 1, - "rotationCenterX": 96, - "rotationCenterY": 56 - } - ], - "currentCostumeIndex": 0, - "scratchX": 122, - "scratchY": 11, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0e3bc5073305b7079b5e9a8c7b7d7f9b", + "name": "zebra-a", + "bitmapResolution": 1, + "md5ext": "0e3bc5073305b7079b5e9a8c7b7d7f9b.svg", + "dataFormat": "svg", + "rotationCenterX": 97, + "rotationCenterY": 56 + }, + { + "assetId": "f3e322a25b9f79801066056de6f33fb1", + "name": "zebra-b", + "bitmapResolution": 1, + "md5ext": "f3e322a25b9f79801066056de6f33fb1.svg", + "dataFormat": "svg", + "rotationCenterX": 96, + "rotationCenterY": 56 + } + ], + "sounds": [ + { + "assetId": "058a34b5fb8b57178b5322d994b6b8c8", + "name": "horse gallop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 153344, + "md5ext": "058a34b5fb8b57178b5322d994b6b8c8.wav" + } + ], + "blocks": {} }, { "name": "Block-A", - "md5": "602a16930a8050e1298e1a0ae844363e.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-A", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-a", - "baseLayerID": -1, - "baseLayerMD5": "602a16930a8050e1298e1a0ae844363e.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": 36, - "scratchY": -31, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "ef3b01f6fc1ffa1270fbbf057f7ded42", + "name": "Block-a", + "bitmapResolution": 1, + "md5ext": "ef3b01f6fc1ffa1270fbbf057f7ded42.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-B", - "md5": "f8c683cf71660e8ac1f8855599857a25.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-B", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-b", - "baseLayerID": -1, - "baseLayerMD5": "f8c683cf71660e8ac1f8855599857a25.svg", - "bitmapResolution": 1, - "rotationCenterX": 29, - "rotationCenterY": 42 - } - ], - "currentCostumeIndex": 0, - "scratchX": -24, - "scratchY": -45, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "1dc05fbaa37a6b41ffff459d0a776989", + "name": "Block-b", + "bitmapResolution": 1, + "md5ext": "1dc05fbaa37a6b41ffff459d0a776989.svg", + "dataFormat": "svg", + "rotationCenterX": 29, + "rotationCenterY": 42 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-C", - "md5": "f8f4cc686ffc5a4113a99f70b09abd32.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-C", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-c", - "baseLayerID": -1, - "baseLayerMD5": "f8f4cc686ffc5a4113a99f70b09abd32.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 43 - } - ], - "currentCostumeIndex": 0, - "scratchX": 42, - "scratchY": 22, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "43090c4b423c977041542ce12017fda0", + "name": "Block-c", + "bitmapResolution": 1, + "md5ext": "43090c4b423c977041542ce12017fda0.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 43 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-D", - "md5": "aee2d71ef0293b33479bff9423d16b67.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-D", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-d", - "baseLayerID": -1, - "baseLayerMD5": "aee2d71ef0293b33479bff9423d16b67.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": 30, - "scratchY": -39, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "1fb3db31500d6f7da662e825157920fa", + "name": "Block-d", + "bitmapResolution": 1, + "md5ext": "1fb3db31500d6f7da662e825157920fa.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-E", - "md5": "16c6257316ff94cc7539ccdfc24e5fb8.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-E", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-e", - "baseLayerID": -1, - "baseLayerMD5": "16c6257316ff94cc7539ccdfc24e5fb8.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -87, - "scratchY": -22, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "240aacc04444cef3b2ef8cfaf0dae479", + "name": "Block-e", + "bitmapResolution": 1, + "md5ext": "240aacc04444cef3b2ef8cfaf0dae479.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-F", - "md5": "34c090c1f573c569332ead68cb99b595.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-F", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-f", - "baseLayerID": -1, - "baseLayerMD5": "34c090c1f573c569332ead68cb99b595.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": -80, - "scratchY": 21, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d88d750ce848d7dbeeca3f02249350e2", + "name": "Block-f", + "bitmapResolution": 1, + "md5ext": "d88d750ce848d7dbeeca3f02249350e2.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-G", - "md5": "8bb2382627004eb08ff10ea8171cc724.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-G", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-g", - "baseLayerID": -1, - "baseLayerMD5": "8bb2382627004eb08ff10ea8171cc724.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": 3, - "scratchY": 33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "989c76ae7f8c2e42ebeacdda961061ca", + "name": "Block-g", + "bitmapResolution": 1, + "md5ext": "989c76ae7f8c2e42ebeacdda961061ca.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-H", - "md5": "f1578807d4a124fc02b639a8febeaab3.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-H", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-h", - "baseLayerID": -1, - "baseLayerMD5": "f1578807d4a124fc02b639a8febeaab3.svg", - "bitmapResolution": 1, - "rotationCenterX": 27, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": 96, - "scratchY": 42, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "93426b2f313d1bdedff368d94fc989d6", + "name": "Block-h", + "bitmapResolution": 1, + "md5ext": "93426b2f313d1bdedff368d94fc989d6.svg", + "dataFormat": "svg", + "rotationCenterX": 27, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-I", - "md5": "341bc70442886d6fdf959f2a97a63554.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-I", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-i", - "baseLayerID": -1, - "baseLayerMD5": "341bc70442886d6fdf959f2a97a63554.svg", - "bitmapResolution": 1, - "rotationCenterX": 19, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": 23, - "scratchY": 25, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f911b18605f59c75adf4d83e07811fd8", + "name": "Block-i", + "bitmapResolution": 1, + "md5ext": "f911b18605f59c75adf4d83e07811fd8.svg", + "dataFormat": "svg", + "rotationCenterX": 19, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-J", - "md5": "4b420cce964beedf2c1dc43faa59fdec.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-J", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-j", - "baseLayerID": -1, - "baseLayerMD5": "4b420cce964beedf2c1dc43faa59fdec.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": -26, - "scratchY": 39, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "8580c990ac918577550165447f870542", + "name": "Block-j", + "bitmapResolution": 1, + "md5ext": "8580c990ac918577550165447f870542.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-K", - "md5": "19601cc33449813aa93a47c63167e5c1.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-K", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-k", - "baseLayerID": -1, - "baseLayerMD5": "19601cc33449813aa93a47c63167e5c1.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": -10, - "scratchY": -31, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d93a9fd4bfb5bc1e9790945fa756b748", + "name": "Block-k", + "bitmapResolution": 1, + "md5ext": "d93a9fd4bfb5bc1e9790945fa756b748.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-L", - "md5": "87358e3c9b9f5be4376253ce08d0192d.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-L", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-l", - "baseLayerID": -1, - "baseLayerMD5": "87358e3c9b9f5be4376253ce08d0192d.svg", - "bitmapResolution": 1, - "rotationCenterX": 26, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": -40, - "scratchY": -33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "579c90cbaf847e9adf4faf37f340b32d", + "name": "Block-l", + "bitmapResolution": 1, + "md5ext": "579c90cbaf847e9adf4faf37f340b32d.svg", + "dataFormat": "svg", + "rotationCenterX": 26, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-M", - "md5": "7ba0642be1f0080c0d273ea96e29b1e8.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-M", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-m", - "baseLayerID": -1, - "baseLayerMD5": "7ba0642be1f0080c0d273ea96e29b1e8.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 37 - } - ], - "currentCostumeIndex": 0, - "scratchX": -80, - "scratchY": 10, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6c5cf1fd0673f441b04e15e799685831", + "name": "Block-m", + "bitmapResolution": 1, + "md5ext": "6c5cf1fd0673f441b04e15e799685831.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 37 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-N", - "md5": "6c1fbc57821744bd9356ce9a21ed70f7.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-N", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-n", - "baseLayerID": -1, - "baseLayerMD5": "6c1fbc57821744bd9356ce9a21ed70f7.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 37 - } - ], - "currentCostumeIndex": 0, - "scratchX": 66, - "scratchY": 0, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9eba5dd44d65e1d421c40686fecde906", + "name": "Block-n", + "bitmapResolution": 1, + "md5ext": "9eba5dd44d65e1d421c40686fecde906.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 37 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-O", - "md5": "e88638200a73e167d0e266a343019cec.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-O", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-o", - "baseLayerID": -1, - "baseLayerMD5": "e88638200a73e167d0e266a343019cec.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": -82, - "scratchY": -14, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "8bbbde09c13a06015e554ab36fa178c0", + "name": "Block-o", + "bitmapResolution": 1, + "md5ext": "8bbbde09c13a06015e554ab36fa178c0.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-P", - "md5": "ad2fc3a1c6538678915633a11ab6ec73.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-P", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-p", - "baseLayerID": -1, - "baseLayerMD5": "ad2fc3a1c6538678915633a11ab6ec73.svg", - "bitmapResolution": 1, - "rotationCenterX": 18, - "rotationCenterY": 33 - } - ], - "currentCostumeIndex": 0, - "scratchX": 53, - "scratchY": 43, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0f920b99ac49421cf28e55c8d863bdc5", + "name": "Block-p", + "bitmapResolution": 1, + "md5ext": "0f920b99ac49421cf28e55c8d863bdc5.svg", + "dataFormat": "svg", + "rotationCenterX": 18, + "rotationCenterY": 33 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-Q", - "md5": "64da9da8684c74deb567dbdb661d3a52.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-Q", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-q", - "baseLayerID": -1, - "baseLayerMD5": "64da9da8684c74deb567dbdb661d3a52.svg", - "bitmapResolution": 1, - "rotationCenterX": 26, - "rotationCenterY": 33 - } - ], - "currentCostumeIndex": 0, - "scratchX": 52, - "scratchY": 47, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "67f8e80eabaec4883eb9c67c9527004a", + "name": "Block-q", + "bitmapResolution": 1, + "md5ext": "67f8e80eabaec4883eb9c67c9527004a.svg", + "dataFormat": "svg", + "rotationCenterX": 26, + "rotationCenterY": 33 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-R", - "md5": "73e8d46f7475476d8cb4cfcfc75ee50d.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-R", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-r", - "baseLayerID": -1, - "baseLayerMD5": "73e8d46f7475476d8cb4cfcfc75ee50d.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 33 - } - ], - "currentCostumeIndex": 0, - "scratchX": -88, - "scratchY": 14, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9d0432c5575451e251990d89845f8d00", + "name": "Block-r", + "bitmapResolution": 1, + "md5ext": "9d0432c5575451e251990d89845f8d00.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 33 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-S", - "md5": "9feb5593fed51e88dbb3128cfc290d29.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-S", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-s", - "baseLayerID": -1, - "baseLayerMD5": "9feb5593fed51e88dbb3128cfc290d29.svg", - "bitmapResolution": 1, - "rotationCenterX": 13, - "rotationCenterY": 30 - } - ], - "currentCostumeIndex": 0, - "scratchX": -74, - "scratchY": -29, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "83c7486b08e78d099b4e776aaa2783fe", + "name": "Block-s", + "bitmapResolution": 1, + "md5ext": "83c7486b08e78d099b4e776aaa2783fe.svg", + "dataFormat": "svg", + "rotationCenterX": 13, + "rotationCenterY": 30 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-T", - "md5": "d29c1caf5cf195740c38f279e82a77a4.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-T", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-t", - "baseLayerID": -1, - "baseLayerMD5": "d29c1caf5cf195740c38f279e82a77a4.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 33 - } - ], - "currentCostumeIndex": 0, - "scratchX": 41, - "scratchY": 26, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6c1b26611ec0483f601a648f59305aff", + "name": "Block-t", + "bitmapResolution": 1, + "md5ext": "6c1b26611ec0483f601a648f59305aff.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 33 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-U", - "md5": "faef46b7bf589c36300142f6f03c5d32.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-U", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-u", - "baseLayerID": -1, - "baseLayerMD5": "faef46b7bf589c36300142f6f03c5d32.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": 52, - "scratchY": -28, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d02f77994789f528f0aaa7f211690151", + "name": "Block-u", + "bitmapResolution": 1, + "md5ext": "d02f77994789f528f0aaa7f211690151.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-V", - "md5": "65e2f4821ab084827e22920acb61c92b.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-V", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-v", - "baseLayerID": -1, - "baseLayerMD5": "65e2f4821ab084827e22920acb61c92b.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": 73, - "scratchY": -32, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0654cfcb6234406837336e90be7e419c", + "name": "Block-v", + "bitmapResolution": 1, + "md5ext": "0654cfcb6234406837336e90be7e419c.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-W", - "md5": "5ab197b4f70b2f98a3658c7ccdc3351d.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-W", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-w", - "baseLayerID": -1, - "baseLayerMD5": "5ab197b4f70b2f98a3658c7ccdc3351d.svg", - "bitmapResolution": 1, - "rotationCenterX": 47, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": 1, - "scratchY": -49, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2b3145ae89c32793c4fcea9a6bcc6075", + "name": "Block-w", + "bitmapResolution": 1, + "md5ext": "2b3145ae89c32793c4fcea9a6bcc6075.svg", + "dataFormat": "svg", + "rotationCenterX": 47, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-X", - "md5": "cb9dff35f05e823d954e47e4a717a48c.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-X", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-x", - "baseLayerID": -1, - "baseLayerMD5": "cb9dff35f05e823d954e47e4a717a48c.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 32 - } - ], - "currentCostumeIndex": 0, - "scratchX": 61, - "scratchY": -35, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a73f354dc045bbbc5a491d9367192a80", + "name": "Block-x", + "bitmapResolution": 1, + "md5ext": "a73f354dc045bbbc5a491d9367192a80.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 32 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-Y", - "md5": "4c13c440bcb35c8c3aa6226374fced3f.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-Y", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-y", - "baseLayerID": -1, - "baseLayerMD5": "4c13c440bcb35c8c3aa6226374fced3f.svg", - "bitmapResolution": 1, - "rotationCenterX": 26, - "rotationCenterY": 33 - } - ], - "currentCostumeIndex": 0, - "scratchX": 53, - "scratchY": -12, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e13e79f106d32a3176dbcf5c1b35827d", + "name": "Block-y", + "bitmapResolution": 1, + "md5ext": "e13e79f106d32a3176dbcf5c1b35827d.svg", + "dataFormat": "svg", + "rotationCenterX": 26, + "rotationCenterY": 33 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Block-Z", - "md5": "0ccff1898f1bf1b25333d581db09fae2.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Block-Z", - "sounds": [ - { - "soundName": "meow", - "soundID": -1, - "md5": "83c36d806dc92327b9e7049a565c6bff.wav", - "sampleCount": 18688, - "rate": 22050, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Block-z", - "baseLayerID": -1, - "baseLayerMD5": "0ccff1898f1bf1b25333d581db09fae2.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": -33, - "scratchY": -20, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c57d371b291d43675f46601518098572", + "name": "Block-z", + "bitmapResolution": 1, + "md5ext": "c57d371b291d43675f46601518098572.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83c36d806dc92327b9e7049a565c6bff", + "name": "meow", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 37376, + "md5ext": "83c36d806dc92327b9e7049a565c6bff.wav" + } + ], + "blocks": {} }, { "name": "Glow-0", - "md5": "38b2b342659adc6fa289090975e0e71d.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-0", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-0", - "baseLayerID": -1, - "baseLayerMD5": "38b2b342659adc6fa289090975e0e71d.svg", - "bitmapResolution": 1, - "rotationCenterX": 29, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -31, - "scratchY": -37, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "64b59074f24d0e2405a509a45c0dadba", + "name": "Glow-0", + "bitmapResolution": 1, + "md5ext": "64b59074f24d0e2405a509a45c0dadba.svg", + "dataFormat": "svg", + "rotationCenterX": 29, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-1", - "md5": "2c88706210672655401fe09edd8ff6a7.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-1", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-1", - "baseLayerID": -1, - "baseLayerMD5": "2c88706210672655401fe09edd8ff6a7.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": 95, - "scratchY": -19, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9f75c26aa6c56168a3e5a4f598de2c94", + "name": "Glow-1", + "bitmapResolution": 1, + "md5ext": "9f75c26aa6c56168a3e5a4f598de2c94.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-2", - "md5": "b9faa5708a799a1607f0325a7af2561c.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-2", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-2", - "baseLayerID": -1, - "baseLayerMD5": "b9faa5708a799a1607f0325a7af2561c.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": -44, - "scratchY": -10, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e8d8bf59db37b5012dd643a16a636042", + "name": "Glow-2", + "bitmapResolution": 1, + "md5ext": "e8d8bf59db37b5012dd643a16a636042.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-3", - "md5": "cf42a50552ce26032ead712ac4f36c23.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-3", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-3", - "baseLayerID": -1, - "baseLayerMD5": "cf42a50552ce26032ead712ac4f36c23.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 42 - } - ], - "currentCostumeIndex": 0, - "scratchX": 48, - "scratchY": 7, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "57f7afe3b9888cca56803b73a62e4227", + "name": "Glow-3", + "bitmapResolution": 1, + "md5ext": "57f7afe3b9888cca56803b73a62e4227.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 42 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-4", - "md5": "3ffa6aee373e28fc36b9395ac4d0467e.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-4", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-4", - "baseLayerID": -1, - "baseLayerMD5": "3ffa6aee373e28fc36b9395ac4d0467e.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": 50, - "scratchY": -12, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "b8209e1980475b30ff11e60d7633446d", + "name": "Glow-4", + "bitmapResolution": 1, + "md5ext": "b8209e1980475b30ff11e60d7633446d.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-5", - "md5": "85d87d32e7e9e6be122c905b0d2e7e33.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-5", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-5", - "baseLayerID": -1, - "baseLayerMD5": "85d87d32e7e9e6be122c905b0d2e7e33.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": -88, - "scratchY": -37, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "aacb5b3cec637f192f080138b4ccd8d2", + "name": "Glow-5", + "bitmapResolution": 1, + "md5ext": "aacb5b3cec637f192f080138b4ccd8d2.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-6", - "md5": "62cc2a6def27f19d11ed56e86e95aac5.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-6", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-6", - "baseLayerID": -1, - "baseLayerMD5": "62cc2a6def27f19d11ed56e86e95aac5.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 37 - } - ], - "currentCostumeIndex": 0, - "scratchX": 35, - "scratchY": 31, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "84d9f26050c709e6b98706c22d2efb3d", + "name": "Glow-6", + "bitmapResolution": 1, + "md5ext": "84d9f26050c709e6b98706c22d2efb3d.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 37 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-7", - "md5": "8887983eb4df2e62a2ed4770a1d98d60.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-7", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-7", - "baseLayerID": -1, - "baseLayerMD5": "8887983eb4df2e62a2ed4770a1d98d60.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 42 - } - ], - "currentCostumeIndex": 0, - "scratchX": 30, - "scratchY": 5, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6194b9a251a905d0001a969990961724", + "name": "Glow-7", + "bitmapResolution": 1, + "md5ext": "6194b9a251a905d0001a969990961724.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 42 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-8", - "md5": "4c42c4cb0c1e090d0f9570416d3c80c8.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-8", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-8", - "baseLayerID": -1, - "baseLayerMD5": "4c42c4cb0c1e090d0f9570416d3c80c8.svg", - "bitmapResolution": 1, - "rotationCenterX": 31, - "rotationCenterY": 37 - } - ], - "currentCostumeIndex": 0, - "scratchX": -39, - "scratchY": -8, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "55e95fb9c60fbebb7d20bba99c7e9609", + "name": "Glow-8", + "bitmapResolution": 1, + "md5ext": "55e95fb9c60fbebb7d20bba99c7e9609.svg", + "dataFormat": "svg", + "rotationCenterX": 31, + "rotationCenterY": 37 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-9", - "md5": "7bcb7e2e48f5cb770c83d4267922fec0.svg", - "type": "sprite", "tags": [ "numbers", "digits" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-9", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-9", - "baseLayerID": -1, - "baseLayerMD5": "7bcb7e2e48f5cb770c83d4267922fec0.svg", - "bitmapResolution": 1, - "rotationCenterX": 28, - "rotationCenterY": 36 - } - ], - "currentCostumeIndex": 0, - "scratchX": 87, - "scratchY": 36, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0f53ee6a988bda07cba561d38bfbc36f", + "name": "Glow-9", + "bitmapResolution": 1, + "md5ext": "0f53ee6a988bda07cba561d38bfbc36f.svg", + "dataFormat": "svg", + "rotationCenterX": 28, + "rotationCenterY": 36 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-A", - "md5": "d5aa299350c24c747200a64b63b1aa52.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-A", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-A", - "baseLayerID": -1, - "baseLayerMD5": "d5aa299350c24c747200a64b63b1aa52.svg", - "bitmapResolution": 1, - "rotationCenterX": 36, - "rotationCenterY": 37 - } - ], - "currentCostumeIndex": 0, - "scratchX": 48, - "scratchY": -44, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "fd470938cce54248aaf240b16e845456", + "name": "Glow-A", + "bitmapResolution": 1, + "md5ext": "fd470938cce54248aaf240b16e845456.svg", + "dataFormat": "svg", + "rotationCenterX": 36, + "rotationCenterY": 37 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-B", - "md5": "a2e95f268a6cab03f3e94b3b0b792d83.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-B", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-B", - "baseLayerID": -1, - "baseLayerMD5": "a2e95f268a6cab03f3e94b3b0b792d83.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 35 - } - ], - "currentCostumeIndex": 0, - "scratchX": -85, - "scratchY": 45, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a699fa024889b681d8b8b6c5c86acb6d", + "name": "Glow-B", + "bitmapResolution": 1, + "md5ext": "a699fa024889b681d8b8b6c5c86acb6d.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 35 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-C", - "md5": "9779a4a40934f04a4bf84920b258d7c9.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-C", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-C", - "baseLayerID": -1, - "baseLayerMD5": "9779a4a40934f04a4bf84920b258d7c9.svg", - "bitmapResolution": 1, - "rotationCenterX": 27, - "rotationCenterY": 35 - } - ], - "currentCostumeIndex": 0, - "scratchX": -98, - "scratchY": 35, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "51b8a7dd7a8cddc5bc30e35824cc557a", + "name": "Glow-C", + "bitmapResolution": 1, + "md5ext": "51b8a7dd7a8cddc5bc30e35824cc557a.svg", + "dataFormat": "svg", + "rotationCenterX": 27, + "rotationCenterY": 35 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-D", - "md5": "3555b8bbbbcdc00354bf6fa81ac7042f.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-D", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-D", - "baseLayerID": -1, - "baseLayerMD5": "3555b8bbbbcdc00354bf6fa81ac7042f.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 35 - } - ], - "currentCostumeIndex": 0, - "scratchX": 25, - "scratchY": -13, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a3a66e37de8d7ebe0505594e036ef6d1", + "name": "Glow-D", + "bitmapResolution": 1, + "md5ext": "a3a66e37de8d7ebe0505594e036ef6d1.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 35 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-E", - "md5": "44dbc655d5ac9f13618473848e23484e.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-E", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-E", - "baseLayerID": -1, - "baseLayerMD5": "44dbc655d5ac9f13618473848e23484e.svg", - "bitmapResolution": 1, - "rotationCenterX": 34, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": -5, - "scratchY": -19, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "80382a5db3fa556276068165c547b432", + "name": "Glow-E", + "bitmapResolution": 1, + "md5ext": "80382a5db3fa556276068165c547b432.svg", + "dataFormat": "svg", + "rotationCenterX": 34, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-F", - "md5": "dec417e749e43d7de3985155f5f5a7a0.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-F", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-F", - "baseLayerID": -1, - "baseLayerMD5": "dec417e749e43d7de3985155f5f5a7a0.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": -89, - "scratchY": -22, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "67239f7d47f7b92bc38e2d8b275d54ab", + "name": "Glow-F", + "bitmapResolution": 1, + "md5ext": "67239f7d47f7b92bc38e2d8b275d54ab.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-G", - "md5": "cf4aa465cd8fb7049cc571d7546a7eb1.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-G", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-G", - "baseLayerID": -1, - "baseLayerMD5": "cf4aa465cd8fb7049cc571d7546a7eb1.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": 28, - "scratchY": 16, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "56839bc48957869d980c6f9b6f5a2a91", + "name": "Glow-G", + "bitmapResolution": 1, + "md5ext": "56839bc48957869d980c6f9b6f5a2a91.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-H", - "md5": "8d9bd5f00ea1ac6f92d0f97ee491b0f3.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-H", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-H", - "baseLayerID": -1, - "baseLayerMD5": "8d9bd5f00ea1ac6f92d0f97ee491b0f3.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 46 - } - ], - "currentCostumeIndex": 0, - "scratchX": 91, - "scratchY": -38, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d6016c6494153cd5735ee4b6a1b05277", + "name": "Glow-H", + "bitmapResolution": 1, + "md5ext": "d6016c6494153cd5735ee4b6a1b05277.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 46 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-I", - "md5": "0e86de55840103dcd50199ab2b765de7.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-I", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-I", - "baseLayerID": -1, - "baseLayerMD5": "0e86de55840103dcd50199ab2b765de7.svg", - "bitmapResolution": 1, - "rotationCenterX": 21, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": -38, - "scratchY": -29, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9077988af075c80cc403b1d6e5891528", + "name": "Glow-I", + "bitmapResolution": 1, + "md5ext": "9077988af075c80cc403b1d6e5891528.svg", + "dataFormat": "svg", + "rotationCenterX": 21, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-J", - "md5": "b3832145eacc39f91bd3a9a6673fa05c.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-J", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-J", - "baseLayerID": -1, - "baseLayerMD5": "b3832145eacc39f91bd3a9a6673fa05c.svg", - "bitmapResolution": 1, - "rotationCenterX": 29, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -34, - "scratchY": 1, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6c359eff57abf5bb6db55894d08757c3", + "name": "Glow-J", + "bitmapResolution": 1, + "md5ext": "6c359eff57abf5bb6db55894d08757c3.svg", + "dataFormat": "svg", + "rotationCenterX": 29, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-K", - "md5": "f4e37a7552ba05e995613211a7146de5.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-K", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-K", - "baseLayerID": -1, - "baseLayerMD5": "f4e37a7552ba05e995613211a7146de5.svg", - "bitmapResolution": 1, - "rotationCenterX": 38, - "rotationCenterY": 36 - } - ], - "currentCostumeIndex": 0, - "scratchX": -41, - "scratchY": 30, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e932898d1e6fe3950a266fccaba0c3e6", + "name": "Glow-K", + "bitmapResolution": 1, + "md5ext": "e932898d1e6fe3950a266fccaba0c3e6.svg", + "dataFormat": "svg", + "rotationCenterX": 38, + "rotationCenterY": 36 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-L", - "md5": "a75e45773ea6afaf8ae44f79f936fc82.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-L", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-L", - "baseLayerID": -1, - "baseLayerMD5": "a75e45773ea6afaf8ae44f79f936fc82.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 35 - } - ], - "currentCostumeIndex": 0, - "scratchX": 54, - "scratchY": -21, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "dcee9202cf20e0395971f1ee73c45d37", + "name": "Glow-L", + "bitmapResolution": 1, + "md5ext": "dcee9202cf20e0395971f1ee73c45d37.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 35 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-M", - "md5": "219b06faa5b816347165450d148213b4.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-M", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-M", - "baseLayerID": -1, - "baseLayerMD5": "219b06faa5b816347165450d148213b4.svg", - "bitmapResolution": 1, - "rotationCenterX": 42, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -43, - "scratchY": -15, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "26f81aa5990bf2371acaa8d76fe1e87f", + "name": "Glow-M", + "bitmapResolution": 1, + "md5ext": "26f81aa5990bf2371acaa8d76fe1e87f.svg", + "dataFormat": "svg", + "rotationCenterX": 42, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-N", - "md5": "4b724479fb3b2184fd8be6f83fb20e54.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-N", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-N", - "baseLayerID": -1, - "baseLayerMD5": "4b724479fb3b2184fd8be6f83fb20e54.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -23, - "scratchY": -33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d55a04ada14958eccc4aef446a4dad57", + "name": "Glow-N", + "bitmapResolution": 1, + "md5ext": "d55a04ada14958eccc4aef446a4dad57.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-O", - "md5": "38b2b342659adc6fa289090975e0e71d.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-O", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-O", - "baseLayerID": -1, - "baseLayerMD5": "38b2b342659adc6fa289090975e0e71d.svg", - "bitmapResolution": 1, - "rotationCenterX": 29, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -40, - "scratchY": 26, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "64b59074f24d0e2405a509a45c0dadba", + "name": "Glow-O", + "bitmapResolution": 1, + "md5ext": "64b59074f24d0e2405a509a45c0dadba.svg", + "dataFormat": "svg", + "rotationCenterX": 29, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-P", - "md5": "1cfa849cc967069730b7e9d0809c9dc1.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-P", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-P", - "baseLayerID": -1, - "baseLayerMD5": "1cfa849cc967069730b7e9d0809c9dc1.svg", - "bitmapResolution": 1, - "rotationCenterX": 32, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -10, - "scratchY": -9, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c6edc2603ad4db3aa0b29f80e3e38cff", + "name": "Glow-P", + "bitmapResolution": 1, + "md5ext": "c6edc2603ad4db3aa0b29f80e3e38cff.svg", + "dataFormat": "svg", + "rotationCenterX": 32, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-Q", - "md5": "9d35979e9404ac234301269fcd7de288.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-Q", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-Q", - "baseLayerID": -1, - "baseLayerMD5": "9d35979e9404ac234301269fcd7de288.svg", - "bitmapResolution": 1, - "rotationCenterX": 33, - "rotationCenterY": 43 - } - ], - "currentCostumeIndex": 0, - "scratchX": -85, - "scratchY": -1, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "e4ae18bf8b92ae375ce818d754588c76", + "name": "Glow-Q", + "bitmapResolution": 1, + "md5ext": "e4ae18bf8b92ae375ce818d754588c76.svg", + "dataFormat": "svg", + "rotationCenterX": 33, + "rotationCenterY": 43 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-R", - "md5": "fc067ee076ecaba8430ccd54d9414c1b.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-R", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-R", - "baseLayerID": -1, - "baseLayerMD5": "fc067ee076ecaba8430ccd54d9414c1b.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": 26, - "scratchY": 37, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "bb11b49e19c68452331e78d51081ab42", + "name": "Glow-R", + "bitmapResolution": 1, + "md5ext": "bb11b49e19c68452331e78d51081ab42.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-S", - "md5": "19a93db8a294ccaec4d6eef4020a446f.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-S", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-S", - "baseLayerID": -1, - "baseLayerMD5": "19a93db8a294ccaec4d6eef4020a446f.svg", - "bitmapResolution": 1, - "rotationCenterX": 27, - "rotationCenterY": 40 - } - ], - "currentCostumeIndex": 0, - "scratchX": -94, - "scratchY": -36, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "6fd994b41bcf776fbf1f1521a879f1af", + "name": "Glow-S", + "bitmapResolution": 1, + "md5ext": "6fd994b41bcf776fbf1f1521a879f1af.svg", + "dataFormat": "svg", + "rotationCenterX": 27, + "rotationCenterY": 40 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-T", - "md5": "d7bcda522a1e9504dafcf2fa0fcde39b.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-T", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-T", - "baseLayerID": -1, - "baseLayerMD5": "d7bcda522a1e9504dafcf2fa0fcde39b.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 38 - } - ], - "currentCostumeIndex": 0, - "scratchX": 37, - "scratchY": -20, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "d687543649a676a14f408b5890d45f05", + "name": "Glow-T", + "bitmapResolution": 1, + "md5ext": "d687543649a676a14f408b5890d45f05.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 38 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-U", - "md5": "790482a3c3691a1e96ef34eee7303872.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-U", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-U", - "baseLayerID": -1, - "baseLayerMD5": "790482a3c3691a1e96ef34eee7303872.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 37 - } - ], - "currentCostumeIndex": 0, - "scratchX": 17, - "scratchY": 31, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "cb8ef2244400a57ba08e918cb4fe8bba", + "name": "Glow-U", + "bitmapResolution": 1, + "md5ext": "cb8ef2244400a57ba08e918cb4fe8bba.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 37 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-V", - "md5": "6a00388d8dc6be645b843cef9c22681c.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-V", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-V", - "baseLayerID": -1, - "baseLayerMD5": "6a00388d8dc6be645b843cef9c22681c.svg", - "bitmapResolution": 1, - "rotationCenterX": 35, - "rotationCenterY": 42 - } - ], - "currentCostumeIndex": 0, - "scratchX": 82, - "scratchY": 26, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c6edc1ac2c5979f389598537cfb28096", + "name": "Glow-V", + "bitmapResolution": 1, + "md5ext": "c6edc1ac2c5979f389598537cfb28096.svg", + "dataFormat": "svg", + "rotationCenterX": 35, + "rotationCenterY": 42 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-W", - "md5": "1a9ea7305a85b271c1de79beafe16cb4.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-W", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-W", - "baseLayerID": -1, - "baseLayerMD5": "1a9ea7305a85b271c1de79beafe16cb4.svg", - "bitmapResolution": 1, - "rotationCenterX": 45, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": -18, - "scratchY": 11, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2e0c2bb46c4ca3cf97779f749b1556f6", + "name": "Glow-W", + "bitmapResolution": 1, + "md5ext": "2e0c2bb46c4ca3cf97779f749b1556f6.svg", + "dataFormat": "svg", + "rotationCenterX": 45, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-X", - "md5": "ec4e65b9ae475a676973128f4205df5f.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-X", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-X", - "baseLayerID": -1, - "baseLayerMD5": "ec4e65b9ae475a676973128f4205df5f.svg", - "bitmapResolution": 1, - "rotationCenterX": 40, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": -84, - "scratchY": 46, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0b98a63dcc55251072a95a6c6bf7f6f2", + "name": "Glow-X", + "bitmapResolution": 1, + "md5ext": "0b98a63dcc55251072a95a6c6bf7f6f2.svg", + "dataFormat": "svg", + "rotationCenterX": 40, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-Y", - "md5": "683cd093bb3b254733a15df6f843464c.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-Y", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-Y", - "baseLayerID": -1, - "baseLayerMD5": "683cd093bb3b254733a15df6f843464c.svg", - "bitmapResolution": 1, - "rotationCenterX": 38, - "rotationCenterY": 41 - } - ], - "currentCostumeIndex": 0, - "scratchX": -34, - "scratchY": 46, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "532494c9b5e6709f9982c00a48ce6870", + "name": "Glow-Y", + "bitmapResolution": 1, + "md5ext": "532494c9b5e6709f9982c00a48ce6870.svg", + "dataFormat": "svg", + "rotationCenterX": 38, + "rotationCenterY": 41 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Glow-Z", - "md5": "db89a4c9b123123542e0b7556ed3ff9f.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 1, - 1 - ], - "json": { - "objName": "Glow-Z", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "Glow-Z", - "baseLayerID": -1, - "baseLayerMD5": "db89a4c9b123123542e0b7556ed3ff9f.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 39 - } - ], - "currentCostumeIndex": 0, - "scratchX": 87, - "scratchY": 15, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2d94d83dcc9ee3a107e5ea7ef0dddeb0", + "name": "Glow-Z", + "bitmapResolution": 1, + "md5ext": "2d94d83dcc9ee3a107e5ea7ef0dddeb0.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 39 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-A", - "md5": "5406b37278d819d4787a588b9c91f68e.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-A", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-A-1", - "baseLayerID": -1, - "baseLayerMD5": "5406b37278d819d4787a588b9c91f68e.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 26 - }, - { - "costumeName": "story-A-2", - "baseLayerID": -1, - "baseLayerMD5": "f277943adf8d79b41b9b568321a786ee.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 26 - }, - { - "costumeName": "story-A-3", - "baseLayerID": -1, - "baseLayerMD5": "cc0cc7ae3240eab7d040e148cc663325.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -76, - "scratchY": 32, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4b1beecd9a8892df0918242b2b5fbd4c", + "name": "story-A-1", + "bitmapResolution": 1, + "md5ext": "4b1beecd9a8892df0918242b2b5fbd4c.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 26 + }, + { + "assetId": "7a6fdf5e26fc690879f8e215bfdec4d5", + "name": "story-A-2", + "bitmapResolution": 1, + "md5ext": "7a6fdf5e26fc690879f8e215bfdec4d5.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 26 + }, + { + "assetId": "3c46f5192d2c29f957381e0100c6085d", + "name": "story-A-3", + "bitmapResolution": 1, + "md5ext": "3c46f5192d2c29f957381e0100c6085d.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-B", - "md5": "2a8fac3c82d95f13203843a597b5757b.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-B", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-B-1", - "baseLayerID": -1, - "baseLayerMD5": "2a8fac3c82d95f13203843a597b5757b.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 25 - }, - { - "costumeName": "story-B-2", - "baseLayerID": -1, - "baseLayerMD5": "07fa4ebc421d84743b6ced189dd2f9cf.svg", - "bitmapResolution": 1, - "rotationCenterX": 19, - "rotationCenterY": 25 - }, - { - "costumeName": "story-B-3", - "baseLayerID": -1, - "baseLayerMD5": "6c9a9203155f93f24f31b30e3bd76b6d.svg", - "bitmapResolution": 1, - "rotationCenterX": 18, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": -12, - "scratchY": -43, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "a09376e1eacf17be3c9fbd268674b9f7", + "name": "story-B-1", + "bitmapResolution": 1, + "md5ext": "a09376e1eacf17be3c9fbd268674b9f7.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 25 + }, + { + "assetId": "5f8301434ce176ab328f5b658ee1ec05", + "name": "story-B-2", + "bitmapResolution": 1, + "md5ext": "5f8301434ce176ab328f5b658ee1ec05.svg", + "dataFormat": "svg", + "rotationCenterX": 19, + "rotationCenterY": 25 + }, + { + "assetId": "22817ed2e4253787c78d7b696bbefdc1", + "name": "story-B-3", + "bitmapResolution": 1, + "md5ext": "22817ed2e4253787c78d7b696bbefdc1.svg", + "dataFormat": "svg", + "rotationCenterX": 18, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-C", - "md5": "144845715016910e88e2a223ed4d3df1.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-C", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-C-1", - "baseLayerID": -1, - "baseLayerMD5": "144845715016910e88e2a223ed4d3df1.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 26 - }, - { - "costumeName": "story-C-2", - "baseLayerID": -1, - "baseLayerMD5": "1045c56c4be3d8d0650579864417fbc7.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 26 - }, - { - "costumeName": "story-C-3", - "baseLayerID": -1, - "baseLayerMD5": "c8fd35294d17a369fecb6d6e4725d04a.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": 73, - "scratchY": -19, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "5e61610cbba50ba86f18830f61bbaecb", + "name": "story-C-1", + "bitmapResolution": 1, + "md5ext": "5e61610cbba50ba86f18830f61bbaecb.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 26 + }, + { + "assetId": "f6ff602902affbae2f89b389f08df432", + "name": "story-C-2", + "bitmapResolution": 1, + "md5ext": "f6ff602902affbae2f89b389f08df432.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 26 + }, + { + "assetId": "6bd5cb8bc3e4df5e055f4c56dd630855", + "name": "story-C-3", + "bitmapResolution": 1, + "md5ext": "6bd5cb8bc3e4df5e055f4c56dd630855.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-D", - "md5": "dfd362f2da975c20aa7849a8fa2fb4df.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-D", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-D-1", - "baseLayerID": -1, - "baseLayerMD5": "dfd362f2da975c20aa7849a8fa2fb4df.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 26 - }, - { - "costumeName": "story-D-2", - "baseLayerID": -1, - "baseLayerMD5": "3e4cc4cff08bb42bc690eff66dffbbe9.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 26 - }, - { - "costumeName": "story-D-3", - "baseLayerID": -1, - "baseLayerMD5": "bd7f984fe82d9d0fdcff0a87b3c0f9e0.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": -30, - "scratchY": -3, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "130cc4b9ad8dd8936d22c51c05ac6860", + "name": "story-D-1", + "bitmapResolution": 1, + "md5ext": "130cc4b9ad8dd8936d22c51c05ac6860.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 26 + }, + { + "assetId": "b28d76f648ad24932a18cb40c8d76bc5", + "name": "story-D-2", + "bitmapResolution": 1, + "md5ext": "b28d76f648ad24932a18cb40c8d76bc5.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 26 + }, + { + "assetId": "dd713e3bf42d7a4fd8d2f12094db1c63", + "name": "story-D-3", + "bitmapResolution": 1, + "md5ext": "dd713e3bf42d7a4fd8d2f12094db1c63.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-E", - "md5": "56473bacbdf6f0dbca1afb04e5aebaf7.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-E", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-E-1", - "baseLayerID": -1, - "baseLayerMD5": "56473bacbdf6f0dbca1afb04e5aebaf7.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 25 - }, - { - "costumeName": "story-E-2", - "baseLayerID": -1, - "baseLayerMD5": "8bba14966fe35f0dccb66ef06a9843ca.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 25 - }, - { - "costumeName": "story-E-3", - "baseLayerID": -1, - "baseLayerMD5": "e8cfc63375f6d6c2a580823489427f38.svg", - "bitmapResolution": 1, - "rotationCenterX": 18, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": -12, - "scratchY": 5, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "3005df22798da45f1daf1de7421bb91d", + "name": "story-E-1", + "bitmapResolution": 1, + "md5ext": "3005df22798da45f1daf1de7421bb91d.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 25 + }, + { + "assetId": "add5c5a8eec67eb010b5cbd44dea5c8d", + "name": "story-E-2", + "bitmapResolution": 1, + "md5ext": "add5c5a8eec67eb010b5cbd44dea5c8d.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 25 + }, + { + "assetId": "4e903ac41a7e16a52efff8477f2398c7", + "name": "story-E-3", + "bitmapResolution": 1, + "md5ext": "4e903ac41a7e16a52efff8477f2398c7.svg", + "dataFormat": "svg", + "rotationCenterX": 18, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-F", - "md5": "5844ff29fc8663c8613f12169d2f07ef.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-F", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-F-1", - "baseLayerID": -1, - "baseLayerMD5": "5844ff29fc8663c8613f12169d2f07ef.svg", - "bitmapResolution": 1, - "rotationCenterX": 18, - "rotationCenterY": 26 - }, - { - "costumeName": "story-F-2", - "baseLayerID": -1, - "baseLayerMD5": "0dbe4a064abea1a9a3bc0d2732643e6b.svg", - "bitmapResolution": 1, - "rotationCenterX": 18, - "rotationCenterY": 25 - }, - { - "costumeName": "story-F-3", - "baseLayerID": -1, - "baseLayerMD5": "3db373f4482e391e66d1b06335a96144.svg", - "bitmapResolution": 1, - "rotationCenterX": 16, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": 85, - "scratchY": -20, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "83565581ecc9f7d4010efd8683a99393", + "name": "story-F-1", + "bitmapResolution": 1, + "md5ext": "83565581ecc9f7d4010efd8683a99393.svg", + "dataFormat": "svg", + "rotationCenterX": 18, + "rotationCenterY": 26 + }, + { + "assetId": "4a3ae31dd3dd3b96239a0307cfdaa1b6", + "name": "story-F-2", + "bitmapResolution": 1, + "md5ext": "4a3ae31dd3dd3b96239a0307cfdaa1b6.svg", + "dataFormat": "svg", + "rotationCenterX": 18, + "rotationCenterY": 25 + }, + { + "assetId": "d4ec9a1827429f4e2f3dc239dcc15b95", + "name": "story-F-3", + "bitmapResolution": 1, + "md5ext": "d4ec9a1827429f4e2f3dc239dcc15b95.svg", + "dataFormat": "svg", + "rotationCenterX": 16, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-G", - "md5": "ee6454d15fbbe93e908a2ebbfad483a0.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-G", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-G-1", - "baseLayerID": -1, - "baseLayerMD5": "ee6454d15fbbe93e908a2ebbfad483a0.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 25 - }, - { - "costumeName": "story-G-2", - "baseLayerID": -1, - "baseLayerMD5": "991023d303f79ce092f070392ffbd69f.svg", - "bitmapResolution": 1, - "rotationCenterX": 23, - "rotationCenterY": 25 - }, - { - "costumeName": "story-G-3", - "baseLayerID": -1, - "baseLayerMD5": "38f22c0d8dbe541bde409ba1f241d4c1.svg", - "bitmapResolution": 1, - "rotationCenterX": 21, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": 3, - "scratchY": 9, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "85144902cc61fe98dca513b74276d7d8", + "name": "story-G-1", + "bitmapResolution": 1, + "md5ext": "85144902cc61fe98dca513b74276d7d8.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 25 + }, + { + "assetId": "648cfdd48a7f748e6198194669ba1909", + "name": "story-G-2", + "bitmapResolution": 1, + "md5ext": "648cfdd48a7f748e6198194669ba1909.svg", + "dataFormat": "svg", + "rotationCenterX": 23, + "rotationCenterY": 25 + }, + { + "assetId": "8fb61932544adbe8c95b067ad1351758", + "name": "story-G-3", + "bitmapResolution": 1, + "md5ext": "8fb61932544adbe8c95b067ad1351758.svg", + "dataFormat": "svg", + "rotationCenterX": 21, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-H", - "md5": "2a0e1308d6cb806818af696a89b21863.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-H", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-H-1", - "baseLayerID": -1, - "baseLayerMD5": "2a0e1308d6cb806818af696a89b21863.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 25 - }, - { - "costumeName": "story-H-2", - "baseLayerID": -1, - "baseLayerMD5": "ca33be5270308a695c9b88af73f590dc.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 25 - }, - { - "costumeName": "story-H-3", - "baseLayerID": -1, - "baseLayerMD5": "668ba2b891f82ce78d8590f0287632b1.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": 72, - "scratchY": 3, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "eec286b1cfea3f219a5b486931abedd2", + "name": "story-H-1", + "bitmapResolution": 1, + "md5ext": "eec286b1cfea3f219a5b486931abedd2.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 25 + }, + { + "assetId": "70520daa9f82a2347c8a8fa9e7fe1a6e", + "name": "story-H-2", + "bitmapResolution": 1, + "md5ext": "70520daa9f82a2347c8a8fa9e7fe1a6e.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 25 + }, + { + "assetId": "99aae97a2b49904db7eeb813fa968582", + "name": "story-H-3", + "bitmapResolution": 1, + "md5ext": "99aae97a2b49904db7eeb813fa968582.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-I", - "md5": "705297637ea83af5b94b6fe2e34aeef4.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-I", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-I-1", - "baseLayerID": -1, - "baseLayerMD5": "705297637ea83af5b94b6fe2e34aeef4.svg", - "bitmapResolution": 1, - "rotationCenterX": 9, - "rotationCenterY": 26 - }, - { - "costumeName": "story-I-2", - "baseLayerID": -1, - "baseLayerMD5": "7b3ae96764795727fa1cb0be68a9ca5e.svg", - "bitmapResolution": 1, - "rotationCenterX": 9, - "rotationCenterY": 26 - }, - { - "costumeName": "story-I-3", - "baseLayerID": -1, - "baseLayerMD5": "3475aa570304accb7e6dbd2516234135.svg", - "bitmapResolution": 1, - "rotationCenterX": 7, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": -50, - "scratchY": -33, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2c156e20da1ad4e8e397a89ad8fb1c26", + "name": "story-I-1", + "bitmapResolution": 1, + "md5ext": "2c156e20da1ad4e8e397a89ad8fb1c26.svg", + "dataFormat": "svg", + "rotationCenterX": 9, + "rotationCenterY": 26 + }, + { + "assetId": "1bceea90292a51a7177abf581f28bf2c", + "name": "story-I-2", + "bitmapResolution": 1, + "md5ext": "1bceea90292a51a7177abf581f28bf2c.svg", + "dataFormat": "svg", + "rotationCenterX": 9, + "rotationCenterY": 26 + }, + { + "assetId": "9cad752323aa81dfa8d8cf009057b108", + "name": "story-I-3", + "bitmapResolution": 1, + "md5ext": "9cad752323aa81dfa8d8cf009057b108.svg", + "dataFormat": "svg", + "rotationCenterX": 7, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-J", - "md5": "ac2e7eaecb80c5501e5e56802d03af00.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-J", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-J-1", - "baseLayerID": -1, - "baseLayerMD5": "ac2e7eaecb80c5501e5e56802d03af00.svg", - "bitmapResolution": 1, - "rotationCenterX": 14, - "rotationCenterY": 25 - }, - { - "costumeName": "story-J-2", - "baseLayerID": -1, - "baseLayerMD5": "0ab9a94fc2e32160efc113a8e5ffb984.svg", - "bitmapResolution": 1, - "rotationCenterX": 14, - "rotationCenterY": 25 - }, - { - "costumeName": "story-J-3", - "baseLayerID": -1, - "baseLayerMD5": "c9356a022cfbc25be6c484e9781e4637.svg", - "bitmapResolution": 1, - "rotationCenterX": 12, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": 57, - "scratchY": 46, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "2838de5d131785c985eb0eab25ec63af", + "name": "story-J-1", + "bitmapResolution": 1, + "md5ext": "2838de5d131785c985eb0eab25ec63af.svg", + "dataFormat": "svg", + "rotationCenterX": 14, + "rotationCenterY": 25 + }, + { + "assetId": "7d7d6f257a6bf3668a0befa4199f16a0", + "name": "story-J-2", + "bitmapResolution": 1, + "md5ext": "7d7d6f257a6bf3668a0befa4199f16a0.svg", + "dataFormat": "svg", + "rotationCenterX": 14, + "rotationCenterY": 25 + }, + { + "assetId": "d5b58ddd6f6b4fdcfdfd86d102853935", + "name": "story-J-3", + "bitmapResolution": 1, + "md5ext": "d5b58ddd6f6b4fdcfdfd86d102853935.svg", + "dataFormat": "svg", + "rotationCenterX": 12, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-K", - "md5": "62dcc92dc3c6cb0271244190320c4f71.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-K", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-K-1", - "baseLayerID": -1, - "baseLayerMD5": "62dcc92dc3c6cb0271244190320c4f71.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 26 - }, - { - "costumeName": "story-K-2", - "baseLayerID": -1, - "baseLayerMD5": "ef02339e8a0382367f0b5a414915b885.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 26 - }, - { - "costumeName": "story-K-3", - "baseLayerID": -1, - "baseLayerMD5": "07977708617d12381b22d1ee0f4926a3.svg", - "bitmapResolution": 1, - "rotationCenterX": 21, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -97, - "scratchY": -1, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "0cb908dbc38635cc595e6060afc1b682", + "name": "story-K-1", + "bitmapResolution": 1, + "md5ext": "0cb908dbc38635cc595e6060afc1b682.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 26 + }, + { + "assetId": "ecf86afea23fd95e27d4e63659adbfa6", + "name": "story-K-2", + "bitmapResolution": 1, + "md5ext": "ecf86afea23fd95e27d4e63659adbfa6.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 26 + }, + { + "assetId": "17ef8f63a2a8f47258bd62cf642fd8d6", + "name": "story-K-3", + "bitmapResolution": 1, + "md5ext": "17ef8f63a2a8f47258bd62cf642fd8d6.svg", + "dataFormat": "svg", + "rotationCenterX": 21, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-L", - "md5": "7ce306e9c9c0dd0a24279606301f1d05.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-L", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-L-1", - "baseLayerID": -1, - "baseLayerMD5": "7ce306e9c9c0dd0a24279606301f1d05.svg", - "bitmapResolution": 1, - "rotationCenterX": 19, - "rotationCenterY": 26 - }, - { - "costumeName": "story-L-2", - "baseLayerID": -1, - "baseLayerMD5": "067c21a9b2f91ed33e07131ce5a59210.svg", - "bitmapResolution": 1, - "rotationCenterX": 19, - "rotationCenterY": 26 - }, - { - "costumeName": "story-L-3", - "baseLayerID": -1, - "baseLayerMD5": "488d66f17c0089a7796d44cfc70792e8.svg", - "bitmapResolution": 1, - "rotationCenterX": 17, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": -55, - "scratchY": -27, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "935c7cf21c35523c0a232013a6399a49", + "name": "story-L-1", + "bitmapResolution": 1, + "md5ext": "935c7cf21c35523c0a232013a6399a49.svg", + "dataFormat": "svg", + "rotationCenterX": 19, + "rotationCenterY": 26 + }, + { + "assetId": "0fc3ac08468935694255ef8a461d4d26", + "name": "story-L-2", + "bitmapResolution": 1, + "md5ext": "0fc3ac08468935694255ef8a461d4d26.svg", + "dataFormat": "svg", + "rotationCenterX": 19, + "rotationCenterY": 26 + }, + { + "assetId": "ec4d85a60c32c7637de31dbf503266a0", + "name": "story-L-3", + "bitmapResolution": 1, + "md5ext": "ec4d85a60c32c7637de31dbf503266a0.svg", + "dataFormat": "svg", + "rotationCenterX": 17, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-M", - "md5": "b27f166f9ab4a3fb93a50a77c58c3df3.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-M", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-M-1", - "baseLayerID": -1, - "baseLayerMD5": "b27f166f9ab4a3fb93a50a77c58c3df3.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 25 - }, - { - "costumeName": "story-M-2", - "baseLayerID": -1, - "baseLayerMD5": "55f00a23d0f5cc57be9533f126a7ac8c.svg", - "bitmapResolution": 1, - "rotationCenterX": 30, - "rotationCenterY": 25 - }, - { - "costumeName": "story-M-3", - "baseLayerID": -1, - "baseLayerMD5": "613df2bd97784a239ab992f7a95458a0.svg", - "bitmapResolution": 1, - "rotationCenterX": 27, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": 93, - "scratchY": 39, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "9bf9e677da34528433d3c1acb945e2df", + "name": "story-M-1", + "bitmapResolution": 1, + "md5ext": "9bf9e677da34528433d3c1acb945e2df.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 25 + }, + { + "assetId": "42e5468fa164e001925d5a49d372f4b1", + "name": "story-M-2", + "bitmapResolution": 1, + "md5ext": "42e5468fa164e001925d5a49d372f4b1.svg", + "dataFormat": "svg", + "rotationCenterX": 30, + "rotationCenterY": 25 + }, + { + "assetId": "643896fcad0a1bf6eb9f3f590094687c", + "name": "story-M-3", + "bitmapResolution": 1, + "md5ext": "643896fcad0a1bf6eb9f3f590094687c.svg", + "dataFormat": "svg", + "rotationCenterX": 27, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-N", - "md5": "293589fd5bbc358a20c165ab49c19833.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-N", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-N-1", - "baseLayerID": -1, - "baseLayerMD5": "293589fd5bbc358a20c165ab49c19833.svg", - "bitmapResolution": 1, - "rotationCenterX": 26, - "rotationCenterY": 25 - }, - { - "costumeName": "story-N-2", - "baseLayerID": -1, - "baseLayerMD5": "5e07ee61cb20bc575720774584dfec53.svg", - "bitmapResolution": 1, - "rotationCenterX": 26, - "rotationCenterY": 25 - }, - { - "costumeName": "story-N-3", - "baseLayerID": -1, - "baseLayerMD5": "435697335345f946d943c1d89fdb459a.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": 37, - "scratchY": -32, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "c2f77473dd16d1a3713218b05390a688", + "name": "story-N-1", + "bitmapResolution": 1, + "md5ext": "c2f77473dd16d1a3713218b05390a688.svg", + "dataFormat": "svg", + "rotationCenterX": 26, + "rotationCenterY": 25 + }, + { + "assetId": "80c8f32282b697097933837905a6f257", + "name": "story-N-2", + "bitmapResolution": 1, + "md5ext": "80c8f32282b697097933837905a6f257.svg", + "dataFormat": "svg", + "rotationCenterX": 26, + "rotationCenterY": 25 + }, + { + "assetId": "40ffad793f4042a5fe7b3aaa6bc175ae", + "name": "story-N-3", + "bitmapResolution": 1, + "md5ext": "40ffad793f4042a5fe7b3aaa6bc175ae.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-O", - "md5": "088beed7ce0dff554da06f54d0558bc0.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-O", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-O-1", - "baseLayerID": -1, - "baseLayerMD5": "088beed7ce0dff554da06f54d0558bc0.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 25 - }, - { - "costumeName": "story-O-2", - "baseLayerID": -1, - "baseLayerMD5": "e8fa671bb1ca53c044bfb27225321c25.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 25 - }, - { - "costumeName": "story-O-3", - "baseLayerID": -1, - "baseLayerMD5": "a132bf3d4084ef8ca9e0797f64c0f082.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": 98, - "scratchY": 3, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "40bf3880b678beeda8cf708a51a4402d", + "name": "story-O-1", + "bitmapResolution": 1, + "md5ext": "40bf3880b678beeda8cf708a51a4402d.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 25 + }, + { + "assetId": "0bdd31ea2b3b78d0c39022795a49c69a", + "name": "story-O-2", + "bitmapResolution": 1, + "md5ext": "0bdd31ea2b3b78d0c39022795a49c69a.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 25 + }, + { + "assetId": "43a89fc1442627ca48b1dc631c517942", + "name": "story-O-3", + "bitmapResolution": 1, + "md5ext": "43a89fc1442627ca48b1dc631c517942.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-P", - "md5": "ad4a101b83f28ced16849be3e393caa9.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-P", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-P-1", - "baseLayerID": -1, - "baseLayerMD5": "ad4a101b83f28ced16849be3e393caa9.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 25 - }, - { - "costumeName": "story-P-2", - "baseLayerID": -1, - "baseLayerMD5": "781c42f9da36bbc0ee3775f18ac98124.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 25 - }, - { - "costumeName": "story-P-3", - "baseLayerID": -1, - "baseLayerMD5": "bcaec7c778920d8d74c275c1aff634fe.svg", - "bitmapResolution": 1, - "rotationCenterX": 17, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -46, - "scratchY": -29, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "1a41f74cd76d7202d8b22ffc7729e03f", + "name": "story-P-1", + "bitmapResolution": 1, + "md5ext": "1a41f74cd76d7202d8b22ffc7729e03f.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 25 + }, + { + "assetId": "377eac55366670a03c469705c6689f09", + "name": "story-P-2", + "bitmapResolution": 1, + "md5ext": "377eac55366670a03c469705c6689f09.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 25 + }, + { + "assetId": "9cf707e83af27c47e74adb77496ffca5", + "name": "story-P-3", + "bitmapResolution": 1, + "md5ext": "9cf707e83af27c47e74adb77496ffca5.svg", + "dataFormat": "svg", + "rotationCenterX": 17, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-Q", - "md5": "484e44f908e84d795c87cf994364e722.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-Q", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-Q-1", - "baseLayerID": -1, - "baseLayerMD5": "484e44f908e84d795c87cf994364e722.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 30 - }, - { - "costumeName": "story-Q-2", - "baseLayerID": -1, - "baseLayerMD5": "31f28be74dc7de42a5c4a38504d666ca.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 30 - }, - { - "costumeName": "story-Q-3", - "baseLayerID": -1, - "baseLayerMD5": "aef19097378515308e934a79f147032e.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 29 - } - ], - "currentCostumeIndex": 0, - "scratchX": 68, - "scratchY": 5, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "84a6dc992bce018a1eac9be0173ad917", + "name": "story-Q-1", + "bitmapResolution": 1, + "md5ext": "84a6dc992bce018a1eac9be0173ad917.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 30 + }, + { + "assetId": "efc27a91c30d6a511be4245e36684192", + "name": "story-Q-2", + "bitmapResolution": 1, + "md5ext": "efc27a91c30d6a511be4245e36684192.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 30 + }, + { + "assetId": "01acd1076994a4379a3fc9e034bc05fc", + "name": "story-Q-3", + "bitmapResolution": 1, + "md5ext": "01acd1076994a4379a3fc9e034bc05fc.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 29 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-R", - "md5": "55999cb6783ef8351d841294d75af942.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-R", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-R-1", - "baseLayerID": -1, - "baseLayerMD5": "55999cb6783ef8351d841294d75af942.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 26 - }, - { - "costumeName": "story-R-2", - "baseLayerID": -1, - "baseLayerMD5": "926f8ff770cb15b42b12f209fd02d98c.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 26 - }, - { - "costumeName": "story-R-3", - "baseLayerID": -1, - "baseLayerMD5": "a66d8f0ba6d40c624873edc8df58c014.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": 17, - "scratchY": 45, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "4f217b14a161fcd9590614b0733100ea", + "name": "story-R-1", + "bitmapResolution": 1, + "md5ext": "4f217b14a161fcd9590614b0733100ea.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 26 + }, + { + "assetId": "3c3f44aba3eff8856472e06b333a7201", + "name": "story-R-2", + "bitmapResolution": 1, + "md5ext": "3c3f44aba3eff8856472e06b333a7201.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 26 + }, + { + "assetId": "5c1d38d02ae9c4df7851a6e9d52f25b4", + "name": "story-R-3", + "bitmapResolution": 1, + "md5ext": "5c1d38d02ae9c4df7851a6e9d52f25b4.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-S", - "md5": "fca1555f335392f1c4ef620bf098c0de.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-S", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-S-1", - "baseLayerID": -1, - "baseLayerMD5": "fca1555f335392f1c4ef620bf098c0de.svg", - "bitmapResolution": 1, - "rotationCenterX": 16, - "rotationCenterY": 25 - }, - { - "costumeName": "story-S-2", - "baseLayerID": -1, - "baseLayerMD5": "c529ed7b40f4a949539f8f454e3fe475.svg", - "bitmapResolution": 1, - "rotationCenterX": 16, - "rotationCenterY": 25 - }, - { - "costumeName": "story-S-3", - "baseLayerID": -1, - "baseLayerMD5": "e96388c9197733bdadbad3ce014c0e59.svg", - "bitmapResolution": 1, - "rotationCenterX": 14, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": 67, - "scratchY": -26, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "47b9f910048ce4db93bdfbcd2638e19a", + "name": "story-S-1", + "bitmapResolution": 1, + "md5ext": "47b9f910048ce4db93bdfbcd2638e19a.svg", + "dataFormat": "svg", + "rotationCenterX": 16, + "rotationCenterY": 25 + }, + { + "assetId": "5a113fcacd35ababbf23c5a9289433d1", + "name": "story-S-2", + "bitmapResolution": 1, + "md5ext": "5a113fcacd35ababbf23c5a9289433d1.svg", + "dataFormat": "svg", + "rotationCenterX": 16, + "rotationCenterY": 25 + }, + { + "assetId": "fd2a94481c3ef0c223784b2f3c6df874", + "name": "story-S-3", + "bitmapResolution": 1, + "md5ext": "fd2a94481c3ef0c223784b2f3c6df874.svg", + "dataFormat": "svg", + "rotationCenterX": 14, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-T", - "md5": "d3b342c795a620b69639c02a419e8535.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-T", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-T-1", - "baseLayerID": -1, - "baseLayerMD5": "d3b342c795a620b69639c02a419e8535.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 27 - }, - { - "costumeName": "story-T-2", - "baseLayerID": -1, - "baseLayerMD5": "eeb0fd25c9273747ac38766d1959ba2b.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 27 - }, - { - "costumeName": "story-T-3", - "baseLayerID": -1, - "baseLayerMD5": "a9683d4946b08a76864a51bd21d811cb.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -77, - "scratchY": 44, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "001a2186db228fdd9bfbf3f15800bb63", + "name": "story-T-1", + "bitmapResolution": 1, + "md5ext": "001a2186db228fdd9bfbf3f15800bb63.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 27 + }, + { + "assetId": "b61e1ac30aa2f35d4fd8c23fab1f76ea", + "name": "story-T-2", + "bitmapResolution": 1, + "md5ext": "b61e1ac30aa2f35d4fd8c23fab1f76ea.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 27 + }, + { + "assetId": "66b22b0ff0a5c1c205a701316ab954cf", + "name": "story-T-3", + "bitmapResolution": 1, + "md5ext": "66b22b0ff0a5c1c205a701316ab954cf.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-U", - "md5": "fcf99b6e8aeb2d504e1e9b2194640916.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-U", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-U-1", - "baseLayerID": -1, - "baseLayerMD5": "fcf99b6e8aeb2d504e1e9b2194640916.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 26 - }, - { - "costumeName": "story-U-2", - "baseLayerID": -1, - "baseLayerMD5": "f442802f17225d6506ac9718810f179e.svg", - "bitmapResolution": 1, - "rotationCenterX": 24, - "rotationCenterY": 26 - }, - { - "costumeName": "story-U-3", - "baseLayerID": -1, - "baseLayerMD5": "0779f03a6589c60352b1d4806a4a61c0.svg", - "bitmapResolution": 1, - "rotationCenterX": 21, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": 39, - "scratchY": -7, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "cfb334b977b8f2a39aa56b1e0532829e", + "name": "story-U-1", + "bitmapResolution": 1, + "md5ext": "cfb334b977b8f2a39aa56b1e0532829e.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 26 + }, + { + "assetId": "51dd73c840ba3aca0f9770e13cb14fb3", + "name": "story-U-2", + "bitmapResolution": 1, + "md5ext": "51dd73c840ba3aca0f9770e13cb14fb3.svg", + "dataFormat": "svg", + "rotationCenterX": 24, + "rotationCenterY": 26 + }, + { + "assetId": "f6b7b4da5362fdac29d84f1fbf19e3f4", + "name": "story-U-3", + "bitmapResolution": 1, + "md5ext": "f6b7b4da5362fdac29d84f1fbf19e3f4.svg", + "dataFormat": "svg", + "rotationCenterX": 21, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-V", - "md5": "750b47f1de2143f76354239b27e1e5f0.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-V", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-V-1", - "baseLayerID": -1, - "baseLayerMD5": "750b47f1de2143f76354239b27e1e5f0.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 25 - }, - { - "costumeName": "story-V-2", - "baseLayerID": -1, - "baseLayerMD5": "03de7add77e31799ca568a9c671012b4.svg", - "bitmapResolution": 1, - "rotationCenterX": 25, - "rotationCenterY": 25 - }, - { - "costumeName": "story-V-3", - "baseLayerID": -1, - "baseLayerMD5": "29befe20b105b69471f5507d025ec3e0.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": 40, - "scratchY": -35, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "f27e7a4216665a6eab43fe9b4b5ec934", + "name": "story-V-1", + "bitmapResolution": 1, + "md5ext": "f27e7a4216665a6eab43fe9b4b5ec934.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 25 + }, + { + "assetId": "43a8993221848f90e9f37664e7832b4a", + "name": "story-V-2", + "bitmapResolution": 1, + "md5ext": "43a8993221848f90e9f37664e7832b4a.svg", + "dataFormat": "svg", + "rotationCenterX": 25, + "rotationCenterY": 25 + }, + { + "assetId": "d5c20886e3eb0ca0f5430c9482b1d832", + "name": "story-V-3", + "bitmapResolution": 1, + "md5ext": "d5c20886e3eb0ca0f5430c9482b1d832.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-W", - "md5": "7d9d4c0da9bd1a3ddf253d1bea26f4e9.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-W", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-W-1", - "baseLayerID": -1, - "baseLayerMD5": "7d9d4c0da9bd1a3ddf253d1bea26f4e9.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 25 - }, - { - "costumeName": "story-W-2", - "baseLayerID": -1, - "baseLayerMD5": "c0f48eb69cae4a611d3e7b7e06b0d1c1.svg", - "bitmapResolution": 1, - "rotationCenterX": 37, - "rotationCenterY": 25 - }, - { - "costumeName": "story-W-3", - "baseLayerID": -1, - "baseLayerMD5": "d1c922c9e9d53d2f6f36ca637e85de6b.svg", - "bitmapResolution": 1, - "rotationCenterX": 34, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -99, - "scratchY": 4, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "396e27d20d1a49edaa106ba6d667cedd", + "name": "story-W-1", + "bitmapResolution": 1, + "md5ext": "396e27d20d1a49edaa106ba6d667cedd.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 25 + }, + { + "assetId": "f21ba826cd88c376e868f079d6df273c", + "name": "story-W-2", + "bitmapResolution": 1, + "md5ext": "f21ba826cd88c376e868f079d6df273c.svg", + "dataFormat": "svg", + "rotationCenterX": 37, + "rotationCenterY": 25 + }, + { + "assetId": "528df57da4490f6da8c75da06a1367f5", + "name": "story-W-3", + "bitmapResolution": 1, + "md5ext": "528df57da4490f6da8c75da06a1367f5.svg", + "dataFormat": "svg", + "rotationCenterX": 34, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-X", - "md5": "92c452555b3d5a4993f107810043ea03.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-X", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-X-1", - "baseLayerID": -1, - "baseLayerMD5": "92c452555b3d5a4993f107810043ea03.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 26 - }, - { - "costumeName": "story-X-2", - "baseLayerID": -1, - "baseLayerMD5": "f688425da41c2b7f80d4b8752de69bc9.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 26 - }, - { - "costumeName": "story-X-3", - "baseLayerID": -1, - "baseLayerMD5": "ec90479a0ce3c7706f1916daef0f3c67.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": 65, - "scratchY": -5, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "db0c1a6499169aac6639a1a0076658ce", + "name": "story-X-1", + "bitmapResolution": 1, + "md5ext": "db0c1a6499169aac6639a1a0076658ce.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 26 + }, + { + "assetId": "ca4e3e84788bdeea42dd5ed952d5a66c", + "name": "story-X-2", + "bitmapResolution": 1, + "md5ext": "ca4e3e84788bdeea42dd5ed952d5a66c.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 26 + }, + { + "assetId": "04be1176e562eff16f1159f69945a82e", + "name": "story-X-3", + "bitmapResolution": 1, + "md5ext": "04be1176e562eff16f1159f69945a82e.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-Y", - "md5": "b3c252450d413fc75be0eafdbe4490dc.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-Y", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-Y-1", - "baseLayerID": -1, - "baseLayerMD5": "b3c252450d413fc75be0eafdbe4490dc.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 27 - }, - { - "costumeName": "story-Y-2", - "baseLayerID": -1, - "baseLayerMD5": "1cfa161ae5d60ea163e4e0aa34d08f02.svg", - "bitmapResolution": 1, - "rotationCenterX": 22, - "rotationCenterY": 27 - }, - { - "costumeName": "story-Y-3", - "baseLayerID": -1, - "baseLayerMD5": "a1fc3c0fa304255364c0f98547e0e448.svg", - "bitmapResolution": 1, - "rotationCenterX": 20, - "rotationCenterY": 24 - } - ], - "currentCostumeIndex": 0, - "scratchX": -77, - "scratchY": 31, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "59275f907633ce02074f787e5767bfde", + "name": "story-Y-1", + "bitmapResolution": 1, + "md5ext": "59275f907633ce02074f787e5767bfde.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 27 + }, + { + "assetId": "093a9410933f7d01f459f08bcb01735b", + "name": "story-Y-2", + "bitmapResolution": 1, + "md5ext": "093a9410933f7d01f459f08bcb01735b.svg", + "dataFormat": "svg", + "rotationCenterX": 22, + "rotationCenterY": 27 + }, + { + "assetId": "d7fabe2652c93dd1bf91d9064cf5a348", + "name": "story-Y-3", + "bitmapResolution": 1, + "md5ext": "d7fabe2652c93dd1bf91d9064cf5a348.svg", + "dataFormat": "svg", + "rotationCenterX": 20, + "rotationCenterY": 24 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} }, { "name": "Story-Z", - "md5": "86326c9180c485b557a075f4794939d7.svg", - "type": "sprite", "tags": [ "alphabet", "letters" ], - "info": [ - 0, - 3, - 1 - ], - "json": { - "objName": "Story-Z", - "sounds": [ - { - "soundName": "pop", - "soundID": -1, - "md5": "83a9787d4cb6f3b7632b4ddfebf74367.wav", - "sampleCount": 258, - "rate": 11025, - "format": "" - } - ], - "costumes": [ - { - "costumeName": "story-Z-1", - "baseLayerID": -1, - "baseLayerMD5": "86326c9180c485b557a075f4794939d7.svg", - "bitmapResolution": 1, - "rotationCenterX": 19, - "rotationCenterY": 26 - }, - { - "costumeName": "story-Z-2", - "baseLayerID": -1, - "baseLayerMD5": "e10b203e47bbb41edab78be59e628449.svg", - "bitmapResolution": 1, - "rotationCenterX": 19, - "rotationCenterY": 26 - }, - { - "costumeName": "story-Z-3", - "baseLayerID": -1, - "baseLayerMD5": "0788df7b1d9cf02dfdebc021d4f30ce4.svg", - "bitmapResolution": 1, - "rotationCenterX": 17, - "rotationCenterY": 23 - } - ], - "currentCostumeIndex": 0, - "scratchX": 4, - "scratchY": 9, - "scale": 1, - "direction": 90, - "rotationStyle": "normal", - "isDraggable": false, - "visible": true, - "spriteInfo": {} - } + "isStage": false, + "variables": {}, + "costumes": [ + { + "assetId": "34825a171f7b35962484fa53e99ff632", + "name": "story-Z-1", + "bitmapResolution": 1, + "md5ext": "34825a171f7b35962484fa53e99ff632.svg", + "dataFormat": "svg", + "rotationCenterX": 19, + "rotationCenterY": 26 + }, + { + "assetId": "23c24dbee23b1545afa8ee15ed339327", + "name": "story-Z-2", + "bitmapResolution": 1, + "md5ext": "23c24dbee23b1545afa8ee15ed339327.svg", + "dataFormat": "svg", + "rotationCenterX": 19, + "rotationCenterY": 26 + }, + { + "assetId": "665db4c356d7e010fa8d71cc291834e3", + "name": "story-Z-3", + "bitmapResolution": 1, + "md5ext": "665db4c356d7e010fa8d71cc291834e3.svg", + "dataFormat": "svg", + "rotationCenterX": 17, + "rotationCenterY": 23 + } + ], + "sounds": [ + { + "assetId": "83a9787d4cb6f3b7632b4ddfebf74367", + "name": "pop", + "dataFormat": "wav", + "format": "", + "rate": 44100, + "sampleCount": 1032, + "md5ext": "83a9787d4cb6f3b7632b4ddfebf74367.wav" + } + ], + "blocks": {} } -] +] \ No newline at end of file diff --git a/src/lib/make-toolbox-xml.js b/src/lib/make-toolbox-xml.js index 79cf35cc25e..8d356e442d9 100644 --- a/src/lib/make-toolbox-xml.js +++ b/src/lib/make-toolbox-xml.js @@ -1,16 +1,19 @@ import ScratchBlocks from 'scratch-blocks'; +import {defaultColors} from './themes'; const categorySeparator = ''; const blockSeparator = ''; // At default scale, about 28px -const motion = function (isStage, targetId) { +/* eslint-disable no-unused-vars */ +const motion = function (isInitialSetup, isStage, targetId, colors) { const stageSelected = ScratchBlocks.ScratchMsgs.translate( 'MOTION_STAGE_SELECTED', 'Stage selected: no motion blocks' ); + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` - + ${isStage ? ` ` : ` @@ -150,11 +153,12 @@ const xmlEscape = function (unsafe) { }); }; -const looks = function (isStage, targetId, costumeName, backdropName) { +const looks = function (isInitialSetup, isStage, targetId, costumeName, backdropName, colors) { const hello = ScratchBlocks.ScratchMsgs.translate('LOOKS_HELLO', 'Hello!'); const hmm = ScratchBlocks.ScratchMsgs.translate('LOOKS_HMM', 'Hmm...'); + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` - + ${isStage ? '' : ` @@ -287,9 +291,10 @@ const looks = function (isStage, targetId, costumeName, backdropName) { `; }; -const sound = function (isStage, targetId, soundName) { +const sound = function (isInitialSetup, isStage, targetId, soundName, colors) { + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` - + @@ -342,9 +347,10 @@ const sound = function (isStage, targetId, soundName) { `; }; -const events = function (isStage) { +const events = function (isInitialSetup, isStage, targetId, colors) { + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` - + @@ -381,9 +387,14 @@ const events = function (isStage) { `; }; -const control = function (isStage) { +const control = function (isInitialSetup, isStage, targetId, colors) { + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` - + @@ -428,10 +439,15 @@ const control = function (isStage) { `; }; -const sensing = function (isStage) { +const sensing = function (isInitialSetup, isStage, targetId, colors) { const name = ScratchBlocks.ScratchMsgs.translate('SENSING_ASK_TEXT', 'What\'s your name?'); + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` - + ${isStage ? '' : ` @@ -458,13 +474,15 @@ const sensing = function (isStage) { ${blockSeparator} `} - - - - ${name} - - - + ${isInitialSetup ? '' : ` + + + + ${name} + + + + `} ${blockSeparator} @@ -501,12 +519,17 @@ const sensing = function (isStage) { `; }; -const operators = function () { +const operators = function (isInitialSetup, isStage, targetId, colors) { const apple = ScratchBlocks.ScratchMsgs.translate('OPERATORS_JOIN_APPLE', 'apple'); const banana = ScratchBlocks.ScratchMsgs.translate('OPERATORS_JOIN_BANANA', 'banana'); const letter = ScratchBlocks.ScratchMsgs.translate('OPERATORS_LETTEROF_APPLE', 'a'); + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` - + @@ -610,49 +633,51 @@ const operators = function () { ${blockSeparator} - - - - ${apple} - - - - - ${banana} - - - - - - - 1 - - - + ${isInitialSetup ? '' : ` + + + + ${apple} + + + + + ${banana} + + + + + + + 1 + + + + + ${apple} + + + + + + + ${apple} + + + + + - ${apple} + ${apple} - - - - + + - ${apple} + ${letter} - - - - - - ${apple} - - - - - ${letter} - - - + + + `} ${blockSeparator} @@ -686,35 +711,41 @@ const operators = function () { `; }; -const variables = function () { +const variables = function (isInitialSetup, isStage, targetId, colors) { + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` `; }; -const myBlocks = function () { +const myBlocks = function (isInitialSetup, isStage, targetId, colors) { + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. return ` `; }; +/* eslint-enable no-unused-vars */ const xmlOpen = ''; const xmlClose = ''; /** - * @param {!boolean} isStage - Whether the toolbox is for a stage-type target. + * @param {!boolean} isInitialSetup - Whether the toolbox is for initial setup. If the mode is "initial setup", + * blocks with localized default parameters (e.g. ask and wait) should not be loaded. (LLK/scratch-gui#5445) + * @param {?boolean} isStage - Whether the toolbox is for a stage-type target. This is always set to true + * when isInitialSetup is true. * @param {?string} targetId - The current editing target * @param {?Array.} categoriesXML - optional array of `{id,xml}` for categories. This can include both core * and other extensions: core extensions will be placed in the normal Scratch order; others will go at the bottom. @@ -723,10 +754,12 @@ const xmlClose = ''; * @param {?string} costumeName - The name of the default selected costume dropdown. * @param {?string} backdropName - The name of the default selected backdrop dropdown. * @param {?string} soundName - The name of the default selected sound dropdown. + * @param {?object} colors - The colors for the theme. * @returns {string} - a ScratchBlocks-style XML document for the contents of the toolbox. */ -const makeToolboxXML = function (isStage, targetId, categoriesXML = [], - costumeName = '', backdropName = '', soundName = '') { +const makeToolboxXML = function (isInitialSetup, isStage = true, targetId, categoriesXML = [], + costumeName = '', backdropName = '', soundName = '', colors = defaultColors) { + isStage = isInitialSetup || isStage; const gap = [categorySeparator]; costumeName = xmlEscape(costumeName); @@ -743,15 +776,16 @@ const makeToolboxXML = function (isStage, targetId, categoriesXML = [], } // return `undefined` }; - const motionXML = moveCategory('motion') || motion(isStage, targetId); - const looksXML = moveCategory('looks') || looks(isStage, targetId, costumeName, backdropName); - const soundXML = moveCategory('sound') || sound(isStage, targetId, soundName); - const eventsXML = moveCategory('event') || events(isStage, targetId); - const controlXML = moveCategory('control') || control(isStage, targetId); - const sensingXML = moveCategory('sensing') || sensing(isStage, targetId); - const operatorsXML = moveCategory('operators') || operators(isStage, targetId); - const variablesXML = moveCategory('data') || variables(isStage, targetId); - const myBlocksXML = moveCategory('procedures') || myBlocks(isStage, targetId); + const motionXML = moveCategory('motion') || motion(isInitialSetup, isStage, targetId, colors.motion); + const looksXML = moveCategory('looks') || + looks(isInitialSetup, isStage, targetId, costumeName, backdropName, colors.looks); + const soundXML = moveCategory('sound') || sound(isInitialSetup, isStage, targetId, soundName, colors.sounds); + const eventsXML = moveCategory('event') || events(isInitialSetup, isStage, targetId, colors.event); + const controlXML = moveCategory('control') || control(isInitialSetup, isStage, targetId, colors.control); + const sensingXML = moveCategory('sensing') || sensing(isInitialSetup, isStage, targetId, colors.sensing); + const operatorsXML = moveCategory('operators') || operators(isInitialSetup, isStage, targetId, colors.operators); + const variablesXML = moveCategory('data') || variables(isInitialSetup, isStage, targetId, colors.data); + const myBlocksXML = moveCategory('procedures') || myBlocks(isInitialSetup, isStage, targetId, colors.more); const everything = [ xmlOpen, diff --git a/src/lib/microbit-update.js b/src/lib/microbit-update.js new file mode 100644 index 00000000000..f4230ddb54a --- /dev/null +++ b/src/lib/microbit-update.js @@ -0,0 +1,165 @@ +import { + isUniversalHex, + separateUniversalHex +} from '@microbit/microbit-universal-hex'; +import {WebUSB, DAPLink} from 'dapjs'; +import keyMirror from 'keymirror'; + +import log from './log.js'; + +import hexUrl from '../generated/microbit-hex-url.cjs'; + +/** + * @typedef {import('@microbit/microbit-universal-hex').IndividualHex} IndividualHex + */ + +/** + * The version of a micro:bit. + * @enum {string} + */ +const DeviceVersion = keyMirror({ + V1: null, + V2: null +}); + +const vendorId = 0x0d28; +const productId = 0x0204; + +/** + * Assumes the device is a micro:bit and determines its version. + * @param {USBDevice} device The USB device to check. + * @returns {DeviceVersion} The version of the device. + * @throws {Error} If the device is not a recognized micro:bit. + */ +const getDeviceVersion = device => { + const microBitBoardId = device?.serialNumber?.substring(0, 4) ?? ''; + switch (microBitBoardId) { + case '9900': + case '9901': + return DeviceVersion.V1; + case '9903': + case '9904': + case '9905': + case '9906': + return DeviceVersion.V2; + } + + throw new Error('Could not identify micro:bit board version'); +}; + +/** + * Checks micro:bit board version targetted by the hex file. + * @param {IndividualHex} hex The hex file to check. + * @returns {DeviceVersion} The version of the hex file. + * @throws {Error} If the hex file does not target a recognized micro:bit version. + */ +const getHexVersion = hex => { + switch (hex.boardId) { + case 0x9900: + case 0x9901: + return DeviceVersion.V1; + case 0x9903: + case 0x9904: + case 0x9905: + case 0x9906: + return DeviceVersion.V2; + } + + throw new Error('Could not identify hex version'); +}; + +/** + * Fetches the hex file and returns a map of micro:bit versions to hex file contents. + * @returns {Promise>} A map of micro:bit versions to hex file contents. + * @throws {Error} If the fetch fails or cannot be interpreted as text. + * @throws {Error} If the hex file is not in universal format. + */ +const getHexMap = async () => { + const response = await fetch(hexUrl); + const hex = await response.text(); + + if (!isUniversalHex(hex)) { + throw new Error('Hex file must be in universal format'); + } + + const hexMap = new Map(); + + for (const hexObj of separateUniversalHex(hex)) { + const version = getHexVersion(hexObj); + const binary = new TextEncoder().encode(hex); + hexMap.set(version, binary); + } + + return hexMap; +}; + +/** + * Copy the Scratch-specific hex file to the specified micro:bit. + * @param {USBDevice} device The micro:bit to update. + * @param {function(number): void} [progress] Optional function to call with progress updates in the range of [0..1]. + * @returns {Promise} A Promise that resolves when the update is completed. + * @throws {Error} If anything goes wrong while fetching the hex file or updating the micro:bit. + */ +const updateMicroBit = async (device, progress) => { + log.info(`Connecting to micro:bit`); + const transport = new WebUSB(device); + const target = new DAPLink(transport); + if (progress) { + target.on(DAPLink.EVENT_PROGRESS, progress); + } + log.info(`Checking micro:bit version`); + const version = getDeviceVersion(device); + log.info(`Collecting hex file`); + const hexMap = await getHexMap(); + const hexData = hexMap.get(version); + if (!hexData) { + throw new Error(`Could not find hex file for micro:bit ${version}`); + } + log.info(`Connecting to micro:bit ${version}`); + await target.connect(); + log.info(`Sending hex file...`); + try { + await target.flash(hexData); + } finally { + log.info('Disconnecting'); + if (target.connected) { + await target.disconnect(); + } else { + log.info('Already disconnected'); + } + } +}; + +/** + * Requests a micro:bit from the browser then updates it with the Scratch-specific hex file. + * The browser is expected to prompt the user to select a micro:bit. + * @param {function(number): void} [progress] Optional function to call with progress updates in the range of [0..1]. + * @returns {Promise} A Promise that resolves when the update is completed. + * @throws {Error} If anything goes wrong while fetching the hex file or updating the micro:bit. + */ +const selectAndUpdateMicroBit = async progress => { + log.info('Selecting micro:bit'); + + const device = await navigator.usb.requestDevice({ + filters: [{vendorId, productId}] + }); + + if (!device) { + log.info('No device selected'); + return; + } + + return updateMicroBit(device, progress); +}; + +/** + * Checks if the browser supports updating a micro:bit. + * @returns {boolean} True if the browser appears to support updating a micro:bit. + */ +const isMicroBitUpdateSupported = () => + !!(navigator.usb && navigator.usb.requestDevice); + +export { + isMicroBitUpdateSupported, + selectAndUpdateMicroBit +}; diff --git a/src/lib/project-fetcher-hoc.jsx b/src/lib/project-fetcher-hoc.jsx index 3f461371989..11d16a7ccd5 100644 --- a/src/lib/project-fetcher-hoc.jsx +++ b/src/lib/project-fetcher-hoc.jsx @@ -36,6 +36,7 @@ const ProjectFetcherHOC = function (WrappedComponent) { 'fetchProject' ]); storage.setProjectHost(props.projectHost); + storage.setProjectToken(props.projectToken); storage.setAssetHost(props.assetHost); storage.setTranslatorFunction(props.intl.formatMessage); // props.projectId might be unset, in which case we use our default; @@ -54,6 +55,9 @@ const ProjectFetcherHOC = function (WrappedComponent) { if (prevProps.projectHost !== this.props.projectHost) { storage.setProjectHost(this.props.projectHost); } + if (prevProps.projectToken !== this.props.projectToken) { + storage.setProjectToken(this.props.projectToken); + } if (prevProps.assetHost !== this.props.assetHost) { storage.setAssetHost(this.props.assetHost); } @@ -125,6 +129,7 @@ const ProjectFetcherHOC = function (WrappedComponent) { onFetchedProjectData: PropTypes.func, onProjectUnchanged: PropTypes.func, projectHost: PropTypes.string, + projectToken: PropTypes.string, projectId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), reduxProjectId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), setProjectId: PropTypes.func diff --git a/src/lib/project-saver-hoc.jsx b/src/lib/project-saver-hoc.jsx index dc3ee65cbc0..3f1dc997f5f 100644 --- a/src/lib/project-saver-hoc.jsx +++ b/src/lib/project-saver-hoc.jsx @@ -251,6 +251,7 @@ const ProjectSaverHOC = function (WrappedComponent) { if (id && this.props.onUpdateProjectThumbnail) { this.storeProjectThumbnail(id); } + this.reportTelemetryEvent('projectDidSave'); return response; }) .catch(err => { @@ -291,9 +292,15 @@ const ProjectSaverHOC = function (WrappedComponent) { */ // TODO make a telemetry HOC and move this stuff there reportTelemetryEvent (event) { - if (this.props.onProjectTelemetryEvent) { - const metadata = collectMetadata(this.props.vm, this.props.reduxProjectTitle, this.props.locale); - this.props.onProjectTelemetryEvent(event, metadata); + try { + if (this.props.onProjectTelemetryEvent) { + const metadata = collectMetadata(this.props.vm, this.props.reduxProjectTitle, this.props.locale); + this.props.onProjectTelemetryEvent(event, metadata); + } + } catch (e) { + log.error('Telemetry error', event, e); + // This is intentionally fire/forget because a failure + // to report telemetry should not block saving } } @@ -391,7 +398,7 @@ const ProjectSaverHOC = function (WrappedComponent) { vm: PropTypes.instanceOf(VM).isRequired }; ProjectSaverComponent.defaultProps = { - autoSaveIntervalSecs: 120, + autoSaveIntervalSecs: 600, // 10 minutes = 600 seconds onRemixing: () => {}, onSetProjectThumbnailer: () => {}, onSetProjectSaver: () => {}, @@ -433,7 +440,7 @@ const ProjectSaverHOC = function (WrappedComponent) { onShowCreatingRemixAlert: () => showAlertWithTimeout(dispatch, 'creatingRemix'), onShowSaveSuccessAlert: () => showAlertWithTimeout(dispatch, 'saveSuccess'), onShowSavingAlert: () => showAlertWithTimeout(dispatch, 'saving'), - onUpdatedProject: (projectId, loadingState) => dispatch(doneUpdatingProject(projectId, loadingState)), + onUpdatedProject: loadingState => dispatch(doneUpdatingProject(loadingState)), setAutoSaveTimeoutId: id => dispatch(setAutoSaveTimeoutId(id)) }); // Allow incoming props to override redux-provided props. Used to mock in tests. diff --git a/src/lib/randomize-sprite-position.js b/src/lib/randomize-sprite-position.js index bd4c55eb964..9d29980c63e 100644 --- a/src/lib/randomize-sprite-position.js +++ b/src/lib/randomize-sprite-position.js @@ -1,16 +1,7 @@ const randomizeSpritePosition = spriteObject => { // https://github.com/LLK/scratch-flash/blob/689f3c79a7e8b2e98f5be80056d877f303a8d8ba/src/Scratch.as#L1385 - const randomX = Math.floor((200 * Math.random()) - 100); - const randomY = Math.floor((100 * Math.random()) - 50); - if (spriteObject.hasOwnProperty('json')) { - // Library sprite object - spriteObject.json.scratchX = randomX; - spriteObject.json.scratchY = randomY; - } else if (spriteObject.hasOwnProperty('x') && spriteObject.hasOwnProperty('y')) { - // Scratch 3 sprite object - spriteObject.x = randomX; - spriteObject.y = randomY; - } + spriteObject.x = Math.floor((200 * Math.random()) - 100); + spriteObject.y = Math.floor((100 * Math.random()) - 50); }; export default randomizeSpritePosition; diff --git a/src/lib/save-project-to-server.js b/src/lib/save-project-to-server.js index 2584923e60d..74e01b4b61a 100644 --- a/src/lib/save-project-to-server.js +++ b/src/lib/save-project-to-server.js @@ -25,10 +25,10 @@ export default function (projectId, vmState, params) { }; const creatingProject = projectId === null || typeof projectId === 'undefined'; const queryParams = {}; - if (params.hasOwnProperty('originalId')) queryParams.original_id = params.originalId; - if (params.hasOwnProperty('isCopy')) queryParams.is_copy = params.isCopy; - if (params.hasOwnProperty('isRemix')) queryParams.is_remix = params.isRemix; - if (params.hasOwnProperty('title')) queryParams.title = params.title; + if (Object.prototype.hasOwnProperty.call(params, 'originalId')) queryParams.original_id = params.originalId; + if (Object.prototype.hasOwnProperty.call(params, 'isCopy')) queryParams.is_copy = params.isCopy; + if (Object.prototype.hasOwnProperty.call(params, 'isRemix')) queryParams.is_remix = params.isRemix; + if (Object.prototype.hasOwnProperty.call(params, 'title')) queryParams.title = params.title; let qs = queryString.stringify(queryParams); if (qs) qs = `?${qs}`; if (creatingProject) { diff --git a/src/lib/sb-file-uploader-hoc.jsx b/src/lib/sb-file-uploader-hoc.jsx new file mode 100644 index 00000000000..f757a37a12e --- /dev/null +++ b/src/lib/sb-file-uploader-hoc.jsx @@ -0,0 +1,273 @@ +import bindAll from 'lodash.bindall'; +import React from 'react'; +import PropTypes from 'prop-types'; +import {defineMessages, intlShape, injectIntl} from 'react-intl'; +import {connect} from 'react-redux'; +import log from '../lib/log'; +import sharedMessages from './shared-messages'; + +import { + LoadingStates, + getIsLoadingUpload, + getIsShowingWithoutId, + onLoadedProject, + requestProjectUpload +} from '../reducers/project-state'; +import {setProjectTitle} from '../reducers/project-title'; +import { + openLoadingProject, + closeLoadingProject +} from '../reducers/modals'; +import { + closeFileMenu +} from '../reducers/menus'; + +const messages = defineMessages({ + loadError: { + id: 'gui.projectLoader.loadError', + defaultMessage: 'The project file that was selected failed to load.', + description: 'An error that displays when a local project file fails to load.' + } +}); + +/** + * Higher Order Component to provide behavior for loading local project files into editor. + * @param {React.Component} WrappedComponent the component to add project file loading functionality to + * @returns {React.Component} WrappedComponent with project file loading functionality added + * + * + * + * + */ +const SBFileUploaderHOC = function (WrappedComponent) { + class SBFileUploaderComponent extends React.Component { + constructor (props) { + super(props); + bindAll(this, [ + 'createFileObjects', + 'getProjectTitleFromFilename', + 'handleFinishedLoadingUpload', + 'handleStartSelectingFileUpload', + 'handleChange', + 'onload', + 'removeFileObjects' + ]); + } + componentDidUpdate (prevProps) { + if (this.props.isLoadingUpload && !prevProps.isLoadingUpload) { + this.handleFinishedLoadingUpload(); // cue step 5 below + } + } + componentWillUnmount () { + this.removeFileObjects(); + } + // step 1: this is where the upload process begins + handleStartSelectingFileUpload () { + this.createFileObjects(); // go to step 2 + } + // step 2: create a FileReader and an element, and issue a + // pseudo-click to it. That will open the file chooser dialog. + createFileObjects () { + // redo step 7, in case it got skipped last time and its objects are + // still in memory + this.removeFileObjects(); + // create fileReader + this.fileReader = new FileReader(); + this.fileReader.onload = this.onload; + // create element and add it to DOM + this.inputElement = document.createElement('input'); + this.inputElement.accept = '.sb,.sb2,.sb3'; + this.inputElement.style = 'display: none;'; + this.inputElement.type = 'file'; + this.inputElement.onchange = this.handleChange; // connects to step 3 + document.body.appendChild(this.inputElement); + // simulate a click to open file chooser dialog + this.inputElement.click(); + } + // step 3: user has picked a file using the file chooser dialog. + // We don't actually load the file here, we only decide whether to do so. + handleChange (e) { + const { + intl, + isShowingWithoutId, + loadingState, + projectChanged, + userOwnsProject + } = this.props; + const thisFileInput = e.target; + if (thisFileInput.files) { // Don't attempt to load if no file was selected + this.fileToUpload = thisFileInput.files[0]; + + // If user owns the project, or user has changed the project, + // we must confirm with the user that they really intend to + // replace it. (If they don't own the project and haven't + // changed it, no need to confirm.) + let uploadAllowed = true; + if (userOwnsProject || (projectChanged && isShowingWithoutId)) { + uploadAllowed = confirm( // eslint-disable-line no-alert + intl.formatMessage(sharedMessages.replaceProjectWarning) + ); + } + if (uploadAllowed) { + // cues step 4 + this.props.requestProjectUpload(loadingState); + } else { + // skips ahead to step 7 + this.removeFileObjects(); + } + this.props.closeFileMenu(); + } + } + // step 4 is below, in mapDispatchToProps + + // step 5: called from componentDidUpdate when project state shows + // that project data has finished "uploading" into the browser + handleFinishedLoadingUpload () { + if (this.fileToUpload && this.fileReader) { + // begin to read data from the file. When finished, + // cues step 6 using the reader's onload callback + this.fileReader.readAsArrayBuffer(this.fileToUpload); + } else { + this.props.cancelFileUpload(this.props.loadingState); + // skip ahead to step 7 + this.removeFileObjects(); + } + } + // used in step 6 below + getProjectTitleFromFilename (fileInputFilename) { + if (!fileInputFilename) return ''; + // only parse title with valid scratch project extensions + // (.sb, .sb2, and .sb3) + const matches = fileInputFilename.match(/^(.*)\.sb[23]?$/); + if (!matches) return ''; + return matches[1].substring(0, 100); // truncate project title to max 100 chars + } + // step 6: attached as a handler on our FileReader object; called when + // file upload raw data is available in the reader + onload () { + if (this.fileReader) { + this.props.onLoadingStarted(); + const filename = this.fileToUpload && this.fileToUpload.name; + let loadingSuccess = false; + this.props.vm.loadProject(this.fileReader.result) + .then(() => { + if (filename) { + const uploadedProjectTitle = this.getProjectTitleFromFilename(filename); + this.props.onSetProjectTitle(uploadedProjectTitle); + } + loadingSuccess = true; + }) + .catch(error => { + log.warn(error); + alert(this.props.intl.formatMessage(messages.loadError)); // eslint-disable-line no-alert + }) + .then(() => { + this.props.onLoadingFinished(this.props.loadingState, loadingSuccess); + // go back to step 7: whether project loading succeeded + // or failed, reset file objects + this.removeFileObjects(); + }); + } + } + // step 7: remove the element from the DOM and clear reader and + // fileToUpload reference, so those objects can be garbage collected + removeFileObjects () { + if (this.inputElement) { + this.inputElement.value = null; + document.body.removeChild(this.inputElement); + } + this.inputElement = null; + this.fileReader = null; + this.fileToUpload = null; + } + render () { + const { + /* eslint-disable no-unused-vars */ + cancelFileUpload, + closeFileMenu: closeFileMenuProp, + isLoadingUpload, + isShowingWithoutId, + loadingState, + onLoadingFinished, + onLoadingStarted, + onSetProjectTitle, + projectChanged, + requestProjectUpload: requestProjectUploadProp, + userOwnsProject, + /* eslint-enable no-unused-vars */ + ...componentProps + } = this.props; + return ( + + + + ); + } + } + + SBFileUploaderComponent.propTypes = { + canSave: PropTypes.bool, + cancelFileUpload: PropTypes.func, + closeFileMenu: PropTypes.func, + intl: intlShape.isRequired, + isLoadingUpload: PropTypes.bool, + isShowingWithoutId: PropTypes.bool, + loadingState: PropTypes.oneOf(LoadingStates), + onLoadingFinished: PropTypes.func, + onLoadingStarted: PropTypes.func, + onSetProjectTitle: PropTypes.func, + projectChanged: PropTypes.bool, + requestProjectUpload: PropTypes.func, + userOwnsProject: PropTypes.bool, + vm: PropTypes.shape({ + loadProject: PropTypes.func + }) + }; + const mapStateToProps = (state, ownProps) => { + const loadingState = state.scratchGui.projectState.loadingState; + const user = state.session && state.session.session && state.session.session.user; + return { + isLoadingUpload: getIsLoadingUpload(loadingState), + isShowingWithoutId: getIsShowingWithoutId(loadingState), + loadingState: loadingState, + projectChanged: state.scratchGui.projectChanged, + userOwnsProject: ownProps.authorUsername && user && + (ownProps.authorUsername === user.username), + vm: state.scratchGui.vm + }; + }; + const mapDispatchToProps = (dispatch, ownProps) => ({ + cancelFileUpload: loadingState => dispatch(onLoadedProject(loadingState, false, false)), + closeFileMenu: () => dispatch(closeFileMenu()), + // transition project state from loading to regular, and close + // loading screen and file menu + onLoadingFinished: (loadingState, success) => { + dispatch(onLoadedProject(loadingState, ownProps.canSave, success)); + dispatch(closeLoadingProject()); + dispatch(closeFileMenu()); + }, + // show project loading screen + onLoadingStarted: () => dispatch(openLoadingProject()), + onSetProjectTitle: title => dispatch(setProjectTitle(title)), + // step 4: transition the project state so we're ready to handle the new + // project data. When this is done, the project state transition will be + // noticed by componentDidUpdate() + requestProjectUpload: loadingState => dispatch(requestProjectUpload(loadingState)) + }); + // Allow incoming props to override redux-provided props. Used to mock in tests. + const mergeProps = (stateProps, dispatchProps, ownProps) => Object.assign( + {}, stateProps, dispatchProps, ownProps + ); + return injectIntl(connect( + mapStateToProps, + mapDispatchToProps, + mergeProps + )(SBFileUploaderComponent)); +}; + +export { + SBFileUploaderHOC as default +}; diff --git a/src/lib/sortable-hoc.jsx b/src/lib/sortable-hoc.jsx index eb971d0c090..652bcaec07a 100644 --- a/src/lib/sortable-hoc.jsx +++ b/src/lib/sortable-hoc.jsx @@ -24,8 +24,8 @@ const SortableHOC = function (WrappedComponent) { if (newProps.dragInfo.dragging && !this.props.dragInfo.dragging) { // Drag just started, snapshot the sorted bounding boxes for sortables. this.boxes = this.sortableRefs.map(el => el && el.getBoundingClientRect()); - this.boxes.sort((a, b) => { // Sort top-to-bottom, left-to-right. - if (a.top === b.top) return a.left - b.left; + this.boxes.sort((a, b) => { // Sort top-to-bottom, left-to-right (in LTR) / right-to-left (in RTL). + if (a.top === b.top) return (a.left - b.left) * (this.props.isRtl ? -1 : 1); return a.top - b.top; }); if (!this.ref) { @@ -82,7 +82,7 @@ const SortableHOC = function (WrappedComponent) { mouseOverIndex = 0; } else { mouseOverIndex = indexForPositionOnList( - this.props.dragInfo.currentOffset, this.boxes); + this.props.dragInfo.currentOffset, this.boxes, this.props.isRtl); } } } @@ -125,11 +125,13 @@ const SortableHOC = function (WrappedComponent) { name: PropTypes.string.isRequired })), onClose: PropTypes.func, - onDrop: PropTypes.func + onDrop: PropTypes.func, + isRtl: PropTypes.bool }; const mapStateToProps = state => ({ - dragInfo: state.scratchGui.assetDrag + dragInfo: state.scratchGui.assetDrag, + isRtl: state.locales.isRtl }); const mapDispatchToProps = () => ({}); diff --git a/src/lib/storage.js b/src/lib/storage.js index a3f240685cb..0fc0516a412 100644 --- a/src/lib/storage.js +++ b/src/lib/storage.js @@ -1,4 +1,4 @@ -import ScratchStorage from 'scratch-storage'; +import {ScratchStorage} from 'scratch-storage'; import defaultProject from './default-project'; @@ -35,8 +35,13 @@ class Storage extends ScratchStorage { setProjectHost (projectHost) { this.projectHost = projectHost; } + setProjectToken (projectToken) { + this.projectToken = projectToken; + } getProjectGetConfig (projectAsset) { - return `${this.projectHost}/${projectAsset.assetId}`; + const path = `${this.projectHost}/${projectAsset.assetId}`; + const qs = this.projectToken ? `?token=${this.projectToken}` : ''; + return path + qs; } getProjectCreateConfig () { return { diff --git a/src/lib/supported-browser.js b/src/lib/supported-browser.js index 6f5ac8bac8b..a07d0c9a50d 100644 --- a/src/lib/supported-browser.js +++ b/src/lib/supported-browser.js @@ -26,7 +26,9 @@ const supportedBrowser = () => { * always returns false */ -const recommendedBrowser = () => !bowser.isUnsupportedBrowser(minVersions, true); +const recommendedBrowser = () => + !bowser.isUnsupportedBrowser(minVersions, true) || + window.navigator.userAgent.toLowerCase().indexOf('googlebot') !== -1; export { supportedBrowser as default, diff --git a/src/lib/system-preferences-hoc.jsx b/src/lib/system-preferences-hoc.jsx new file mode 100644 index 00000000000..982a761ca9c --- /dev/null +++ b/src/lib/system-preferences-hoc.jsx @@ -0,0 +1,64 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import {connect} from 'react-redux'; + +import {setTheme} from '../reducers/theme'; +import {detectTheme} from './themes/themePersistance'; + +// Dark mode is not yet supported +// const prefersDarkQuery = '(prefers-color-scheme: dark)'; +const prefersHighContrastQuery = '(prefers-contrast: more)'; + +const systemPreferencesHOC = function (WrappedComponent) { + class SystemPreferences extends React.Component { + componentDidMount () { + this.preferencesListener = () => this.props.onSetTheme(detectTheme()); + + if (window.matchMedia) { + this.highContrastMatchMedia = window.matchMedia(prefersHighContrastQuery); + if (this.highContrastMatchMedia) { + if (this.highContrastMatchMedia.addEventListener) { + this.highContrastMatchMedia.addEventListener('change', this.preferencesListener); + } else { + this.highContrastMatchMedia.addListener(this.preferencesListener); + } + } + } + } + + componentWillUnmount () { + if (this.highContrastMatchMedia) { + if (this.highContrastMatchMedia.removeEventListener) { + this.highContrastMatchMedia.removeEventListener('change', this.preferencesListener); + } else { + this.highContrastMatchMedia.removeListener(this.preferencesListener); + } + } + } + + render () { + const { + /* eslint-disable no-unused-vars */ + onSetTheme, + /* eslint-enable no-unused-vars */ + ...props + } = this.props; + return ; + } + } + + SystemPreferences.propTypes = { + onSetTheme: PropTypes.func + }; + + const mapDispatchToProps = dispatch => ({ + onSetTheme: theme => dispatch(setTheme(theme)) + }); + + return connect( + null, + mapDispatchToProps + )(SystemPreferences); +}; + +export default systemPreferencesHOC; diff --git a/src/lib/themes/blockHelpers.js b/src/lib/themes/blockHelpers.js new file mode 100644 index 00000000000..b201241eebb --- /dev/null +++ b/src/lib/themes/blockHelpers.js @@ -0,0 +1,104 @@ +import {DEFAULT_THEME, getColorsForTheme, themeMap} from '.'; + +const getBlockIconURI = extensionIcons => { + if (!extensionIcons) return null; + + return extensionIcons.blockIconURI || extensionIcons.menuIconURI; +}; + +const getCategoryIconURI = extensionIcons => { + if (!extensionIcons) return null; + + return extensionIcons.menuIconURI || extensionIcons.blockIconURI; +}; + +// scratch-blocks colours has a pen property that scratch-gui uses for all extensions +const getExtensionColors = theme => getColorsForTheme(theme).pen; + +/** + * Applies extension color theme to categories. + * No changes are applied if called with the default theme, allowing extensions to provide their own colors. + * These colors are not seen if the category provides a blockIconURI. + * @param {Array.} dynamicBlockXML - XML for each category of extension blocks, returned from getBlocksXML + * in the vm runtime. + * @param {string} theme - Theme name + * @returns {Array.} Dynamic block XML updated with colors. + */ +const injectExtensionCategoryTheme = (dynamicBlockXML, theme) => { + // Don't do any manipulation for the default theme + if (theme === DEFAULT_THEME) return dynamicBlockXML; + + const extensionColors = getExtensionColors(theme); + const extensionIcons = themeMap[theme].extensions; + const parser = new DOMParser(); + const serializer = new XMLSerializer(); + + return dynamicBlockXML.map(extension => { + const dom = parser.parseFromString(extension.xml, 'text/xml'); + + dom.documentElement.setAttribute('colour', extensionColors.primary); + // Note: the category's secondaryColour matches up with the blocks' tertiary color, both used for border color. + dom.documentElement.setAttribute('secondaryColour', extensionColors.tertiary); + + const categoryIconURI = getCategoryIconURI(extensionIcons[extension.id]); + if (categoryIconURI) { + dom.documentElement.setAttribute('iconURI', categoryIconURI); + } + + return { + ...extension, + xml: serializer.serializeToString(dom) + }; + }); +}; + +const injectBlockIcons = (blockInfoJson, theme) => { + // Block icons are the first element of `args0` + if (!blockInfoJson.args0 || blockInfoJson.args0.length < 1 || + blockInfoJson.args0[0].type !== 'field_image') return blockInfoJson; + + const extensionIcons = themeMap[theme].extensions; + const extensionId = blockInfoJson.type.substring(0, blockInfoJson.type.indexOf('_')); + const blockIconURI = getBlockIconURI(extensionIcons[extensionId]); + + if (!blockIconURI) return blockInfoJson; + + return { + ...blockInfoJson, + args0: blockInfoJson.args0.map((value, index) => { + if (index !== 0) return value; + + return { + ...value, + src: blockIconURI + }; + }) + }; +}; + +/** + * Applies extension color theme to static block json. + * No changes are applied if called with the default theme, allowing extensions to provide their own colors. + * @param {object} blockInfoJson - Static block json + * @param {string} theme - Theme name + * @returns {object} Block info json with updated colors. The original blockInfoJson is not modified. + */ +const injectExtensionBlockTheme = (blockInfoJson, theme) => { + // Don't do any manipulation for the default theme + if (theme === DEFAULT_THEME) return blockInfoJson; + + const extensionColors = getExtensionColors(theme); + + return { + ...injectBlockIcons(blockInfoJson, theme), + colour: extensionColors.primary, + colourSecondary: extensionColors.secondary, + colourTertiary: extensionColors.tertiary, + colourQuaternary: extensionColors.quaternary + }; +}; + +export { + injectExtensionBlockTheme, + injectExtensionCategoryTheme +}; diff --git a/src/lib/themes/dark/__mocks__/index.js b/src/lib/themes/dark/__mocks__/index.js new file mode 100644 index 00000000000..6d1b817db6b --- /dev/null +++ b/src/lib/themes/dark/__mocks__/index.js @@ -0,0 +1,22 @@ +const blockColors = { + motion: { + primary: '#AAAAAA' + }, + pen: { + primary: '#FFFFFF', + secondary: '#EEEEEE', + tertiary: '#DDDDDD' + }, + text: '#BBBBBB' +}; + +const extensions = { + pen: { + blockIconURI: 'darkPenIcon' + } +}; + +export { + blockColors, + extensions +}; diff --git a/src/lib/themes/dark/index.js b/src/lib/themes/dark/index.js new file mode 100644 index 00000000000..d1e86516336 --- /dev/null +++ b/src/lib/themes/dark/index.js @@ -0,0 +1,84 @@ +const blockColors = { + motion: { + primary: '#0F1E33', + secondary: '#4C4C4C', + tertiary: '#4C97FF', + quaternary: '#4C97FF' + }, + looks: { + primary: '#1E1433', + secondary: '#4C4C4C', + tertiary: '#9966FF', + quaternary: '#9966FF' + }, + sounds: { + primary: '#291329', + secondary: '#4C4C4C', + tertiary: '#CF63CF', + quaternary: '#CF63CF' + }, + control: { + primary: '#332205', + secondary: '#4C4C4C', + tertiary: '#FFAB19', + quaternary: '#FFAB19' + }, + event: { + primary: '#332600', + secondary: '#4C4C4C', + tertiary: '#FFBF00', + quaternary: '#FFBF00' + }, + sensing: { + primary: '#12232A', + secondary: '#4C4C4C', + tertiary: '#5CB1D6', + quaternary: '#5CB1D6' + }, + pen: { + primary: '#03251C', + secondary: '#4C4C4C', + tertiary: '#0fBD8C', + quaternary: '#0fBD8C' + }, + operators: { + primary: '#112611', + secondary: '#4C4C4C', + tertiary: '#59C059', + quaternary: '#59C059' + }, + data: { + primary: '#331C05', + secondary: '#4C4C4C', + tertiary: '#FF8C1A', + quaternary: '#FF8C1A' + }, + data_lists: { + primary: '#331405', + secondary: '#4C4C4C', + tertiary: '#FF661A', + quaternary: '#FF661A' + }, + more: { + primary: '#331419', + secondary: '#4C4C4C', + tertiary: '#FF6680', + quaternary: '#FF6680' + }, + text: 'rgba(255, 255, 255, .7)', + textFieldText: '#E5E5E5', + workspace: '#121212', + toolboxSelected: '#4C4C4C', + toolboxText: '#E5E5E5', + toolbox: '#121212', + flyout: '#121212', + textField: '#4C4C4C', + menuHover: 'rgba(255, 255, 255, 0.3)' +}; + +const extensions = {}; + +export { + blockColors, + extensions +}; diff --git a/src/lib/themes/default/__mocks__/index.js b/src/lib/themes/default/__mocks__/index.js new file mode 100644 index 00000000000..d3b3bc94b10 --- /dev/null +++ b/src/lib/themes/default/__mocks__/index.js @@ -0,0 +1,18 @@ +const blockColors = { + motion: { + primary: '#111111', + secondary: '#222222', + tertiary: '#333333' + }, + pen: { + primary: '#121212', + secondary: '#232323', + tertiary: '#343434' + }, + text: '#444444', + workspace: '#555555' +}; + +export { + blockColors +}; diff --git a/src/lib/themes/default/icon.svg b/src/lib/themes/default/icon.svg new file mode 100644 index 00000000000..8f54974f65d --- /dev/null +++ b/src/lib/themes/default/icon.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/lib/themes/default/index.js b/src/lib/themes/default/index.js new file mode 100644 index 00000000000..3a754dca37f --- /dev/null +++ b/src/lib/themes/default/index.js @@ -0,0 +1,105 @@ +const blockColors = { + motion: { + primary: '#4C97FF', + secondary: '#4280D7', + tertiary: '#3373CC', + quaternary: '#3373CC' + }, + looks: { + primary: '#9966FF', + secondary: '#855CD6', + tertiary: '#774DCB', + quaternary: '#774DCB' + }, + sounds: { + primary: '#CF63CF', + secondary: '#C94FC9', + tertiary: '#BD42BD', + quaternary: '#BD42BD' + }, + control: { + primary: '#FFAB19', + secondary: '#EC9C13', + tertiary: '#CF8B17', + quaternary: '#CF8B17' + }, + event: { + primary: '#FFBF00', + secondary: '#E6AC00', + tertiary: '#CC9900', + quaternary: '#CC9900' + }, + sensing: { + primary: '#5CB1D6', + secondary: '#47A8D1', + tertiary: '#2E8EB8', + quaternary: '#2E8EB8' + }, + pen: { + primary: '#0fBD8C', + secondary: '#0DA57A', + tertiary: '#0B8E69', + quaternary: '#0B8E69' + }, + operators: { + primary: '#59C059', + secondary: '#46B946', + tertiary: '#389438', + quaternary: '#389438' + }, + data: { + primary: '#FF8C1A', + secondary: '#FF8000', + tertiary: '#DB6E00', + quaternary: '#DB6E00' + }, + // This is not a new category, but rather for differentiation + // between lists and scalar variables. + data_lists: { + primary: '#FF661A', + secondary: '#FF5500', + tertiary: '#E64D00', + quaternary: '#E64D00' + }, + more: { + primary: '#FF6680', + secondary: '#FF4D6A', + tertiary: '#FF3355', + quaternary: '#FF3355' + }, + text: '#FFFFFF', + workspace: '#F9F9F9', + toolboxHover: '#4C97FF', + toolboxSelected: '#E9EEF2', + toolboxText: '#575E75', + toolbox: '#FFFFFF', + flyout: '#F9F9F9', + scrollbar: '#CECDCE', + scrollbarHover: '#CECDCE', + textField: '#FFFFFF', + textFieldText: '#575E75', + insertionMarker: '#000000', + insertionMarkerOpacity: 0.2, + dragShadowOpacity: 0.6, + stackGlow: '#FFF200', + stackGlowSize: 4, + stackGlowOpacity: 1, + replacementGlow: '#FFFFFF', + replacementGlowSize: 2, + replacementGlowOpacity: 1, + colourPickerStroke: '#FFFFFF', + // CSS colours: support RGBA + fieldShadow: 'rgba(255, 255, 255, 0.3)', + dropDownShadow: 'rgba(0, 0, 0, .3)', + numPadBackground: '#547AB2', + numPadBorder: '#435F91', + numPadActiveBackground: '#435F91', + numPadText: 'white', // Do not use hex here, it cannot be inlined with data-uri SVG + valueReportBackground: '#FFFFFF', + valueReportBorder: '#AAAAAA', + menuHover: 'rgba(0, 0, 0, 0.2)' +}; + +export { + blockColors +}; diff --git a/src/lib/themes/high-contrast/blocks-media/comment-arrow-down.svg b/src/lib/themes/high-contrast/blocks-media/comment-arrow-down.svg new file mode 100644 index 00000000000..9753f40b011 --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/comment-arrow-down.svg @@ -0,0 +1,10 @@ + + + + dropdown-caret-up + Created with Sketch. + + + + + diff --git a/src/lib/themes/high-contrast/blocks-media/comment-arrow-up.svg b/src/lib/themes/high-contrast/blocks-media/comment-arrow-up.svg new file mode 100644 index 00000000000..a118883f4b5 --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/comment-arrow-up.svg @@ -0,0 +1,10 @@ + + + + dropdown-caret-down + Created with Sketch. + + + + + diff --git a/src/lib/themes/high-contrast/blocks-media/delete-x.svg b/src/lib/themes/high-contrast/blocks-media/delete-x.svg new file mode 100644 index 00000000000..46d898a9a40 --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/delete-x.svg @@ -0,0 +1,10 @@ + + + + delete-x + Created with Sketch. + + + + + diff --git a/src/lib/themes/high-contrast/blocks-media/dropdown-arrow.svg b/src/lib/themes/high-contrast/blocks-media/dropdown-arrow.svg new file mode 100644 index 00000000000..585e5cc4f8a --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/dropdown-arrow.svg @@ -0,0 +1 @@ +dropdown-arrow \ No newline at end of file diff --git a/src/lib/themes/high-contrast/blocks-media/eyedropper.svg b/src/lib/themes/high-contrast/blocks-media/eyedropper.svg new file mode 100644 index 00000000000..c7a7cfc9a4f --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/eyedropper.svg @@ -0,0 +1,22 @@ + + + + Artboard + Created with Sketch. + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/lib/themes/high-contrast/blocks-media/icons/arrow_button.svg b/src/lib/themes/high-contrast/blocks-media/icons/arrow_button.svg new file mode 100644 index 00000000000..5fa8ffee296 --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/icons/arrow_button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/lib/themes/high-contrast/blocks-media/repeat.svg b/src/lib/themes/high-contrast/blocks-media/repeat.svg new file mode 100644 index 00000000000..70d02b90954 --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/repeat.svg @@ -0,0 +1,13 @@ + + + + +repeat + + diff --git a/src/lib/themes/high-contrast/blocks-media/rotate-left.svg b/src/lib/themes/high-contrast/blocks-media/rotate-left.svg new file mode 100644 index 00000000000..eb120afa48d --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/rotate-left.svg @@ -0,0 +1 @@ +rotate-clockwise \ No newline at end of file diff --git a/src/lib/themes/high-contrast/blocks-media/rotate-right.svg b/src/lib/themes/high-contrast/blocks-media/rotate-right.svg new file mode 100644 index 00000000000..960c00bbecc --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/rotate-right.svg @@ -0,0 +1 @@ +rotate-counter-clockwise \ No newline at end of file diff --git a/src/lib/themes/high-contrast/blocks-media/zoom-in.svg b/src/lib/themes/high-contrast/blocks-media/zoom-in.svg new file mode 100644 index 00000000000..6395eb2d400 --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/zoom-in.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/lib/themes/high-contrast/blocks-media/zoom-out.svg b/src/lib/themes/high-contrast/blocks-media/zoom-out.svg new file mode 100644 index 00000000000..3dc33cd6edc --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/zoom-out.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/lib/themes/high-contrast/blocks-media/zoom-reset.svg b/src/lib/themes/high-contrast/blocks-media/zoom-reset.svg new file mode 100644 index 00000000000..2e358b0d75f --- /dev/null +++ b/src/lib/themes/high-contrast/blocks-media/zoom-reset.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/lib/themes/high-contrast/extensions/musicIcon.svg b/src/lib/themes/high-contrast/extensions/musicIcon.svg new file mode 100644 index 00000000000..34cf4e4f3a8 --- /dev/null +++ b/src/lib/themes/high-contrast/extensions/musicIcon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/lib/themes/high-contrast/extensions/penIcon.svg b/src/lib/themes/high-contrast/extensions/penIcon.svg new file mode 100644 index 00000000000..d4436d58c34 --- /dev/null +++ b/src/lib/themes/high-contrast/extensions/penIcon.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/lib/themes/high-contrast/extensions/text2speechIcon.svg b/src/lib/themes/high-contrast/extensions/text2speechIcon.svg new file mode 100644 index 00000000000..2606c9cfbef --- /dev/null +++ b/src/lib/themes/high-contrast/extensions/text2speechIcon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/lib/themes/high-contrast/extensions/translateIcon.svg b/src/lib/themes/high-contrast/extensions/translateIcon.svg new file mode 100644 index 00000000000..e1fafc5be9d --- /dev/null +++ b/src/lib/themes/high-contrast/extensions/translateIcon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/lib/themes/high-contrast/extensions/videoSensingIcon.svg b/src/lib/themes/high-contrast/extensions/videoSensingIcon.svg new file mode 100644 index 00000000000..95c2e90dbc1 --- /dev/null +++ b/src/lib/themes/high-contrast/extensions/videoSensingIcon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/lib/themes/high-contrast/icon.svg b/src/lib/themes/high-contrast/icon.svg new file mode 100644 index 00000000000..4bdf2fa04ee --- /dev/null +++ b/src/lib/themes/high-contrast/icon.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/lib/themes/high-contrast/index.js b/src/lib/themes/high-contrast/index.js new file mode 100644 index 00000000000..8a5dd941559 --- /dev/null +++ b/src/lib/themes/high-contrast/index.js @@ -0,0 +1,110 @@ +import musicIcon from './extensions/musicIcon.svg'; +import penIcon from './extensions/penIcon.svg'; +import text2speechIcon from './extensions/text2speechIcon.svg'; +import translateIcon from './extensions/translateIcon.svg'; +import videoSensingIcon from './extensions/videoSensingIcon.svg'; + +const blockColors = { + motion: { + primary: '#80B5FF', + secondary: '#B3D2FF', + tertiary: '#3373CC', + quaternary: '#CCE1FF' + }, + looks: { + primary: '#CCB3FF', + secondary: '#DDCCFF', + tertiary: '#774DCB', + quaternary: '#EEE5FF' + }, + sounds: { + primary: '#E19DE1', + secondary: '#FFB3FF', + tertiary: '#BD42BD', + quaternary: '#FFCCFF' + + }, + control: { + primary: '#FFBE4C', + secondary: '#FFDA99', + tertiary: '#CF8B17', + quaternary: '#FFE3B3' + }, + event: { + primary: '#FFD966', + secondary: '#FFECB3', + tertiary: '#CC9900', + quaternary: '#FFF2CC' + }, + sensing: { + primary: '#85C4E0', + secondary: '#AED8EA', + tertiary: '#2E8EB8', + quaternary: '#C2E2F0' + }, + pen: { + primary: '#13ECAF', + secondary: '#75F0CD', + tertiary: '#0B8E69', + quaternary: '#A3F5DE' + }, + operators: { + primary: '#7ECE7E', + secondary: '#B5E3B5', + tertiary: '#389438', + quaternary: '#DAF1DA' + }, + data: { + primary: '#FFA54C', + secondary: '#FFCC99', + tertiary: '#DB6E00', + quaternary: '#FFE5CC' + }, + // This is not a new category, but rather for differentiation + // between lists and scalar variables. + data_lists: { + primary: '#FF9966', + secondary: '#FFCAB0', // I don't think this is used, b/c we don't have any droppable fields in list blocks + tertiary: '#E64D00', + quaternary: '#FFDDCC' + }, + more: { + primary: '#FF99AA', + secondary: '#FFCCD5', + tertiary: '#FF3355', + quaternary: '#FFE5EA' + }, + text: '#000000', + textFieldText: '#000000', // Text inside of inputs e.g. 90 in [point in direction (90)] + toolboxText: '#000000', // Toolbox text, color picker text (used to be #575E75) + // The color that the category menu label (e.g. 'motion', 'looks', etc.) changes to on hover + toolboxHover: '#3373CC', + insertionMarker: '#000000', + insertionMarkerOpacity: 0.2, + fieldShadow: 'rgba(255, 255, 255, 0.3)', + dragShadowOpacity: 0.6, + menuHover: 'rgba(255, 255, 255, 0.3)' +}; + +const extensions = { + music: { + blockIconURI: musicIcon + }, + pen: { + blockIconURI: penIcon + }, + text2speech: { + blockIconURI: text2speechIcon + }, + translate: { + blockIconURI: translateIcon + }, + videoSensing: { + blockIconURI: videoSensingIcon + } +}; + +export { + blockColors, + extensions +}; diff --git a/src/lib/themes/index.js b/src/lib/themes/index.js new file mode 100644 index 00000000000..673d453e741 --- /dev/null +++ b/src/lib/themes/index.js @@ -0,0 +1,81 @@ +import defaultsDeep from 'lodash.defaultsdeep'; +import {defineMessages} from 'react-intl'; + +import { + blockColors as darkModeBlockColors, + extensions as darkModeExtensions +} from './dark'; +import { + blockColors as highContrastBlockColors, + extensions as highContrastExtensions +} from './high-contrast'; +import {blockColors as defaultColors} from './default'; + +import defaultIcon from './default/icon.svg'; +import highContrastIcon from './high-contrast/icon.svg'; + +const DEFAULT_THEME = 'default'; +const HIGH_CONTRAST_THEME = 'high-contrast'; +const DARK_THEME = 'dark'; + +const mergeWithDefaults = colors => defaultsDeep({}, colors, defaultColors); + +const messages = defineMessages({ + [DEFAULT_THEME]: { + id: 'gui.theme.default', + defaultMessage: 'Original', + description: 'label for original theme' + }, + [DARK_THEME]: { + id: 'gui.theme.dark', + defaultMessage: 'Dark', + description: 'label for dark mode theme' + }, + [HIGH_CONTRAST_THEME]: { + id: 'gui.theme.highContrast', + defaultMessage: 'High Contrast', + description: 'label for high theme' + } +}); + +const themeMap = { + [DEFAULT_THEME]: { + blocksMediaFolder: 'blocks-media/default', + colors: defaultColors, + extensions: {}, + label: messages[DEFAULT_THEME], + icon: defaultIcon + }, + [DARK_THEME]: { + blocksMediaFolder: 'blocks-media/default', + colors: mergeWithDefaults(darkModeBlockColors), + extensions: darkModeExtensions, + label: messages[DARK_THEME] + }, + [HIGH_CONTRAST_THEME]: { + blocksMediaFolder: 'blocks-media/high-contrast', + colors: mergeWithDefaults(highContrastBlockColors), + extensions: highContrastExtensions, + label: messages[HIGH_CONTRAST_THEME], + icon: highContrastIcon + } +}; + +const getColorsForTheme = theme => { + const themeInfo = themeMap[theme]; + + if (!themeInfo) { + throw new Error(`Undefined theme ${theme}`); + } + + return themeInfo.colors; +}; + +export { + DEFAULT_THEME, + DARK_THEME, + HIGH_CONTRAST_THEME, + defaultColors, + getColorsForTheme, + themeMap +}; diff --git a/src/lib/themes/themePersistance.js b/src/lib/themes/themePersistance.js new file mode 100644 index 00000000000..6056708651a --- /dev/null +++ b/src/lib/themes/themePersistance.js @@ -0,0 +1,45 @@ +import cookie from 'cookie'; + +import {DEFAULT_THEME, HIGH_CONTRAST_THEME} from '.'; + +const PREFERS_HIGH_CONTRAST_QUERY = '(prefers-contrast: more)'; +const COOKIE_KEY = 'scratchtheme'; + +// Dark mode isn't enabled yet +const isValidTheme = theme => [DEFAULT_THEME, HIGH_CONTRAST_THEME].includes(theme); + +const systemPreferencesTheme = () => { + if (window.matchMedia && window.matchMedia(PREFERS_HIGH_CONTRAST_QUERY).matches) return HIGH_CONTRAST_THEME; + + return DEFAULT_THEME; +}; + +const detectTheme = () => { + const obj = cookie.parse(document.cookie) || {}; + const themeCookie = obj.scratchtheme; + + if (isValidTheme(themeCookie)) return themeCookie; + + // No cookie set. Fall back to system preferences + return systemPreferencesTheme(); +}; + +const persistTheme = theme => { + if (!isValidTheme(theme)) { + throw new Error(`Invalid theme: ${theme}`); + } + + if (systemPreferencesTheme() === theme) { + // Clear the cookie to represent using the system preferences + document.cookie = `${COOKIE_KEY}=;path=/`; + return; + } + + const expires = new Date(new Date().setYear(new Date().getFullYear() + 1)).toUTCString(); + document.cookie = `${COOKIE_KEY}=${theme};expires=${expires};path=/`; +}; + +export { + detectTheme, + persistTheme +}; diff --git a/src/lib/titled-hoc.jsx b/src/lib/titled-hoc.jsx index 6115990087d..2cdeb072945 100644 --- a/src/lib/titled-hoc.jsx +++ b/src/lib/titled-hoc.jsx @@ -3,7 +3,10 @@ import React from 'react'; import {connect} from 'react-redux'; import {defineMessages, injectIntl, intlShape} from 'react-intl'; -import {getIsShowingWithoutId} from '../reducers/project-state'; +import { + getIsAnyCreatingNewState, + getIsShowingWithoutId +} from '../reducers/project-state'; import {setProjectTitle} from '../reducers/project-title'; const messages = defineMessages({ @@ -27,6 +30,12 @@ const TitledHOC = function (WrappedComponent) { if (this.props.projectTitle !== prevProps.projectTitle) { this.handleReceivedProjectTitle(this.props.projectTitle); } + // if project is a new default project, and has loaded, + if (this.props.isShowingWithoutId && prevProps.isAnyCreatingNewState) { + // reset title to default + const defaultProjectTitle = this.handleReceivedProjectTitle(); + this.props.onUpdateProjectTitle(defaultProjectTitle); + } // if the projectTitle hasn't changed, but the reduxProjectTitle // HAS changed, we need to report that change to the projectTitle's owner if (this.props.reduxProjectTitle !== prevProps.reduxProjectTitle && @@ -40,11 +49,13 @@ const TitledHOC = function (WrappedComponent) { newTitle = this.props.intl.formatMessage(messages.defaultProjectTitle); } this.props.onChangedProjectTitle(newTitle); + return newTitle; } render () { const { /* eslint-disable no-unused-vars */ intl, + isAnyCreatingNewState, isShowingWithoutId, onChangedProjectTitle, // for children, we replace onUpdateProjectTitle with our own @@ -66,6 +77,7 @@ const TitledHOC = function (WrappedComponent) { TitledComponent.propTypes = { intl: intlShape, + isAnyCreatingNewState: PropTypes.bool, isShowingWithoutId: PropTypes.bool, onChangedProjectTitle: PropTypes.func, onUpdateProjectTitle: PropTypes.func, @@ -80,6 +92,7 @@ const TitledHOC = function (WrappedComponent) { const mapStateToProps = state => { const loadingState = state.scratchGui.projectState.loadingState; return { + isAnyCreatingNewState: getIsAnyCreatingNewState(loadingState), isShowingWithoutId: getIsShowingWithoutId(loadingState), reduxProjectTitle: state.scratchGui.projectTitle }; @@ -91,7 +104,7 @@ const TitledHOC = function (WrappedComponent) { return injectIntl(connect( mapStateToProps, - mapDispatchToProps, + mapDispatchToProps )(TitledComponent)); }; diff --git a/src/lib/video/modal-video-manager.js b/src/lib/video/modal-video-manager.js deleted file mode 100644 index fee3d452d71..00000000000 --- a/src/lib/video/modal-video-manager.js +++ /dev/null @@ -1,62 +0,0 @@ -import VideoProvider from './video-provider.js'; -/** - * Video Manager for Camera Modal - */ -class ModalVideoManager { - constructor (canvas) { - this._videoProvider = new VideoProvider(); - - this._frameTimeout = 16; - - this._canvas = canvas; - // These values are double the stage dimensions so that the resulting - // image does not have to get sized down to accomodate double resolution - this._canvasWidth = 960; // Double Stage Width - this._canvasHeight = 720; // Double Stage Height - - } - - enableVideo (onPermissionSuccess, onVideoLoaded) { - const thisContext = this; - this._videoProvider.enableVideo(onVideoLoaded).then(() => { - if (onPermissionSuccess) onPermissionSuccess(); - const ctx = thisContext._canvas.getContext('2d'); - ctx.scale(-1, 1); - ctx.translate(thisContext._canvasWidth * -1, 0); - - if (onVideoLoaded) { - thisContext._videoProvider.video.onloadeddata = () => { - onVideoLoaded(); - }; - } - - thisContext._drawFrames(); - }); - } - - _drawFrames () { - const video = this._videoProvider.video; - this._videoFeedInterval = setInterval(() => - this._canvas.getContext('2d').drawImage(video, - // source x, y, width, height - 0, 0, video.videoWidth, video.videoHeight, - // dest x, y, width, height - 0, 0, this._canvasWidth, this._canvasHeight - ), this._frameTimeout); - } - - takeSnapshot () { - clearInterval(this._videoFeedInterval); - return this._canvas.toDataURL('image/png'); - } - - clearSnapshot () { - this._drawFrames(); - } - - disableVideo () { - this._videoProvider.disableVideo(); - } -} - -export default ModalVideoManager; diff --git a/src/playground/index.ejs b/src/playground/index.ejs index 7a8bb16135e..abbd5d8b024 100644 --- a/src/playground/index.ejs +++ b/src/playground/index.ejs @@ -1,20 +1,27 @@ + <% if (htmlWebpackPlugin.options.gtm_id) { %> + + + + <% } %> <%= htmlWebpackPlugin.options.title %> - <% if (htmlWebpackPlugin.options.sentryConfig) { %> - - - - - <% } %> + <% if (htmlWebpackPlugin.options.gtm_id) { %> + + + + <% } %> diff --git a/src/playground/index.jsx b/src/playground/index.jsx index dcf6fa1810e..6ff33f7e8b5 100644 --- a/src/playground/index.jsx +++ b/src/playground/index.jsx @@ -7,16 +7,12 @@ import 'intl'; // For Safari 9 import React from 'react'; import ReactDOM from 'react-dom'; -import analytics from '../lib/analytics'; import AppStateHOC from '../lib/app-state-hoc.jsx'; import BrowserModalComponent from '../components/browser-modal/browser-modal.jsx'; import supportedBrowser from '../lib/supported-browser'; import styles from './index.css'; -// Register "base" page view -analytics.pageview('/'); - const appTarget = document.createElement('div'); appTarget.className = styles.app; document.body.appendChild(appTarget); diff --git a/src/reducers/alerts.js b/src/reducers/alerts.js index 480c8b3824c..eee72682246 100644 --- a/src/reducers/alerts.js +++ b/src/reducers/alerts.js @@ -1,5 +1,4 @@ -import alertsData from '../lib/alerts/index.jsx'; -import {AlertTypes, AlertLevels} from '../lib/alerts/index.jsx'; +import alertsData, {AlertTypes, AlertLevels} from '../lib/alerts/index.jsx'; import extensionData from '../lib/libraries/extensions/index.jsx'; const SHOW_ALERT = 'scratch-gui/alerts/SHOW_ALERT'; diff --git a/src/reducers/gui.js b/src/reducers/gui.js index 9024b47422a..c2076df2f29 100644 --- a/src/reducers/gui.js +++ b/src/reducers/gui.js @@ -21,10 +21,13 @@ import fontsLoadedReducer, {fontsLoadedInitialState} from './fonts-loaded'; import restoreDeletionReducer, {restoreDeletionInitialState} from './restore-deletion'; import stageSizeReducer, {stageSizeInitialState} from './stage-size'; import targetReducer, {targetsInitialState} from './targets'; +import themeReducer, {themeInitialState} from './theme'; import timeoutReducer, {timeoutInitialState} from './timeout'; +import timeTravelReducer, {timeTravelInitialState} from './time-travel'; import toolboxReducer, {toolboxInitialState} from './toolbox'; import vmReducer, {vmInitialState} from './vm'; import vmStatusReducer, {vmStatusInitialState} from './vm-status'; +import workspaceMetricsReducer, {workspaceMetricsInitialState} from './workspace-metrics'; import throttle from 'redux-throttle'; import decks from '../lib/libraries/decks/index.jsx'; @@ -54,10 +57,13 @@ const guiInitialState = { fontsLoaded: fontsLoadedInitialState, restoreDeletion: restoreDeletionInitialState, targets: targetsInitialState, + theme: themeInitialState, timeout: timeoutInitialState, + timeTravel: timeTravelInitialState, toolbox: toolboxInitialState, vm: vmInitialState, - vmStatus: vmStatusInitialState + vmStatus: vmStatusInitialState, + workspaceMetrics: workspaceMetricsInitialState }; const initPlayer = function (currentState) { @@ -152,10 +158,13 @@ const guiReducer = combineReducers({ fontsLoaded: fontsLoadedReducer, restoreDeletion: restoreDeletionReducer, targets: targetReducer, + theme: themeReducer, timeout: timeoutReducer, + timeTravel: timeTravelReducer, toolbox: toolboxReducer, vm: vmReducer, - vmStatus: vmStatusReducer + vmStatus: vmStatusReducer, + workspaceMetrics: workspaceMetricsReducer }); export { diff --git a/src/reducers/locales.js b/src/reducers/locales.js index 34a42163eda..b394e024cb8 100644 --- a/src/reducers/locales.js +++ b/src/reducers/locales.js @@ -1,8 +1,7 @@ import {addLocaleData} from 'react-intl'; -import {localeData} from 'scratch-l10n'; +import {localeData, isRtl} from 'scratch-l10n'; import editorMessages from 'scratch-l10n/locales/editor-msgs'; -import {isRtl} from 'scratch-l10n'; addLocaleData(localeData); @@ -52,7 +51,7 @@ const setLocales = function (localesMessages) { }; }; const initLocale = function (currentState, locale) { - if (currentState.messagesByLocale.hasOwnProperty(locale)) { + if (Object.prototype.hasOwnProperty.call(currentState.messagesByLocale, locale)) { return Object.assign( {}, currentState, diff --git a/src/reducers/menus.js b/src/reducers/menus.js index 4cc494c60b8..4fec54b8a63 100644 --- a/src/reducers/menus.js +++ b/src/reducers/menus.js @@ -1,32 +1,102 @@ const OPEN_MENU = 'scratch-gui/menus/OPEN_MENU'; const CLOSE_MENU = 'scratch-gui/menus/CLOSE_MENU'; +const MENU_ABOUT = 'aboutMenu'; const MENU_ACCOUNT = 'accountMenu'; -const MENU_FILE = 'fileMenu'; const MENU_EDIT = 'editMenu'; +const MENU_FILE = 'fileMenu'; const MENU_LANGUAGE = 'languageMenu'; const MENU_LOGIN = 'loginMenu'; +const MENU_MODE = 'modeMenu'; +const MENU_SETTINGS = 'settingsMenu'; +const MENU_THEME = 'themeMenu'; + +class Menu { + constructor (id) { + this.id = id; + this.children = []; + this.parent = null; + } + + addChild (menu) { + this.children.push(menu); + menu.parent = this; + return this; + } + + descendants () { + return this.children.flatMap(child => [child, ...child.descendants()]); + } + + siblings () { + if (!this.parent) return []; + + return this.parent.children.filter(child => child.id !== this.id); + } + findById (id) { + if (this.id === id) return this; + + for (const child of this.children) { + const found = child.findById(id); + if (found) return found; + } + + return null; + } +} + +// Structure of nested menus, used for collapsing submenus logic. +const rootMenu = new Menu('root') + .addChild( + new Menu(MENU_SETTINGS) + .addChild(new Menu(MENU_LANGUAGE)) + .addChild(new Menu(MENU_THEME)) + ) + .addChild(new Menu(MENU_FILE)) + .addChild(new Menu(MENU_EDIT)) + .addChild(new Menu(MENU_MODE)) + .addChild(new Menu(MENU_SETTINGS)) + .addChild(new Menu(MENU_LOGIN)) + .addChild(new Menu(MENU_ACCOUNT)) + .addChild(new Menu(MENU_ABOUT)); const initialState = { + [MENU_ABOUT]: false, [MENU_ACCOUNT]: false, - [MENU_FILE]: false, [MENU_EDIT]: false, + [MENU_FILE]: false, [MENU_LANGUAGE]: false, - [MENU_LOGIN]: false + [MENU_LOGIN]: false, + [MENU_MODE]: false, + [MENU_SETTINGS]: false, + [MENU_THEME]: false }; const reducer = function (state, action) { if (typeof state === 'undefined') state = initialState; switch (action.type) { - case OPEN_MENU: - return Object.assign({}, state, { - [action.menu]: true - }); - case CLOSE_MENU: - return Object.assign({}, state, { - [action.menu]: false - }); + case OPEN_MENU: { + const menu = rootMenu.findById(action.menu); + // Close siblings when opening a menu + const toClose = menu.siblings().flatMap(sibling => [sibling, ...sibling.descendants()]); + + return { + ...state, + [action.menu]: true, + ...Object.fromEntries(toClose.map(({id}) => [id, false])) + }; + } + case CLOSE_MENU: { + const menu = rootMenu.findById(action.menu); + // Close this menu and any submenus + const toClose = [menu, ...menu.descendants()]; + + return { + ...state, + ...Object.fromEntries(toClose.map(({id}) => [id, false])) + }; + } default: return state; } @@ -39,38 +109,71 @@ const closeMenu = menu => ({ type: CLOSE_MENU, menu: menu }); + +const openAboutMenu = () => openMenu(MENU_ABOUT); +const closeAboutMenu = () => closeMenu(MENU_ABOUT); +const aboutMenuOpen = state => state.scratchGui.menus[MENU_ABOUT]; + const openAccountMenu = () => openMenu(MENU_ACCOUNT); const closeAccountMenu = () => closeMenu(MENU_ACCOUNT); const accountMenuOpen = state => state.scratchGui.menus[MENU_ACCOUNT]; -const openFileMenu = () => openMenu(MENU_FILE); -const closeFileMenu = () => closeMenu(MENU_FILE); -const fileMenuOpen = state => state.scratchGui.menus[MENU_FILE]; + const openEditMenu = () => openMenu(MENU_EDIT); const closeEditMenu = () => closeMenu(MENU_EDIT); const editMenuOpen = state => state.scratchGui.menus[MENU_EDIT]; + +const openFileMenu = () => openMenu(MENU_FILE); +const closeFileMenu = () => closeMenu(MENU_FILE); +const fileMenuOpen = state => state.scratchGui.menus[MENU_FILE]; + const openLanguageMenu = () => openMenu(MENU_LANGUAGE); const closeLanguageMenu = () => closeMenu(MENU_LANGUAGE); const languageMenuOpen = state => state.scratchGui.menus[MENU_LANGUAGE]; + const openLoginMenu = () => openMenu(MENU_LOGIN); const closeLoginMenu = () => closeMenu(MENU_LOGIN); const loginMenuOpen = state => state.scratchGui.menus[MENU_LOGIN]; +const openModeMenu = () => openMenu(MENU_MODE); +const closeModeMenu = () => closeMenu(MENU_MODE); +const modeMenuOpen = state => state.scratchGui.menus[MENU_MODE]; + +const openSettingsMenu = () => openMenu(MENU_SETTINGS); +const closeSettingsMenu = () => closeMenu(MENU_SETTINGS); +const settingsMenuOpen = state => state.scratchGui.menus[MENU_SETTINGS]; + +const openThemeMenu = () => openMenu(MENU_THEME); +const closeThemeMenu = () => closeMenu(MENU_THEME); +const themeMenuOpen = state => state.scratchGui.menus[MENU_THEME]; + export { reducer as default, initialState as menuInitialState, + openAboutMenu, + closeAboutMenu, + aboutMenuOpen, openAccountMenu, closeAccountMenu, accountMenuOpen, - openFileMenu, - closeFileMenu, - fileMenuOpen, openEditMenu, closeEditMenu, editMenuOpen, + openFileMenu, + closeFileMenu, + fileMenuOpen, openLanguageMenu, closeLanguageMenu, languageMenuOpen, openLoginMenu, closeLoginMenu, - loginMenuOpen + loginMenuOpen, + openModeMenu, + closeModeMenu, + modeMenuOpen, + openSettingsMenu, + closeSettingsMenu, + settingsMenuOpen, + openThemeMenu, + closeThemeMenu, + themeMenuOpen }; diff --git a/src/reducers/modals.js b/src/reducers/modals.js index 30381979051..5bec3699a1e 100644 --- a/src/reducers/modals.js +++ b/src/reducers/modals.js @@ -2,8 +2,8 @@ const OPEN_MODAL = 'scratch-gui/modals/OPEN_MODAL'; const CLOSE_MODAL = 'scratch-gui/modals/CLOSE_MODAL'; const MODAL_BACKDROP_LIBRARY = 'backdropLibrary'; -const MODAL_CAMERA_CAPTURE = 'cameraCapture'; const MODAL_COSTUME_LIBRARY = 'costumeLibrary'; +const MODAL_DEBUG = 'debugModal'; const MODAL_EXTENSION_LIBRARY = 'extensionLibrary'; const MODAL_LOADING_PROJECT = 'loadingProject'; const MODAL_TELEMETRY = 'telemetryModal'; @@ -15,8 +15,8 @@ const MODAL_TIPS_LIBRARY = 'tipsLibrary'; const initialState = { [MODAL_BACKDROP_LIBRARY]: false, - [MODAL_CAMERA_CAPTURE]: false, [MODAL_COSTUME_LIBRARY]: false, + [MODAL_DEBUG]: false, [MODAL_EXTENSION_LIBRARY]: false, [MODAL_LOADING_PROJECT]: false, [MODAL_TELEMETRY]: false, @@ -57,12 +57,12 @@ const closeModal = function (modal) { const openBackdropLibrary = function () { return openModal(MODAL_BACKDROP_LIBRARY); }; -const openCameraCapture = function () { - return openModal(MODAL_CAMERA_CAPTURE); -}; const openCostumeLibrary = function () { return openModal(MODAL_COSTUME_LIBRARY); }; +const openDebugModal = function () { + return openModal(MODAL_DEBUG); +}; const openExtensionLibrary = function () { return openModal(MODAL_EXTENSION_LIBRARY); }; @@ -90,12 +90,12 @@ const openTipsLibrary = function () { const closeBackdropLibrary = function () { return closeModal(MODAL_BACKDROP_LIBRARY); }; -const closeCameraCapture = function () { - return closeModal(MODAL_CAMERA_CAPTURE); -}; const closeCostumeLibrary = function () { return closeModal(MODAL_COSTUME_LIBRARY); }; +const closeDebugModal = function () { + return closeModal(MODAL_DEBUG); +}; const closeExtensionLibrary = function () { return closeModal(MODAL_EXTENSION_LIBRARY); }; @@ -124,8 +124,8 @@ export { reducer as default, initialState as modalsInitialState, openBackdropLibrary, - openCameraCapture, openCostumeLibrary, + openDebugModal, openExtensionLibrary, openLoadingProject, openSoundLibrary, @@ -135,8 +135,8 @@ export { openTipsLibrary, openConnectionModal, closeBackdropLibrary, - closeCameraCapture, closeCostumeLibrary, + closeDebugModal, closeExtensionLibrary, closeLoadingProject, closeSpriteLibrary, diff --git a/src/reducers/monitor-layout.js b/src/reducers/monitor-layout.js index 7e394caedbf..ba4c90e168a 100644 --- a/src/reducers/monitor-layout.js +++ b/src/reducers/monitor-layout.js @@ -25,7 +25,7 @@ const _verifyRect = function (upperStart, lowerEnd) { }; const _addMonitorRect = function (state, action) { - if (state.monitors.hasOwnProperty(action.monitorId)) { + if (Object.prototype.hasOwnProperty.call(state.monitors, action.monitorId)) { log.error(`Can't add monitor, monitor with id ${action.monitorId} already exists.`); return state; } @@ -49,7 +49,7 @@ const _addMonitorRect = function (state, action) { }; const _moveMonitorRect = function (state, action) { - if (!state.monitors.hasOwnProperty(action.monitorId)) { + if (!Object.prototype.hasOwnProperty.call(state.monitors, action.monitorId)) { log.error(`Can't move monitor, monitor with id ${action.monitorId} does not exist.`); return state; } @@ -57,7 +57,7 @@ const _moveMonitorRect = function (state, action) { log.error(`Monitor rectangle not formatted correctly`); return state; } - + const oldMonitor = state.monitors[action.monitorId]; if (oldMonitor.upperStart.x === action.newX && oldMonitor.upperStart.y === action.newY) { @@ -81,7 +81,7 @@ const _moveMonitorRect = function (state, action) { }; const _resizeMonitorRect = function (state, action) { - if (!state.monitors.hasOwnProperty(action.monitorId)) { + if (!Object.prototype.hasOwnProperty.call(state.monitors, action.monitorId)) { log.error(`Can't resize monitor, monitor with id ${action.monitorId} does not exist.`); return state; } @@ -113,7 +113,7 @@ const _resizeMonitorRect = function (state, action) { }; const _removeMonitorRect = function (state, action) { - if (!state.monitors.hasOwnProperty(action.monitorId)) { + if (!Object.prototype.hasOwnProperty.call(state.monitors, action.monitorId)) { log.error(`Can't remove monitor, monitor with id ${action.monitorId} does not exist.`); return state; } @@ -160,7 +160,7 @@ const _rectsIntersect = function (rect1, rect2) { // We need to place a monitor with the given width and height. Return a rect defining where it should be placed. const getInitialPosition = function (state, monitorId, eltWidth, eltHeight) { // If this monitor was purposefully moved to a certain position before, put it back in that position - if (state.savedMonitorPositions.hasOwnProperty(monitorId)) { + if (Object.prototype.hasOwnProperty.call(state.savedMonitorPositions, monitorId)) { const saved = state.savedMonitorPositions[monitorId]; return { upperStart: saved, diff --git a/src/reducers/project-state.js b/src/reducers/project-state.js index 91e51bbe48e..76955d589d5 100644 --- a/src/reducers/project-state.js +++ b/src/reducers/project-state.js @@ -17,7 +17,7 @@ const START_AUTO_UPDATING = 'scratch-gui/project-state/START_AUTO_UPDATING'; const START_CREATING_NEW = 'scratch-gui/project-state/START_CREATING_NEW'; const START_ERROR = 'scratch-gui/project-state/START_ERROR'; const START_FETCHING_NEW = 'scratch-gui/project-state/START_FETCHING_NEW'; -const START_LOADING_VM_FILE_UPLOAD = 'scratch-gui/project-state/START_LOADING_FILE_UPLOAD'; +const START_LOADING_VM_FILE_UPLOAD = 'scratch-gui/project-state/START_LOADING_VM_FILE_UPLOAD'; const START_MANUAL_UPDATING = 'scratch-gui/project-state/START_MANUAL_UPDATING'; const START_REMIXING = 'scratch-gui/project-state/START_REMIXING'; const START_UPDATING_BEFORE_CREATING_COPY = 'scratch-gui/project-state/START_UPDATING_BEFORE_CREATING_COPY'; @@ -413,32 +413,31 @@ const onFetchedProjectData = (projectData, loadingState) => { }; const onLoadedProject = (loadingState, canSave, success) => { - if (success) { - switch (loadingState) { - case LoadingState.LOADING_VM_WITH_ID: - return { - type: DONE_LOADING_VM_WITH_ID - }; - case LoadingState.LOADING_VM_FILE_UPLOAD: + switch (loadingState) { + case LoadingState.LOADING_VM_WITH_ID: + if (success) { + return {type: DONE_LOADING_VM_WITH_ID}; + } + // failed to load project; just keep showing current project + return {type: RETURN_TO_SHOWING}; + case LoadingState.LOADING_VM_FILE_UPLOAD: + if (success) { if (canSave) { - return { - type: DONE_LOADING_VM_TO_SAVE - }; + return {type: DONE_LOADING_VM_TO_SAVE}; } - return { - type: DONE_LOADING_VM_WITHOUT_ID - }; - case LoadingState.LOADING_VM_NEW_DEFAULT: - return { - type: DONE_LOADING_VM_WITHOUT_ID - }; - default: - return; + return {type: DONE_LOADING_VM_WITHOUT_ID}; } + // failed to load project; just keep showing current project + return {type: RETURN_TO_SHOWING}; + case LoadingState.LOADING_VM_NEW_DEFAULT: + if (success) { + return {type: DONE_LOADING_VM_WITHOUT_ID}; + } + // failed to load default project; show error + return {type: START_ERROR}; + default: + return; } - return { - type: RETURN_TO_SHOWING - }; }; const doneUpdatingProject = loadingState => { diff --git a/src/reducers/theme.js b/src/reducers/theme.js new file mode 100644 index 00000000000..4330f94dad9 --- /dev/null +++ b/src/reducers/theme.js @@ -0,0 +1,27 @@ +import {detectTheme} from '../lib/themes/themePersistance'; + +const SET_THEME = 'scratch-gui/theme/SET_THEME'; + +const initialState = { + theme: detectTheme() +}; + +const reducer = (state = initialState, action) => { + switch (action.type) { + case SET_THEME: + return {...state, theme: action.theme}; + default: + return state; + } +}; + +const setTheme = theme => ({ + type: SET_THEME, + theme +}); + +export { + reducer as default, + initialState as themeInitialState, + setTheme +}; diff --git a/src/reducers/time-travel.js b/src/reducers/time-travel.js new file mode 100644 index 00000000000..23cfe6cbe4c --- /dev/null +++ b/src/reducers/time-travel.js @@ -0,0 +1,96 @@ +const SET_TIME_TRAVEL = 'scratch-gui/time-travel/SET_TIME_TRAVEL'; +const initialState = { + year: 'NOW' +}; + +const NOW = 'NOW'; +const YEAR_2020 = '2020'; +const YEAR_1990 = '1990'; +const YEAR_1920 = '1920'; +const YEAR_220022BC = '220022BC'; + +const reducer = function (state, action) { + if (typeof state === 'undefined') state = initialState; + switch (action.type) { + case SET_TIME_TRAVEL: + return Object.assign({}, state, { + year: action.year + }); + default: + return state; + } +}; + +const isTimeTravel220022BC = function (state) { + return state.scratchGui.timeTravel.year === YEAR_220022BC; +}; +const setTimeTravel220022BC = function () { + return { + type: SET_TIME_TRAVEL, + year: YEAR_220022BC + }; +}; + +const isTimeTravel1920 = function (state) { + return state.scratchGui.timeTravel.year === YEAR_1920; +}; +const setTimeTravel1920 = function () { + return { + type: SET_TIME_TRAVEL, + year: YEAR_1920 + }; +}; + +const isTimeTravel1990 = function (state) { + return state.scratchGui.timeTravel.year === YEAR_1990; +}; +const setTimeTravel1990 = function () { + return { + type: SET_TIME_TRAVEL, + year: YEAR_1990 + }; +}; + + +const isTimeTravel2020 = function (state) { + return state.scratchGui.timeTravel.year === YEAR_2020; +}; +const setTimeTravel2020 = function () { + return { + type: SET_TIME_TRAVEL, + year: YEAR_2020 + }; +}; + +const isTimeTravelNow = function (state) { + return state.scratchGui.timeTravel.year === NOW; +}; +const setTimeTravelNow = function () { + return { + type: SET_TIME_TRAVEL, + year: NOW + }; +}; + +const setTimeTravel = function (mode) { + return { + type: SET_TIME_TRAVEL, + year: mode + }; +}; + +export { + reducer as default, + initialState as timeTravelInitialState, + isTimeTravel220022BC, + isTimeTravel1920, + isTimeTravel1990, + isTimeTravel2020, + isTimeTravelNow, + setTimeTravel220022BC, + setTimeTravel1920, + setTimeTravel1990, + setTimeTravel2020, + setTimeTravelNow, + setTimeTravel +}; diff --git a/src/reducers/workspace-metrics.js b/src/reducers/workspace-metrics.js new file mode 100644 index 00000000000..3791aad49ba --- /dev/null +++ b/src/reducers/workspace-metrics.js @@ -0,0 +1,37 @@ +const UPDATE_METRICS = 'scratch-gui/workspace-metrics/UPDATE_METRICS'; + +const initialState = { + targets: {} +}; + +const reducer = function (state, action) { + if (typeof state === 'undefined') state = initialState; + + switch (action.type) { + case UPDATE_METRICS: + return Object.assign({}, state, { + targets: Object.assign({}, state.targets, { + [action.targetID]: { + scrollX: action.scrollX, + scrollY: action.scrollY, + scale: action.scale + } + }) + }); + default: + return state; + } +}; + +const updateMetrics = function (metrics) { + return { + type: UPDATE_METRICS, + ...metrics + }; +}; + +export { + reducer as default, + initialState as workspaceMetricsInitialState, + updateMetrics +}; diff --git a/test/__mocks__/audio-effects.js b/test/__mocks__/audio-effects.js index 06c36c7e843..9597eec1be0 100644 --- a/test/__mocks__/audio-effects.js +++ b/test/__mocks__/audio-effects.js @@ -14,7 +14,10 @@ export default class MockAudioEffects { this.buffer = buffer; this.name = name; this.process = jest.fn(done => { - this._finishProcessing = renderedBuffer => done(renderedBuffer, 0, 1); + this._finishProcessing = renderedBuffer => { + done(renderedBuffer, 0, 1); + return new Promise(resolve => setTimeout(resolve)); + }; }); MockAudioEffects.instance = this; } diff --git a/test/__mocks__/editor-msgs-mock.js b/test/__mocks__/editor-msgs-mock.js new file mode 100644 index 00000000000..02ae1d6baaf --- /dev/null +++ b/test/__mocks__/editor-msgs-mock.js @@ -0,0 +1,3 @@ +export default { + en: {} +}; diff --git a/test/fixtures/bmpfile.bmp b/test/fixtures/bmpfile.bmp new file mode 100644 index 00000000000..e96d271c315 Binary files /dev/null and b/test/fixtures/bmpfile.bmp differ diff --git a/test/fixtures/corrupt-bmp.sb3 b/test/fixtures/corrupt-bmp.sb3 new file mode 100644 index 00000000000..0753a9491b7 Binary files /dev/null and b/test/fixtures/corrupt-bmp.sb3 differ diff --git a/test/fixtures/corrupt-bmp.sprite3 b/test/fixtures/corrupt-bmp.sprite3 new file mode 100644 index 00000000000..9108c9ea046 Binary files /dev/null and b/test/fixtures/corrupt-bmp.sprite3 differ diff --git a/test/fixtures/corrupt-from-scratch3.svg b/test/fixtures/corrupt-from-scratch3.svg new file mode 100644 index 00000000000..15436df5a69 --- /dev/null +++ b/test/fixtures/corrupt-from-scratch3.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/test/fixtures/corrupt-svg.sb2 b/test/fixtures/corrupt-svg.sb2 new file mode 100644 index 00000000000..3b036a09b7d Binary files /dev/null and b/test/fixtures/corrupt-svg.sb2 differ diff --git a/test/fixtures/corrupt-svg.sb3 b/test/fixtures/corrupt-svg.sb3 new file mode 100644 index 00000000000..52fb93096f0 Binary files /dev/null and b/test/fixtures/corrupt-svg.sb3 differ diff --git a/test/fixtures/corrupt-svg.sprite3 b/test/fixtures/corrupt-svg.sprite3 new file mode 100644 index 00000000000..06bb51aec7c Binary files /dev/null and b/test/fixtures/corrupt-svg.sprite3 differ diff --git a/test/fixtures/corrupted-svg.sprite2 b/test/fixtures/corrupted-svg.sprite2 new file mode 100644 index 00000000000..0db0dd70b95 Binary files /dev/null and b/test/fixtures/corrupted-svg.sprite2 differ diff --git a/test/fixtures/missing-bmp.sb3 b/test/fixtures/missing-bmp.sb3 new file mode 100644 index 00000000000..c7d7fef9f8f Binary files /dev/null and b/test/fixtures/missing-bmp.sb3 differ diff --git a/test/fixtures/missing-bmp.sprite3 b/test/fixtures/missing-bmp.sprite3 new file mode 100644 index 00000000000..d7c94ca350f Binary files /dev/null and b/test/fixtures/missing-bmp.sprite3 differ diff --git a/test/fixtures/missing-sprite-svg.sb3 b/test/fixtures/missing-sprite-svg.sb3 new file mode 100644 index 00000000000..e0956c36f06 Binary files /dev/null and b/test/fixtures/missing-sprite-svg.sb3 differ diff --git a/test/fixtures/missing-svg.sb2 b/test/fixtures/missing-svg.sb2 new file mode 100644 index 00000000000..45daf2cc806 Binary files /dev/null and b/test/fixtures/missing-svg.sb2 differ diff --git a/test/fixtures/missing-svg.sprite2 b/test/fixtures/missing-svg.sprite2 new file mode 100644 index 00000000000..c8e3732de77 Binary files /dev/null and b/test/fixtures/missing-svg.sprite2 differ diff --git a/test/fixtures/missing-svg.sprite3 b/test/fixtures/missing-svg.sprite3 new file mode 100644 index 00000000000..5cc0986898c Binary files /dev/null and b/test/fixtures/missing-svg.sprite3 differ diff --git a/test/fixtures/monitor-variable.sb3 b/test/fixtures/monitor-variable.sb3 new file mode 100644 index 00000000000..c1f0bc592ce Binary files /dev/null and b/test/fixtures/monitor-variable.sb3 differ diff --git a/test/fixtures/scratch2-corrupted.svg b/test/fixtures/scratch2-corrupted.svg new file mode 100644 index 00000000000..478d9ced8e8 --- /dev/null +++ b/test/fixtures/scratch2-corrupted.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/test/helpers/selenium-helper.js b/test/helpers/selenium-helper.js index 84e6c355ae4..60d86649aa9 100644 --- a/test/helpers/selenium-helper.js +++ b/test/helpers/selenium-helper.js @@ -1,10 +1,11 @@ -jest.setTimeout(30000); // eslint-disable-line no-undef +// some server-side things don't fully fail until a 90-second timeout +// allow time for that so we get a more specific error message +jest.setTimeout(95000); // eslint-disable-line no-undef import bindAll from 'lodash.bindall'; -import 'chromedriver'; // register path import webdriver from 'selenium-webdriver'; -const {By, until, Button} = webdriver; +const {Button, By, until} = webdriver; const USE_HEADLESS = process.env.USE_HEADLESS !== 'no'; @@ -13,29 +14,99 @@ const USE_HEADLESS = process.env.USE_HEADLESS !== 'no'; // The Jasmine default timeout is 30 seconds so make sure this is lower. const DEFAULT_TIMEOUT_MILLISECONDS = 20 * 1000; +/** + * Add more debug information to an error: + * - Merge a causal error into an outer error with valuable stack information + * - Add the causal error's message to the outer error's message. + * - Add debug information from the web driver, if available. + * The outerError compensates for the loss of context caused by `regenerator-runtime`. + * @param {Error} outerError The error to embed the cause into. + * @param {Error} cause The "inner" error to embed. + * @param {webdriver.ThenableWebDriver} [driver] Optional driver to capture debug info from. + * @returns {Promise} The outerError, with the cause embedded. + */ +const enhanceError = async (outerError, cause, driver) => { + if (cause) { + // This is the official way to nest errors in modern Node.js, but Jest ignores this field. + // It's here in case a future version uses it, or in case the caller does. + outerError.cause = cause; + } + if (cause && cause.message) { + outerError.message += `\n${['Cause:', ...cause.message.split('\n')].join('\n ')}`; + } else { + outerError.message += '\nCause: unknown'; + } + if (driver) { + const url = await driver.getCurrentUrl(); + const title = await driver.getTitle(); + const pageSource = await driver.getPageSource(); + const browserLogEntries = await driver.manage() + .logs() + .get('browser'); + const browserLogText = browserLogEntries.map(entry => entry.message).join('\n'); + outerError.message += `\nBrowser URL: ${url}`; + outerError.message += `\nBrowser title: ${title}`; + outerError.message += `\nBrowser logs:\n*****\n${browserLogText}\n*****\n`; + outerError.message += `\nBrowser page source:\n*****\n${pageSource}\n*****\n`; + } + return outerError; +}; + class SeleniumHelper { constructor () { bindAll(this, [ 'clickText', 'clickButton', 'clickXpath', + 'clickBlocksCategory', 'elementIsVisible', 'findByText', + 'textToXpath', 'findByXpath', + 'textExists', 'getDriver', 'getSauceDriver', 'getLogs', 'loadUri', 'rightClickText' ]); + + this.Key = webdriver.Key; // map Key constants, for sending special keys + + // this type declaration suppresses IDE type warnings throughout this file + /** @type {webdriver.ThenableWebDriver} */ + this.driver = null; } - elementIsVisible (element, timeoutMessage = 'elementIsVisible timed out') { - return this.driver.wait(until.elementIsVisible(element), DEFAULT_TIMEOUT_MILLISECONDS, timeoutMessage); + /** + * Set the browser window title. Useful for debugging. + * @param {string} title The title to set. + * @returns {Promise} A promise that resolves when the title is set. + */ + async setTitle (title) { + await this.driver.executeScript(`document.title = arguments[0];`, title); } + /** + * Wait for an element to be visible. + * @param {webdriver.WebElement} element The element to wait for. + * @returns {Promise} A promise that resolves when the element is visible. + */ + async elementIsVisible (element) { + const outerError = new Error('elementIsVisible failed'); + try { + await this.setTitle(`elementIsVisible ${await element.getId()}`); + await this.driver.wait(until.elementIsVisible(element), DEFAULT_TIMEOUT_MILLISECONDS); + } catch (cause) { + throw await enhanceError(outerError, cause, this.driver); + } + } + + /** + * List of useful xpath scopes for finding elements. + * @returns {object} An object mapping names to xpath strings. + */ get scope () { - // List of useful xpath scopes for finding elements return { blocksTab: "*[@id='react-tabs-1']", costumesTab: "*[@id='react-tabs-3']", @@ -43,10 +114,16 @@ class SeleniumHelper { reportedValue: '*[@class="blocklyDropDownContent"]', soundsTab: "*[@id='react-tabs-5']", spriteTile: '*[starts-with(@class,"react-contextmenu-wrapper")]', - monitors: '*[starts-with(@class,"stage_monitor-wrapper")]' + menuBar: '*[contains(@class,"menu-bar_menu-bar_")]', + monitors: '*[starts-with(@class,"stage_monitor-wrapper")]', + contextMenu: '*[starts-with(@class,"react-contextmenu")]' }; } + /** + * Instantiate a new Selenium driver. + * @returns {webdriver.ThenableWebDriver} The new driver. + */ getDriver () { const chromeCapabilities = webdriver.Capabilities.chrome(); const args = []; @@ -72,6 +149,16 @@ class SeleniumHelper { return this.driver; } + /** + * Instantiate a new Selenium driver for Sauce Labs. + * @param {string} username The Sauce Labs username. + * @param {string} accessKey The Sauce Labs access key. + * @param {object} configs The Sauce Labs configuration. + * @param {string} configs.browserName The name of the desired browser. + * @param {string} configs.platform The name of the desired platform. + * @param {string} configs.version The desired browser version. + * @returns {webdriver.ThenableWebDriver} The new driver. + */ getSauceDriver (username, accessKey, configs) { this.driver = new webdriver.Builder() .withCapabilities({ @@ -81,78 +168,216 @@ class SeleniumHelper { username: username, accessKey: accessKey }) - .usingServer(`http://${username}:${accessKey - }@ondemand.saucelabs.com:80/wd/hub`) + .usingServer(`http://${username}:${accessKey}@ondemand.saucelabs.com:80/wd/hub`) .build(); return this.driver; } - findByXpath (xpath, timeoutMessage = `findByXpath timed out for path: ${xpath}`) { - return this.driver.wait(until.elementLocated(By.xpath(xpath)), DEFAULT_TIMEOUT_MILLISECONDS, timeoutMessage) - .then(el => ( - this.driver.wait(el.isDisplayed(), DEFAULT_TIMEOUT_MILLISECONDS, `${xpath} is not visible`) - .then(() => el) - )); + /** + * Find an element by xpath. + * @param {string} xpath The xpath to search for. + * @returns {Promise} A promise that resolves to the element. + */ + async findByXpath (xpath) { + const outerError = new Error(`findByXpath failed with arguments:\n\txpath: ${xpath}`); + try { + await this.setTitle(`findByXpath ${xpath}`); + const el = await this.driver.wait(until.elementLocated(By.xpath(xpath)), DEFAULT_TIMEOUT_MILLISECONDS); + // await this.driver.wait(() => el.isDisplayed(), DEFAULT_TIMEOUT_MILLISECONDS); + return el; + } catch (cause) { + throw await enhanceError(outerError, cause, this.driver); + } + } + + /** + * Generate an xpath that finds an element by its text. + * @param {string} text The text to search for. + * @param {string} [scope] An optional xpath scope to search within. + * @returns {string} The xpath. + */ + textToXpath (text, scope) { + return `//body//${scope || '*'}//*[contains(text(), '${text}')]`; } + /** + * Find an element by its text. + * @param {string} text The text to search for. + * @param {string} [scope] An optional xpath scope to search within. + * @returns {Promise} A promise that resolves to the element. + */ findByText (text, scope) { - return this.findByXpath(`//body//${scope || '*'}//*[contains(text(), '${text}')]`); + return this.findByXpath(this.textToXpath(text, scope)); } - loadUri (uri) { - const WINDOW_WIDTH = 1024; - const WINDOW_HEIGHT = 768; - return this.driver - .get(`file://${uri}`) - .then(() => ( - this.driver.executeScript('window.onbeforeunload = undefined;') - )) - .then(() => ( - this.driver.manage() - .window() - .setSize(WINDOW_WIDTH, WINDOW_HEIGHT) - )); + /** + * Check if an element exists by its text. + * @param {string} text The text to search for. + * @param {string} [scope] An optional xpath scope to search within. + * @returns {Promise} A promise that resolves to true if the element exists. + */ + async textExists (text, scope) { + const outerError = new Error(`textExists failed with arguments:\n\ttext: ${text}\n\tscope: ${scope}`); + try { + await this.setTitle(`textExists ${text}`); + const elements = await this.driver.findElements(By.xpath(this.textToXpath(text, scope))); + return elements.length > 0; + } catch (cause) { + throw await enhanceError(outerError, cause, this.driver); + } } - clickXpath (xpath) { - return this.findByXpath(xpath).then(el => el.click()); + /** + * Load a URI in the driver. + * @param {string} uri The URI to load. + * @returns {Promise} A promise that resolves when the URI is loaded. + */ + async loadUri (uri) { + const outerError = new Error(`loadUri failed with arguments:\n\turi: ${uri}`); + try { + await this.setTitle(`loadUri ${uri}`); + // TODO: The height is set artificially high to fix this test: + // 'Loading with locale shows correct translation for string length block parameter' + // which fails because the block is offscreen. + // We should set this back to 1024x768 once we find a good way to fix that test. + // Using `scrollIntoView` didn't seem to do the trick. + const WINDOW_WIDTH = 1024; + const WINDOW_HEIGHT = 960; + await this.driver + .get(`file://${uri}`); + await this.driver + .executeScript('window.onbeforeunload = undefined;'); + await this.driver.manage().window() + .setSize(WINDOW_WIDTH, WINDOW_HEIGHT); + await this.driver.wait( + async () => await this.driver.executeScript('return document.readyState;') === 'complete', + DEFAULT_TIMEOUT_MILLISECONDS + ); + } catch (cause) { + throw await enhanceError(outerError, cause, this.driver); + } } - clickText (text, scope) { - return this.findByText(text, scope).then(el => el.click()); + /** + * Click an element by xpath. + * @param {string} xpath The xpath to click. + * @returns {Promise} A promise that resolves when the element is clicked. + */ + async clickXpath (xpath) { + const outerError = new Error(`clickXpath failed with arguments:\n\txpath: ${xpath}`); + try { + await this.setTitle(`clickXpath ${xpath}`); + const el = await this.findByXpath(xpath); + return el.click(); + } catch (cause) { + throw await enhanceError(outerError, cause, this.driver); + } } - rightClickText (text, scope) { - return this.findByText(text, scope).then(el => this.driver.actions() - .click(el, Button.RIGHT) - .perform()); + /** + * Click an element by its text. + * @param {string} text The text to click. + * @param {string} [scope] An optional xpath scope to search within. + * @returns {Promise} A promise that resolves when the element is clicked. + */ + async clickText (text, scope) { + const outerError = new Error(`clickText failed with arguments:\n\ttext: ${text}\n\tscope: ${scope}`); + try { + await this.setTitle(`clickText ${text}`); + const el = await this.findByText(text, scope); + return el.click(); + } catch (cause) { + throw await enhanceError(outerError, cause, this.driver); + } } - clickButton (text) { - return this.clickXpath(`//button//*[contains(text(), '${text}')]`); + /** + * Click a category in the blocks pane. + * @param {string} categoryText The text of the category to click. + * @returns {Promise} A promise that resolves when the category is clicked. + */ + async clickBlocksCategory (categoryText) { + const outerError = new Error(`clickBlocksCategory failed with arguments:\n\tcategoryText: ${categoryText}`); + // The toolbox is destroyed and recreated several times, so avoid clicking on a nonexistent element and erroring + // out. First we wait for the block pane itself to appear, then wait 100ms for the toolbox to finish refreshing, + // then finally click the toolbox text. + try { + await this.setTitle(`clickBlocksCategory ${categoryText}`); + await this.findByXpath('//div[contains(@class, "blocks_blocks")]'); + await this.driver.sleep(100); + await this.clickText(categoryText, 'div[contains(@class, "blocks_blocks")]'); + await this.driver.sleep(500); // Wait for scroll to finish + } catch (cause) { + throw await enhanceError(outerError, cause); + } } - getLogs (whitelist) { - if (!whitelist) { - // Default whitelist - whitelist = [ - 'The play() request was interrupted by a call to pause()' - ]; + /** + * Right click an element by its text. + * @param {string} text The text to right click. + * @param {string} [scope] An optional xpath scope to search within. + * @returns {Promise} A promise that resolves when the element is right clicked. + */ + async rightClickText (text, scope) { + const outerError = new Error(`rightClickText failed with arguments:\n\ttext: ${text}\n\tscope: ${scope}`); + try { + await this.setTitle(`rightClickText ${text}`); + const el = await this.findByText(text, scope); + return this.driver.actions() + .click(el, Button.RIGHT) + .perform(); + } catch (cause) { + throw await enhanceError(outerError, cause, this.driver); } - return this.driver.manage() - .logs() - .get('browser') - .then(entries => entries.filter(entry => { + } + + /** + * Click a button by its text. + * @param {string} text The text to click. + * @returns {Promise} A promise that resolves when the button is clicked. + */ + async clickButton (text) { + const outerError = new Error(`clickButton failed with arguments:\n\ttext: ${text}`); + try { + await this.setTitle(`clickButton ${text}`); + await this.clickXpath(`//button//*[contains(text(), '${text}')]`); + } catch (cause) { + throw await enhanceError(outerError, cause, this.driver); + } + } + + /** + * Get selected browser log entries. + * @param {Array.} [whitelist] An optional list of log strings to allow. Default: see implementation. + * @returns {Promise>} A promise that resolves to the log entries. + */ + async getLogs (whitelist) { + const outerError = new Error(`getLogs failed with arguments:\n\twhitelist: ${whitelist}`); + try { + await this.setTitle(`getLogs ${whitelist}`); + if (!whitelist) { + // Default whitelist + whitelist = [ + 'The play() request was interrupted by a call to pause()' + ]; + } + const entries = await this.driver.manage() + .logs() + .get('browser'); + return entries.filter(entry => { const message = entry.message; - for (let i = 0; i < whitelist.length; i++) { - if (message.indexOf(whitelist[i]) !== -1) { + for (const element of whitelist) { + if (message.indexOf(element) !== -1) { return false; - } else if (entry.level !== 'SEVERE') { + } else if (entry.level !== 'SEVERE') { // WARNING: this doesn't do what it looks like it does! return false; } } return true; - })); + }); + } catch (cause) { + throw await enhanceError(outerError, cause); + } } } diff --git a/test/integration/blocks.test.js b/test/integration/blocks.test.js index d0199330b37..25211007885 100644 --- a/test/integration/blocks.test.js +++ b/test/integration/blocks.test.js @@ -3,12 +3,15 @@ import SeleniumHelper from '../helpers/selenium-helper'; const { clickText, + clickBlocksCategory, clickButton, clickXpath, findByText, findByXpath, + textExists, getDriver, getLogs, + Key, loadUri, rightClickText, scope @@ -18,6 +21,9 @@ const uri = path.resolve(__dirname, '../../build/index.html'); let driver; +const SETTINGS_MENU_XPATH = '//div[contains(@class, "menu-bar_menu-bar-item")]' + + '[*[contains(@class, "settings-menu_dropdown-label")]//*[text()="Settings"]]'; + describe('Working with the blocks', () => { beforeAll(() => { driver = getDriver(); @@ -30,8 +36,7 @@ describe('Working with the blocks', () => { test('Blocks report when clicked in the toolbox', async () => { await loadUri(uri); await clickText('Code'); - await clickText('Operators', scope.blocksTab); - await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation + await clickBlocksCategory('Operators'); await clickText('join', scope.blocksTab); // Click "join " block await findByText('apple banana', scope.reportedValue); // Tooltip with result const logs = await getLogs(); @@ -40,14 +45,13 @@ describe('Working with the blocks', () => { test('Switching sprites updates the block menus', async () => { await loadUri(uri); - await clickText('Sound', scope.blocksTab); - await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation + await clickBlocksCategory('Sound'); // "Meow" sound block should be visible await findByText('Meow', scope.blocksTab); await clickText('Backdrops'); // Switch to the backdrop // Now "pop" sound block should be visible and motion blocks hidden await findByText('pop', scope.blocksTab); - await clickText('Motion', scope.blocksTab); + await clickBlocksCategory('Motion'); await findByText('Stage selected: no motion blocks'); const logs = await getLogs(); @@ -57,8 +61,7 @@ describe('Working with the blocks', () => { test('Creating variables', async () => { await loadUri(uri); await clickText('Code'); - await clickText('Variables', scope.blocksTab); - await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation + await clickBlocksCategory('Variables'); // Expect a default variable "my variable" to be visible await clickText('my\u00A0variable', scope.blocksTab); @@ -74,8 +77,7 @@ describe('Working with the blocks', () => { await clickButton('OK'); // Make sure reporting works on a new variable - await clickText('Variables', scope.blocksTab); - await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation + await clickBlocksCategory('Variables'); await clickText('score', scope.blocksTab); await findByText('0', scope.reportedValue); // Tooltip with result @@ -92,6 +94,13 @@ describe('Working with the blocks', () => { await clickButton('OK'); await findByXpath("//input[@step='0.01'][@max='100.1']"); + // Hiding the monitor via context menu should work + await rightClickText('score', scope.monitors); + await clickText('hide', scope.contextMenu); + await driver.sleep(100); + const monitorExists = await textExists('score', scope.monitors); + await expect(monitorExists).toBeFalsy(); + const logs = await getLogs(); await expect(logs).toEqual([]); }); @@ -99,8 +108,7 @@ describe('Working with the blocks', () => { test('Creating a list', async () => { await loadUri(uri); await clickText('Code'); - await clickText('Variables', scope.blocksTab); - await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation + await clickBlocksCategory('Variables'); await clickText('Make a List'); let el = await findByXpath("//input[@name='New list name:']"); @@ -126,14 +134,20 @@ describe('Working with the blocks', () => { await clickText('list1', scope.blocksTab); await findByText('thing thing thing thing2', scope.reportedValue); // Tooltip with result + // Hiding the monitor via context menu should work + await rightClickText('list1', scope.monitors); + await clickText('hide', scope.contextMenu); + await driver.sleep(100); + const monitorExists = await textExists('list1', scope.monitors); + await expect(monitorExists).toBeFalsy(); + const logs = await getLogs(); await expect(logs).toEqual([]); }); test('Custom procedures', async () => { await loadUri(uri); - await clickText('My Blocks'); - await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation + await clickBlocksCategory('My Blocks'); await clickText('Make a Block'); // Click on the "add an input" buttons await clickText('number or text', scope.modal); @@ -164,8 +178,7 @@ describe('Working with the blocks', () => { test('Record option from sound block menu opens sound recorder', async () => { await loadUri(uri); await clickText('Code'); - await clickText('Sound', scope.blocksTab); - await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation + await clickBlocksCategory('Sound'); await clickText('Meow', scope.blocksTab); // Click "play sound until done" block await clickText('record'); // Click "record..." option in the block's sound menu // Access has been force denied, so close the alert that comes up @@ -185,11 +198,14 @@ describe('Working with the blocks', () => { await clickText('costume2', scope.costumesTab); const el = await findByXpath("//input[@value='costume2']"); await el.sendKeys('newname'); + await el.sendKeys(Key.ENTER); + // wait until the updated costume appears in costume item list panel + await findByXpath("//div[contains(@class,'sprite-selector-item_is-selected_')]" + + "//div[contains(text(), 'newname')]"); // Make sure it is updated in the block menu await clickText('Code'); - await clickText('Looks', scope.blocksTab); - await driver.sleep(500); // Wait for scroll to finish + await clickBlocksCategory('Looks'); await clickText('newname', scope.blocksTab); }); @@ -201,22 +217,24 @@ describe('Working with the blocks', () => { await clickText('costume2', scope.costumesTab); const el = await findByXpath("//input[@value='costume2']"); await el.sendKeys(''); + await el.sendKeys(Key.ENTER); + // wait until the updated costume appears in costume item list panel + await findByXpath("//div[contains(@class,'sprite-selector-item_is-selected_')]" + + "//div[contains(text(), '')]"); // Make sure it is updated in the block menu await clickText('Code'); - await clickText('Looks', scope.blocksTab); - await driver.sleep(500); // Wait for scroll to finish + await clickBlocksCategory('Looks'); await clickText('', scope.blocksTab); - await clickText('Sound', scope.blocksTab); + await clickBlocksCategory('Sound'); }); test('Adding costumes DOES update the default costume name in the toolbox', async () => { await loadUri(uri); // By default, costume2 is in the costume tab - await clickText('Looks', scope.blocksTab); - await driver.sleep(500); // Wait for scroll to finish + await clickBlocksCategory('Looks'); await clickText('costume2', scope.blocksTab); // Also check that adding a new costume does update the list @@ -226,6 +244,9 @@ describe('Working with the blocks', () => { .perform(); await driver.sleep(500); // Wait for thermometer menu to come up await clickXpath('//button[@aria-label="Paint"]'); + // wait until the new costume appears in costume item list panel + await findByXpath("//div[contains(@class,'sprite-selector-item_is-selected_')]" + + "//div[contains(text(), 'costume3')]"); await clickText('costume3', scope.costumesTab); // Check that the menu has been updated await clickText('Code'); @@ -233,14 +254,16 @@ describe('Working with the blocks', () => { }); // Skipped because it was flakey on travis, but seems to run locally ok - test.skip('Adding a sound DOES update the default sound name in the toolbox', async () => { + test('Adding a sound DOES update the default sound name in the toolbox', async () => { await loadUri(uri); await clickText('Sounds'); await clickXpath('//button[@aria-label="Choose a Sound"]'); await clickText('A Bass', scope.modal); // Should close the modal + // wait until the selected sound appears in sounds item list panel + await findByXpath("//div[contains(@class,'sprite-selector-item_is-selected_')]" + + "//div[contains(text(), 'A Bass')]"); await clickText('Code'); - await clickText('Sound', scope.blocksTab); - await driver.sleep(500); // Wait for scroll to finish + await clickBlocksCategory('Sound'); await clickText('A\u00A0Bass', scope.blocksTab); // Need   for block text }); @@ -249,15 +272,13 @@ describe('Working with the blocks', () => { const playerUri = path.resolve(__dirname, '../../build/player.html'); await loadUri(playerUri); await clickText('See inside'); - await clickText('Variables'); - await driver.sleep(500); // Wait for scroll to finish + await clickBlocksCategory('Variables'); await clickText('my\u00A0variable'); await clickText('See Project Page'); await clickText('See inside'); - await clickText('Variables'); - await driver.sleep(500); // Wait for scroll to finish + await clickBlocksCategory('Variables'); await clickText('my\u00A0variable'); }); @@ -266,12 +287,53 @@ describe('Working with the blocks', () => { await loadUri(uri); await clickText('Costumes'); await clickText('Code'); - await clickText('Variables', scope.blocksTab); - await driver.sleep(500); // Wait for scroll + await clickBlocksCategory('Variables'); await clickText('Make a List'); const el = await findByXpath("//input[@name='New list name:']"); await el.sendKeys('list1'); await clickButton('OK'); await clickText('list1', scope.blocksTab); }); + + test('Use variable blocks after switching languages', async () => { + const myVariable = 'my\u00A0variable'; + const changeVariableByScope = "*[@data-id='data_changevariableby']"; + + await loadUri(uri); + + await clickText('Code'); + await clickBlocksCategory('Variables'); + + // change "my variable" by 1 + await clickText('change', changeVariableByScope); + + // check reported value 1 + await clickText(myVariable, scope.blocksTab); + await findByText('1', scope.reportedValue); + + // change language + await clickXpath(SETTINGS_MENU_XPATH); + await clickText('Language', scope.menuBar); + await clickText('Deutsch'); + + await clickText('Skripte'); + await clickBlocksCategory('Variablen'); + + // make sure "my variable" is still 1 + await clickText(myVariable); + await findByText('1', scope.reportedValue); + + // change step from 1 to 10 + await clickText('1', changeVariableByScope); + await driver.actions() + .sendKeys('10') + .perform(); + + // change "my variable" by 10 + await clickText('ändere', changeVariableByScope); + + // check it is turned up to 11 + await clickText(myVariable); + await findByText('11', scope.reportedValue); + }); }); diff --git a/test/integration/costumes.test.js b/test/integration/costumes.test.js index 0d1a784f6f7..3dcd4485456 100644 --- a/test/integration/costumes.test.js +++ b/test/integration/costumes.test.js @@ -13,6 +13,9 @@ const { scope } = new SeleniumHelper(); +// The costumes library is slow to load. Increase the timeout for these tests. +jest.setTimeout(60_000); + const uri = path.resolve(__dirname, '../../build/index.html'); let driver; @@ -27,10 +30,6 @@ describe('Working with costumes', () => { }); test('Adding a costume through the library', async () => { - // This is needed when running the tests all at once or it just fails... - await driver.quit(); - driver = getDriver(); - await loadUri(uri); await driver.sleep(500); await clickText('Costumes'); @@ -148,6 +147,20 @@ describe('Working with costumes', () => { await expect(logs).toEqual([]); }); + test('Adding a bmp from file', async () => { + await loadUri(uri); + await clickText('Costumes'); + const el = await findByXpath('//button[@aria-label="Choose a Costume"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/bmpfile.bmp')); + await clickText('bmpfile', scope.costumesTab); + const logs = await getLogs(); + await expect(logs).toEqual([]); + }); + test('Adding several costumes with a gif', async () => { await loadUri(uri); await clickText('Costumes'); @@ -193,7 +206,7 @@ describe('Working with costumes', () => { .mouseMove(abbyElement) .perform(); // wait for one of Abby's alternate costumes to appear - await findByXpath('//img[@src="https://cdn.assets.scratch.mit.edu/internalapi/asset/b6e23922f23b49ddc6f62f675e77417c.svg/get/"]'); + await findByXpath('//img[@src="https://cdn.assets.scratch.mit.edu/internalapi/asset/45de34b47a2ce22f6f5d28bb35a44ff5.svg/get/"]'); const logs = await getLogs(); await expect(logs).toEqual([]); }); @@ -218,4 +231,32 @@ describe('Working with costumes', () => { const logs = await getLogs(); await expect(logs).toEqual([]); }); + + test('Load an invalid svg from scratch3 as costume', async () => { // eslint-disable-line no-disabled-tests + await loadUri(uri); + await clickText('Costumes'); + const el = await findByXpath('//button[@aria-label="Choose a Costume"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/corrupt-from-scratch3.svg')); + const costumeTile = await findByText('corrupt-from-scratch3', scope.costumesTab); // Name from filename + const tileVisible = await costumeTile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + test('Load an invalid svg from scratch2 as costume', async () => { // eslint-disable-line no-disabled-tests + await loadUri(uri); + await clickText('Costumes'); + const el = await findByXpath('//button[@aria-label="Choose a Costume"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/scratch2-corrupted.svg')); + const costumeTile = await findByText('scratch2-corrupted', scope.costumesTab); // Name from filename + const tileVisible = await costumeTile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); }); diff --git a/test/integration/how-tos.test.js b/test/integration/how-tos.test.js index 577031f37d6..494d7ce4ef5 100644 --- a/test/integration/how-tos.test.js +++ b/test/integration/how-tos.test.js @@ -27,8 +27,8 @@ describe('Working with the how-to library', () => { await loadUri(uri); await clickText('Costumes'); await clickXpath('//*[@aria-label="Tutorials"]'); - await clickText('Getting Started'); // Modal should close - // Make sure YouTube video on first card appears + await clickText('Add a Backdrop'); // Modal should close + // Make sure YouTube video on card appears await findByXpath('//div[contains(@class, "step-video")]'); const logs = await getLogs(); await expect(logs).toEqual([]); diff --git a/test/integration/localization.test.js b/test/integration/localization.test.js index 5c1403658eb..00cae10ba49 100644 --- a/test/integration/localization.test.js +++ b/test/integration/localization.test.js @@ -4,17 +4,24 @@ import SeleniumHelper from '../helpers/selenium-helper'; const { clickText, clickXpath, + findByText, + findByXpath, getDriver, getLogs, loadUri, - scope, - rightClickText + rightClickText, + scope } = new SeleniumHelper(); const uri = path.resolve(__dirname, '../../build/index.html'); let driver; +const FILE_MENU_XPATH = '//div[contains(@class, "menu-bar_menu-bar-item")]' + + '[*[contains(@class, "menu-bar_collapsible-label")]//*[text()="File"]]'; +const SETTINGS_MENU_XPATH = '//div[contains(@class, "menu-bar_menu-bar-item")]' + + '[*[contains(@class, "settings-menu_dropdown-label")]//*[text()="Settings"]]'; + describe('Localization', () => { beforeAll(() => { driver = getDriver(); @@ -25,17 +32,14 @@ describe('Localization', () => { }); test('Switching languages', async () => { - await driver.quit(); - driver = getDriver(); await loadUri(uri); // Add a sprite to make sure it stays when switching languages - await clickText('Costumes'); await clickXpath('//button[@aria-label="Choose a Sprite"]'); await clickText('Apple', scope.modal); // Closes modal - await clickText('Code'); - await clickXpath('//*[@aria-label="language selector"]'); + await clickXpath(SETTINGS_MENU_XPATH); + await clickText('Language', scope.menuBar); await clickText('Deutsch'); await new Promise(resolve => setTimeout(resolve, 1000)); // wait for blocks refresh @@ -66,4 +70,40 @@ describe('Localization', () => { const logs = await getLogs(); await expect(logs).toEqual([]); }); + + // test for #5445 + test('Loading with locale shows correct translation for string length block parameter', async () => { + await loadUri(`${uri}?locale=ja`); + await clickText('演算'); // Operators category in Japanese + await new Promise(resolve => setTimeout(resolve, 1000)); // wait for blocks to scroll + await clickText('の長さ', scope.blocksTab); // Click "length " block + await findByText('3', scope.reportedValue); // Tooltip with result + const logs = await getLogs(); + await expect(logs).toEqual([]); + }); + + // Regression test for ENA-142, monitor can lag behind language selection + test('Monitor labels update on locale change', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/monitor-variable.sb3')); + + // Monitors are present + await findByText('username', scope.monitors); + await findByText('language', scope.monitors); + + // Change locale to ja + await clickXpath(SETTINGS_MENU_XPATH); + await clickText('Language', scope.menuBar); + await clickText('日本語'); + + // Monitor labels updated + await findByText('ユーザー名', scope.monitors); + await findByText('言語', scope.monitors); + + const logs = await getLogs(); + await expect(logs).toEqual([]); + }); }); diff --git a/test/integration/menu-bar.test.js b/test/integration/menu-bar.test.js index 3f6457e5208..33a6353e61c 100644 --- a/test/integration/menu-bar.test.js +++ b/test/integration/menu-bar.test.js @@ -16,6 +16,11 @@ const uri = path.resolve(__dirname, '../../build/index.html'); let driver; +const FILE_MENU_XPATH = '//div[contains(@class, "menu-bar_menu-bar-item")]' + + '[*[contains(@class, "menu-bar_collapsible-label")]//*[text()="File"]]'; +const SETTINGS_MENU_XPATH = '//div[contains(@class, "menu-bar_menu-bar-item")]' + + '[*[contains(@class, "settings-menu_dropdown-label")]//*[text()="Settings"]]'; + describe('Menu bar settings', () => { beforeAll(() => { driver = getDriver(); @@ -27,28 +32,19 @@ describe('Menu bar settings', () => { test('File->New should be enabled', async () => { await loadUri(uri); - await clickXpath( - '//div[contains(@class, "menu-bar_menu-bar-item") and ' + - 'contains(@class, "menu-bar_hoverable")][span[text()="File"]]' - ); + await clickXpath(FILE_MENU_XPATH); await findByXpath('//*[li[span[text()="New"]] and not(@data-tip="tooltip")]'); }); test('File->Load should be enabled', async () => { await loadUri(uri); - await clickXpath( - '//div[contains(@class, "menu-bar_menu-bar-item") and ' + - 'contains(@class, "menu-bar_hoverable")][span[text()="File"]]' - ); + await clickXpath(FILE_MENU_XPATH); await findByXpath('//*[li[text()="Load from your computer"] and not(@data-tip="tooltip")]'); }); test('File->Save should be enabled', async () => { await loadUri(uri); - await clickXpath( - '//div[contains(@class, "menu-bar_menu-bar-item") and ' + - 'contains(@class, "menu-bar_hoverable")][span[text()="File"]]' - ); + await clickXpath(FILE_MENU_XPATH); await findByXpath('//*[li[span[text()="Save to your computer"]] and not(@data-tip="tooltip")]'); }); @@ -74,7 +70,8 @@ describe('Menu bar settings', () => { test('User is not warned before uploading project file over a fresh project', async () => { await loadUri(uri); - await clickText('File'); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); await input.sendKeys(path.resolve(__dirname, '../fixtures/project1.sb3')); // No replace alert since no changes were made @@ -87,12 +84,90 @@ describe('Menu bar settings', () => { // Change the project by deleting a sprite await rightClickText('Sprite1', scope.spriteTile); await clickText('delete', scope.spriteTile); + await clickText('yes', scope.modal); - await clickText('File'); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); await input.sendKeys(path.resolve(__dirname, '../fixtures/project1.sb3')); await driver.switchTo().alert() .accept(); await findByText('project1-sprite'); }); + + test('Theme picker shows themes', async () => { + await loadUri(uri); + await clickXpath(SETTINGS_MENU_XPATH); + await clickText('Color Mode', scope.menuBar); + + expect(await (await findByText('Original', scope.menuBar)).isDisplayed()).toBe(true); + expect(await (await findByText('High Contrast', scope.menuBar)).isDisplayed()).toBe(true); + }); + + test('Theme picker switches to high contrast', async () => { + await loadUri(uri); + await clickXpath(SETTINGS_MENU_XPATH); + await clickText('Color Mode', scope.menuBar); + await clickText('High Contrast', scope.menuBar); + + // There is a tiny delay for the color theme to be applied to the categories. + await driver.wait(async () => { + const motionCategoryDiv = await findByXpath( + '//div[contains(@class, "scratchCategoryMenuItem") and ' + + 'contains(@class, "scratchCategoryId-motion")]/*[1]'); + const color = await motionCategoryDiv.getCssValue('background-color'); + + // Documentation for getCssValue says it depends on how the browser + // returns the value. Locally I am seeing 'rgba(128, 181, 255, 1)', + // but this is a bit flexible just in case. + return /128,\s?181,\s?255/.test(color) || color.includes('80B5FF'); + }, 5000, 'Motion category color does not match high contrast theme'); + }); + + test('Settings menu switches between submenus', async () => { + await loadUri(uri); + await clickXpath(SETTINGS_MENU_XPATH); + + // Language and theme options not visible yet + expect(await (await findByText('High Contrast', scope.menuBar)).isDisplayed()).toBe(false); + expect(await (await findByText('Esperanto', scope.menuBar)).isDisplayed()).toBe(false); + + await clickText('Color Mode', scope.menuBar); + + // Only theme options visible + expect(await (await findByText('High Contrast', scope.menuBar)).isDisplayed()).toBe(true); + expect(await (await findByText('Esperanto', scope.menuBar)).isDisplayed()).toBe(false); + + await clickText('Language', scope.menuBar); + + // Only language options visible + expect(await (await findByText('High Contrast', scope.menuBar)).isDisplayed()).toBe(false); + expect(await (await findByText('Esperanto', scope.menuBar)).isDisplayed()).toBe(true); + }); + + test('Menu labels hidden when width is equal to 1024', async () => { + await loadUri(uri); + await driver.manage() + .window() + .setSize(1024, 768); + + const collapsibleMenus = ['Settings', 'File', 'Edit', 'Tutorials']; + for (const menu of collapsibleMenus) { + const settingsMenu = await findByText(menu, scope.menuBar); + expect(await settingsMenu.isDisplayed()).toBe(false); + } + }); + + test('Menu labels shown when width is greater than 1024', async () => { + await loadUri(uri); + await driver.manage() + .window() + .setSize(1200, 768); + + const collapsibleMenus = ['Settings', 'File', 'Edit', 'Tutorials']; + for (const menu of collapsibleMenus) { + const settingsMenu = await findByText(menu, scope.menuBar); + expect(await settingsMenu.isDisplayed()).toBe(true); + } + }); }); diff --git a/test/integration/project-loading.test.js b/test/integration/project-loading.test.js index b11a5bf594d..697b136ef87 100644 --- a/test/integration/project-loading.test.js +++ b/test/integration/project-loading.test.js @@ -16,6 +16,9 @@ const uri = path.resolve(__dirname, '../../build/index.html'); let driver; +const FILE_MENU_XPATH = '//div[contains(@class, "menu-bar_menu-bar-item")]' + + '[*[contains(@class, "menu-bar_collapsible-label")]//*[text()="File"]]'; + describe('Loading scratch gui', () => { beforeAll(() => { driver = getDriver(); @@ -76,14 +79,13 @@ describe('Loading scratch gui', () => { await expect(logs).toEqual([]); }); - test('Creating new project resets active tab to Code tab', async () => { + // skipping because this test fails frequently on CI; might need "wait(until.elementLocated" or similar + // error message is "stale element reference: element is not attached to the page document" + test.skip('Creating new project resets active tab to Code tab', async () => { await loadUri(uri); await findByXpath('//*[span[text()="Costumes"]]'); await clickText('Costumes'); - await clickXpath( - '//div[contains(@class, "menu-bar_menu-bar-item") and ' + - 'contains(@class, "menu-bar_hoverable")][span[text()="File"]]' - ); + await clickXpath(FILE_MENU_XPATH); await clickXpath('//li[span[text()="New"]]'); await findByXpath('//div[@class="scratchCategoryMenu"]'); await clickText('Operators', scope.blocksTab); @@ -91,25 +93,19 @@ describe('Loading scratch gui', () => { test('Not logged in->made no changes to project->create new project should not show alert', async () => { await loadUri(uri); - await clickXpath( - '//div[contains(@class, "menu-bar_menu-bar-item") and ' + - 'contains(@class, "menu-bar_hoverable")][span[text()="File"]]' - ); + await clickXpath(FILE_MENU_XPATH); await clickXpath('//li[span[text()="New"]]'); await findByXpath('//*[div[@class="scratchCategoryMenu"]]'); await clickText('Operators', scope.blocksTab); }); - test('Not logged in->made a change to project->create new project should show alert', async () => { + test.skip('Not logged in->made a change to project->create new project should show alert', async () => { await loadUri(uri); await clickText('Sounds'); await clickXpath('//button[@aria-label="Choose a Sound"]'); await clickText('A Bass', scope.modal); // Should close the modal await findByText('1.28'); // length of A Bass sound - await clickXpath( - '//div[contains(@class, "menu-bar_menu-bar-item") and ' + - 'contains(@class, "menu-bar_hoverable")][span[text()="File"]]' - ); + await clickXpath(FILE_MENU_XPATH); await clickXpath('//li[span[text()="New"]]'); driver.switchTo() .alert() diff --git a/test/integration/project-state.test.js b/test/integration/project-state.test.js new file mode 100644 index 00000000000..cb1c245a496 --- /dev/null +++ b/test/integration/project-state.test.js @@ -0,0 +1,45 @@ +import path from 'path'; +import SeleniumHelper from '../helpers/selenium-helper'; + +const { + clickText, + clickXpath, + findByXpath, + getDriver, + Key, + loadUri +} = new SeleniumHelper(); + +const uri = path.resolve(__dirname, '../../build/index.html'); + +let driver; + +const FILE_MENU_XPATH = '//div[contains(@class, "menu-bar_menu-bar-item")]' + + '[*[contains(@class, "menu-bar_collapsible-label")]//*[text()="File"]]'; + +describe('Project state', () => { + beforeAll(() => { + driver = getDriver(); + }); + + afterAll(async () => { + await driver.quit(); + }); + + test('File->New resets project title', async () => { + const defaultProjectTitle = 'Scratch Project'; + await loadUri(uri); + const inputEl = await findByXpath(`//input[@value="${defaultProjectTitle}"]`); + for (let i = 0; i < defaultProjectTitle.length; i++) { + inputEl.sendKeys(Key.BACK_SPACE); + } + inputEl.sendKeys('Changed title of project'); + await clickText('Costumes'); // just to blur the input + // verify that project title has changed + await clickXpath('//input[@value="Changed title of project"]'); + await clickXpath(FILE_MENU_XPATH); + await clickXpath('//li[span[text()="New"]]'); + // project title should be default again + await clickXpath(`//input[@value="${defaultProjectTitle}"]`); + }); +}); diff --git a/test/integration/sb-file-uploader-hoc.test.js b/test/integration/sb-file-uploader-hoc.test.js new file mode 100644 index 00000000000..1b38f4978d7 --- /dev/null +++ b/test/integration/sb-file-uploader-hoc.test.js @@ -0,0 +1,114 @@ +import path from 'path'; +import SeleniumHelper from '../helpers/selenium-helper'; + +const { + clickText, + clickXpath, + findByText, + findByXpath, + getDriver, + loadUri +} = new SeleniumHelper(); + +const uri = path.resolve(__dirname, '../../build/index.html'); + +let driver; + +const FILE_MENU_XPATH = '//div[contains(@class, "menu-bar_menu-bar-item")]' + + '[*[contains(@class, "menu-bar_collapsible-label")]//*[text()="File"]]'; + +describe('Loading scratch gui', () => { + beforeAll(() => { + driver = getDriver(); + }); + + afterAll(async () => { + await driver.quit(); + }); + + test('Loading project file from computer succeeds, without opening failure alert', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/project1.sb3')); + await findByText('project1-sprite'); + // this test will fail if an alert appears, e.g. in SBFileUploaderHOC's onload() function + }); + + test('Loading project file from computer gives project the filename from file', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/project1.sb3')); + await findByText('project1-sprite'); + await clickXpath('//input[@value="project1"]'); + }); + + test('Load sb3 project with a missing svg costume', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/missing-sprite-svg.sb3')); + const spriteTile = await findByText('Blue Square Guy'); + const tileVisible = await spriteTile.isDisplayed(); + expect(tileVisible).toBe(true); + }); + + test('Load sb3 project with an invalid svg costume', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/corrupt-svg.sb3')); + const spriteTile = await findByText('Blue Square Guy'); + const tileVisible = await spriteTile.isDisplayed(); + expect(tileVisible).toBe(true); + }); + + test('Load sb2 project with a missing svg costume', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/missing-svg.sb2')); + const spriteTile = await findByText('Blue Guy'); + const tileVisible = await spriteTile.isDisplayed(); + expect(tileVisible).toBe(true); + }); + + test('Load sb2 project with an invalid svg costume', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/corrupt-svg.sb2')); + const spriteTile = await findByText('Blue Guy'); + const tileVisible = await spriteTile.isDisplayed(); + expect(tileVisible).toBe(true); + }); + + test('Load sb3 project with a missing bmp costume', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/missing-bmp.sb3')); + const spriteTile = await findByText('green-bmp-guy'); + const tileVisible = await spriteTile.isDisplayed(); + expect(tileVisible).toBe(true); + }); + + test('Load sb3 project with an invalid bmp costume', async () => { + await loadUri(uri); + await clickXpath(FILE_MENU_XPATH); + await clickText('Load from your computer'); + const input = await findByXpath('//input[@accept=".sb,.sb2,.sb3"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/corrupt-bmp.sb3')); + const spriteTile = await findByText('green-bmp-guy'); + const tileVisible = await spriteTile.isDisplayed(); + expect(tileVisible).toBe(true); + }); +}); diff --git a/test/integration/sounds.test.js b/test/integration/sounds.test.js index fee7befd472..27946e186fa 100644 --- a/test/integration/sounds.test.js +++ b/test/integration/sounds.test.js @@ -169,16 +169,18 @@ describe('Working with sounds', () => { }); test('Keyboard shortcuts', async () => { + const cmdCtrl = process.platform.includes('darwin') ? Key.COMMAND : Key.CONTROL; + await loadUri(uri); await clickText('Sounds'); const el = await findByXpath('//button[@aria-label="Choose a Sound"]'); - await el.sendKeys(Key.chord(Key.COMMAND, 'a')); // Select all + await el.sendKeys(Key.chord(cmdCtrl, 'a')); // Select all await findByText('0.85', scope.soundsTab); // Meow sound duration await el.sendKeys(Key.DELETE); await findByText('0.00', scope.soundsTab); // Sound is now empty - await el.sendKeys(Key.chord(Key.COMMAND, 'z')); // undo + await el.sendKeys(Key.chord(cmdCtrl, 'z')); // undo await findByText('0.85', scope.soundsTab); // Meow sound is back - await el.sendKeys(Key.chord(Key.COMMAND, Key.SHIFT, 'z')); // redo + await el.sendKeys(Key.chord(cmdCtrl, Key.SHIFT, 'z')); // redo await findByText('0.00', scope.soundsTab); // Sound is empty again const logs = await getLogs(); diff --git a/test/integration/sprites.test.js b/test/integration/sprites.test.js index 511d898ebce..c798e0a1792 100644 --- a/test/integration/sprites.test.js +++ b/test/integration/sprites.test.js @@ -1,5 +1,7 @@ import path from 'path'; import SeleniumHelper from '../helpers/selenium-helper'; +import {StaleElementReferenceError} from 'selenium-webdriver/lib/error'; +import until from 'selenium-webdriver/lib/until'; const { clickText, @@ -66,6 +68,7 @@ describe('Working with sprites', () => { await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation await rightClickText('Sprite1', scope.spriteTile); await clickText('delete', scope.spriteTile); + await clickText('yes', scope.modal); // Confirm that the stage has been switched to await findByText('Stage selected: no motion blocks'); const logs = await getLogs(); @@ -76,6 +79,7 @@ describe('Working with sprites', () => { await loadUri(uri); await new Promise(resolve => setTimeout(resolve, 1000)); // Wait for scroll animation await clickXpath('//*[@aria-label="Delete"]'); // Only visible close button is on the sprite + await clickText('yes', scope.modal); // Confirm that the stage has been switched to await findByText('Stage selected: no motion blocks'); const logs = await getLogs(); @@ -152,20 +156,16 @@ describe('Working with sprites', () => { }); test('Use browser back button to close library', async () => { - await driver.get('https://www.google.com'); await loadUri(uri); await clickText('Costumes'); await clickXpath('//button[@aria-label="Choose a Sprite"]'); const abbyElement = await findByText('Abby'); // Should show editor for new costume await elementIsVisible(abbyElement); await driver.navigate().back(); - try { - // should throw error because library is no longer visible - await elementIsVisible(abbyElement); - throw 'ShouldNotGetHere'; // eslint-disable-line no-throw-literal - } catch (e) { - expect(e.constructor.name).toEqual('StaleElementReferenceError'); - } + // should throw error because library is no longer present + await expect(driver.wait(until.elementIsVisible(abbyElement))) + .rejects + .toBeInstanceOf(StaleElementReferenceError); const costumesElement = await findByText('Costumes'); // Should show editor for new costume await elementIsVisible(costumesElement); const logs = await getLogs(); @@ -192,4 +192,110 @@ describe('Working with sprites', () => { await expect(logs).toEqual([]); }); + test('Load a sprite3 with a missing svg costume', async () => { + await loadUri(uri); + const el = await findByXpath('//button[@aria-label="Choose a Sprite"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/missing-svg.sprite3')); + const tile = await findByText('Blue Square Guy', scope.spriteTile); + const tileVisible = await tile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + test('Load a sprite3 with a currupt svg costume', async () => { + await loadUri(uri); + const el = await findByXpath('//button[@aria-label="Choose a Sprite"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/corrupt-svg.sprite3')); + const tile = await findByText('Blue Square Guy', scope.spriteTile); + const tileVisible = await tile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + test('Load a scratch3 corrupt svg as a sprite', async () => { + await loadUri(uri); + const el = await findByXpath('//button[@aria-label="Choose a Sprite"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/corrupt-from-scratch3.svg')); + const tile = await findByText('corrupt-from-scratch3', scope.spriteTile); + const tileVisible = await tile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + test('Load a sprite2 with a missing svg costume', async () => { + await loadUri(uri); + const el = await findByXpath('//button[@aria-label="Choose a Sprite"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/missing-svg.sprite2')); + const tile = await findByText('Blue Guy', scope.spriteTile); + const tileVisible = await tile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + test('Load a sprite2 with a currupt svg costume', async () => { + await loadUri(uri); + const el = await findByXpath('//button[@aria-label="Choose a Sprite"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/corrupted-svg.sprite2')); + const tile = await findByText('Blue Guy', scope.spriteTile); + const tileVisible = await tile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + test('Load a corrupt scratch2 svg as a sprite', async () => { + await loadUri(uri); + const el = await findByXpath('//button[@aria-label="Choose a Sprite"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/scratch2-corrupted.svg')); + const tile = await findByText('scratch2-corrupted', scope.spriteTile); + const tileVisible = await tile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + test('Load a sprite3 with a missing bmp costume', async () => { + await loadUri(uri); + const el = await findByXpath('//button[@aria-label="Choose a Sprite"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/missing-bmp.sprite3')); + const tile = await findByText('green-bmp-guy', scope.spriteTile); + const tileVisible = await tile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + test('Load a sprite3 with a currupt bmp costume', async () => { + await loadUri(uri); + const el = await findByXpath('//button[@aria-label="Choose a Sprite"]'); + await driver.actions().mouseMove(el) + .perform(); + await driver.sleep(500); // Wait for thermometer menu to come up + const input = await findByXpath('//input[@type="file"]'); + await input.sendKeys(path.resolve(__dirname, '../fixtures/corrupt-bmp.sprite3')); + const tile = await findByText('green-bmp-guy', scope.spriteTile); + const tileVisible = await tile.isDisplayed(); + await expect(tileVisible).toBe(true); + }); + + // TODO: uploading a corrupt bmp as a sprite should throw an error and not add a gray question mark + }); diff --git a/test/integration/stage-size.test.js b/test/integration/stage-size.test.js index 72de9c5bb15..0c3510140ff 100644 --- a/test/integration/stage-size.test.js +++ b/test/integration/stage-size.test.js @@ -27,18 +27,20 @@ describe('Loading scratch gui', () => { test('Switching small/large stage after highlighting and deleting sprite', async () => { await loadUri(uri); - // Highlight the sprite - await clickText('Sprite1', scope.spriteTile); + await new Promise((r) => setTimeout(r, 500)); // wait for animation + // Delete it await rightClickText('Sprite1', scope.spriteTile); + await clickText('delete', scope.spriteTile); + await clickText('yes', scope.modal); // Go to small stage mode - await clickXpath('//img[@alt="Switch to small stage"]'); + await clickXpath('//button[@title="Switch to small stage"]'); // Confirm app still working - await clickXpath('//img[@alt="Switch to large stage"]'); + await clickXpath('//button[@title="Switch to large stage"]'); const logs = await getLogs(); await expect(logs).toEqual([]); diff --git a/test/smoke/browser.test.js b/test/smoke/browser.test.js index 941b3eef3bd..2eeb2cfccea 100644 --- a/test/smoke/browser.test.js +++ b/test/smoke/browser.test.js @@ -16,7 +16,9 @@ const UNSUPPORTED_MESSAGE = 'Scratch 3.0 does not support Internet Explorer'; describe('Smoke tests on older browsers', () => { let driver; - afterEach(async () => await (driver && driver.quit())); + afterEach(async () => { + if (driver) await driver.quit(); + }); test('Credentials should be provided', () => { expect(SAUCE_USERNAME && SAUCE_ACCESS_KEY && SMOKE_URL).toBeTruthy(); diff --git a/test/unit/components/__snapshots__/sound-editor.test.jsx.snap b/test/unit/components/__snapshots__/sound-editor.test.jsx.snap index af7a255a407..d648559d748 100644 --- a/test/unit/components/__snapshots__/sound-editor.test.jsx.snap +++ b/test/unit/components/__snapshots__/sound-editor.test.jsx.snap @@ -230,6 +230,7 @@ exports[`Sound Editor Component matches snapshot 1`] = ` } > @@ -252,6 +253,7 @@ exports[`Sound Editor Component matches snapshot 1`] = ` } > @@ -295,6 +297,7 @@ exports[`Sound Editor Component matches snapshot 1`] = ` } > @@ -317,6 +320,7 @@ exports[`Sound Editor Component matches snapshot 1`] = ` } > diff --git a/test/unit/components/__snapshots__/sprite-selector-item.test.jsx.snap b/test/unit/components/__snapshots__/sprite-selector-item.test.jsx.snap index f7f19434a61..14936897676 100644 --- a/test/unit/components/__snapshots__/sprite-selector-item.test.jsx.snap +++ b/test/unit/components/__snapshots__/sprite-selector-item.test.jsx.snap @@ -53,7 +53,7 @@ exports[`SpriteSelectorItemComponent matches snapshot when given a number and de tabIndex={0} >
    hello
    ; + +describe('ErrorBoundary', () => { + const mockStore = configureStore(); + let store; + + beforeEach(() => { + store = mockStore({ + locales: { + isRtl: false, + locale: 'en-US' + } + }); + }); + + test('ErrorBoundary shows children before error and CrashMessageComponent after', () => { + const child = ; + const wrapper = mountWithIntl( + {child} + ); + const errorSite = wrapper.childAt(0).childAt(0); + + // @ts-ignore: 'onReload' prop is absent because this component will only be used for pattern matching + const crashMessagePattern = ; + + expect(wrapper.containsMatchingElement(child)).toBeTruthy(); + expect(wrapper.containsMatchingElement(crashMessagePattern)).toBeFalsy(); + + errorSite.simulateError(new Error('fake error for testing purposes')); + + expect(wrapper.containsMatchingElement(child)).toBeFalsy(); + expect(wrapper.containsMatchingElement(crashMessagePattern)).toBeTruthy(); + }); +}); diff --git a/test/unit/components/menu-bar.test.jsx b/test/unit/components/menu-bar.test.jsx new file mode 100644 index 00000000000..f2ae91dec89 --- /dev/null +++ b/test/unit/components/menu-bar.test.jsx @@ -0,0 +1,58 @@ +import React from 'react'; +import {mountWithIntl} from '../../helpers/intl-helpers'; +import MenuBar from '../../../src/components/menu-bar/menu-bar'; +import {menuInitialState} from '../../../src/reducers/menus'; +import {LoadingState} from '../../../src/reducers/project-state'; +import {DEFAULT_THEME} from '../../../src/lib/themes'; + +import configureStore from 'redux-mock-store'; +import {Provider} from 'react-redux'; +import VM from 'scratch-vm'; + +describe('MenuBar Component', () => { + const store = configureStore()({ + locales: { + isRtl: false, + locale: 'en-US' + }, + scratchGui: { + menus: menuInitialState, + projectState: { + loadingState: LoadingState.NOT_LOADED + }, + theme: { + theme: DEFAULT_THEME + }, + timeTravel: { + year: 'NOW' + }, + vm: new VM() + } + }); + + const getComponent = function (props = {}) { + return ; + }; + + test('menu bar with no About handler has no About button', () => { + const menuBar = mountWithIntl(getComponent()); + const button = menuBar.find('AboutButton'); + expect(button.exists()).toBe(false); + }); + + test('menu bar with an About handler has an About button', () => { + const onClickAbout = jest.fn(); + const menuBar = mountWithIntl(getComponent({onClickAbout})); + const button = menuBar.find('AboutButton'); + expect(button.exists()).toBe(true); + }); + + test('clicking on About button calls the handler', () => { + const onClickAbout = jest.fn(); + const menuBar = mountWithIntl(getComponent({onClickAbout})); + const button = menuBar.find('AboutButton'); + expect(onClickAbout).toHaveBeenCalledTimes(0); + button.simulate('click'); + expect(onClickAbout).toHaveBeenCalledTimes(1); + }); +}); diff --git a/test/unit/components/monitor-list.test.jsx b/test/unit/components/monitor-list.test.jsx index fa955546e3d..b9576d46423 100644 --- a/test/unit/components/monitor-list.test.jsx +++ b/test/unit/components/monitor-list.test.jsx @@ -1,9 +1,10 @@ import React from 'react'; -import {mountWithIntl} from '../../helpers/intl-helpers.jsx'; -import MonitorList from '../../../src/components/monitor-list/monitor-list.jsx'; import {OrderedMap} from 'immutable'; import configureStore from 'redux-mock-store'; import {Provider} from 'react-redux'; +import {mountWithIntl} from '../../helpers/intl-helpers.jsx'; +import MonitorList from '../../../src/components/monitor-list/monitor-list.jsx'; +import {DEFAULT_THEME} from '../../../src/lib/themes'; describe('MonitorListComponent', () => { const store = configureStore()({scratchGui: { @@ -11,6 +12,12 @@ describe('MonitorListComponent', () => { monitors: {}, savedMonitorPositions: {} }, + theme: { + theme: DEFAULT_THEME + }, + toolbox: { + toolboxXML: '' + }, vm: { runtime: { requestUpdateMonitor: () => {}, diff --git a/test/unit/components/monitor.test.jsx b/test/unit/components/monitor.test.jsx new file mode 100644 index 00000000000..e52fa603abd --- /dev/null +++ b/test/unit/components/monitor.test.jsx @@ -0,0 +1,56 @@ +import React from 'react'; +import {shallow} from 'enzyme'; +import DefaultMonitor from '../../../src/components/monitor/default-monitor'; +import Monitor from '../../../src/components/monitor/monitor'; +import {DARK_THEME, DEFAULT_THEME} from '../../../src/lib/themes'; + +jest.mock('../../../src/lib/themes/default'); +jest.mock('../../../src/lib/themes/dark'); + +describe('Monitor Component', () => { + test('it selects the correct colors based on default theme', () => { + const noop = () => {}; + + const wrapper = shallow(); + + const defaultMonitor = wrapper.find(DefaultMonitor); + + // selects colors from mock value in src/lib/themes/__mocks__/default-colors.js + expect(defaultMonitor.props().categoryColor).toEqual({background: '#111111', text: '#444444'}); + }); + + test('it selects the correct colors based on dark mode theme', () => { + const noop = () => {}; + + const wrapper = shallow(); + + const defaultMonitor = wrapper.find(DefaultMonitor); + + // selects colors from mock value in src/lib/themes/__mocks__/dark-mode.js + expect(defaultMonitor.props().categoryColor).toEqual({background: '#AAAAAA', text: '#BBBBBB'}); + }); +}); diff --git a/test/unit/components/toggle-buttons.test.jsx b/test/unit/components/toggle-buttons.test.jsx new file mode 100644 index 00000000000..547852461af --- /dev/null +++ b/test/unit/components/toggle-buttons.test.jsx @@ -0,0 +1,52 @@ +import React from 'react'; +import {shallow} from 'enzyme'; +import ToggleButtons from '../../../src/components/toggle-buttons/toggle-buttons'; + +describe('ToggleButtons', () => { + test('renders multiple buttons', () => { + const component = shallow( {}, + icon: 'Button 1 icon' + }, + { + title: 'Button 2', + handleClick: () => {}, + icon: 'Button 2 icon' + } + ]} + />); + + const buttons = component.find('button'); + + expect(buttons).toHaveLength(2); + expect(buttons.get(0).props.title).toBe('Button 1'); + expect(buttons.get(1).props.title).toBe('Button 2'); + }); + + test('calls correct click handler', () => { + const onClick1 = jest.fn(); + const onClick2 = jest.fn(); + const component = shallow(); + const button2 = component.find('button[title="Button 2"]'); + button2.simulate('click'); + + expect(onClick2).toHaveBeenCalled(); + expect(onClick1).not.toHaveBeenCalled(); + }); +}); diff --git a/test/unit/containers/sb-file-uploader.test.jsx b/test/unit/containers/sb-file-uploader.test.jsx deleted file mode 100644 index c757114b4ca..00000000000 --- a/test/unit/containers/sb-file-uploader.test.jsx +++ /dev/null @@ -1,84 +0,0 @@ -import React from 'react'; - -import {shallowWithIntl} from '../../helpers/intl-helpers.jsx'; -import configureStore from 'redux-mock-store'; -import SBFileUploader from '../../../src/containers/sb-file-uploader'; -import {LoadingState} from '../../../src/reducers/project-state'; - -jest.mock('react-ga'); // must mock this entire library, or lib/analytics causes error - -describe('SBFileUploader Container', () => { - const mockStore = configureStore(); - let onLoadingFinished; - let onLoadingStarted; - let store; - - // Wrap this in a function so it gets test specific states and can be reused. - const getContainer = function () { - return ( - - {(renderFileInput, loadProject) => ( -
    - )} - - ); - }; - - beforeEach(() => { - store = mockStore({ - scratchGui: { - projectState: { - loadingState: LoadingState.SHOWING_WITH_ID - }, - vm: {} - } - }); - onLoadingFinished = jest.fn(); - onLoadingStarted = jest.fn(); - }); - - test('correctly sets title with .sb3 filename', () => { - const wrapper = shallowWithIntl(getContainer(), {context: {store}}); - const instance = wrapper - .dive() // unwrap redux Connect(InjectIntl(SBFileUploader)) - .dive() // unwrap InjectIntl(SBFileUploader) - .instance(); // SBFileUploader - const projectName = instance.getProjectTitleFromFilename('my project is great.sb3'); - expect(projectName).toBe('my project is great'); - }); - - test('correctly sets title with .sb2 filename', () => { - const wrapper = shallowWithIntl(getContainer(), {context: {store}}); - const instance = wrapper - .dive() // unwrap redux Connect(InjectIntl(SBFileUploader)) - .dive() // unwrap InjectIntl(SBFileUploader) - .instance(); // SBFileUploader - const projectName = instance.getProjectTitleFromFilename('my project is great.sb2'); - expect(projectName).toBe('my project is great'); - }); - - test('correctly sets title with .sb filename', () => { - const wrapper = shallowWithIntl(getContainer(), {context: {store}}); - const instance = wrapper - .dive() // unwrap redux Connect(InjectIntl(SBFileUploader)) - .dive() // unwrap InjectIntl(SBFileUploader) - .instance(); // SBFileUploader - const projectName = instance.getProjectTitleFromFilename('my project is great.sb'); - expect(projectName).toBe('my project is great'); - }); - - test('sets blank title with filename with no extension', () => { - const wrapper = shallowWithIntl(getContainer(), {context: {store}}); - const instance = wrapper - .dive() // unwrap redux Connect(InjectIntl(SBFileUploader)) - .dive() // unwrap InjectIntl(SBFileUploader) - .instance(); // SBFileUploader - const projectName = instance.getProjectTitleFromFilename('my project is great'); - expect(projectName).toBe(''); - }); -}); diff --git a/test/unit/containers/sound-editor.test.jsx b/test/unit/containers/sound-editor.test.jsx index b0a1a8399f6..ea0a4269f95 100644 --- a/test/unit/containers/sound-editor.test.jsx +++ b/test/unit/containers/sound-editor.test.jsx @@ -35,7 +35,7 @@ describe('Sound Editor Container', () => { } } }; - store = mockStore({scratchGui: {vm: vm}}); + store = mockStore({scratchGui: {vm: vm, mode: {isFullScreen: false}}}); }); test('should pass the correct data to the component from the store', () => { @@ -97,7 +97,7 @@ describe('Sound Editor Container', () => { expect(vm.renameSound).toHaveBeenCalledWith(soundIndex, 'hello'); }); - test('it handles an effect by submitting the result and playing', () => { + test('it handles an effect by submitting the result and playing', async () => { const wrapper = mountWithIntl( { ); const component = wrapper.find(SoundEditorComponent); component.props().onReverse(); // Could be any of the effects, just testing the end result - mockAudioEffects.instance._finishProcessing(soundBuffer); + await mockAudioEffects.instance._finishProcessing(soundBuffer); expect(mockAudioBufferPlayer.instance.play).toHaveBeenCalled(); expect(vm.updateSoundBuffer).toHaveBeenCalled(); }); @@ -202,7 +202,7 @@ describe('Sound Editor Container', () => { expect(mockAudioEffects.instance.process).toHaveBeenCalled(); }); - test('undo/redo stack state', () => { + test('undo/redo stack state', async () => { const wrapper = mountWithIntl( { // Submitting new samples should make it possible to undo component.props().onFaster(); - mockAudioEffects.instance._finishProcessing(soundBuffer); + await mockAudioEffects.instance._finishProcessing(soundBuffer); wrapper.update(); component = wrapper.find(SoundEditorComponent); expect(component.prop('canUndo')).toEqual(true); expect(component.prop('canRedo')).toEqual(false); // Undoing should make it possible to redo and not possible to undo again - component.props().onUndo(); + await component.props().onUndo(); wrapper.update(); component = wrapper.find(SoundEditorComponent); expect(component.prop('canUndo')).toEqual(false); expect(component.prop('canRedo')).toEqual(true); // Redoing should make it possible to undo and not possible to redo again - component.props().onRedo(); + await component.props().onRedo(); wrapper.update(); component = wrapper.find(SoundEditorComponent); expect(component.prop('canUndo')).toEqual(true); expect(component.prop('canRedo')).toEqual(false); // New submission should clear the redo stack - component.props().onUndo(); // Undo to go back to a state where redo is enabled + await component.props().onUndo(); // Undo to go back to a state where redo is enabled wrapper.update(); component = wrapper.find(SoundEditorComponent); expect(component.prop('canRedo')).toEqual(true); component.props().onFaster(); - mockAudioEffects.instance._finishProcessing(soundBuffer); + await mockAudioEffects.instance._finishProcessing(soundBuffer); wrapper.update(); component = wrapper.find(SoundEditorComponent); expect(component.prop('canRedo')).toEqual(false); }); - test('undo and redo submit new samples and play the sound', () => { + test('undo and redo submit new samples and play the sound', async () => { const wrapper = mountWithIntl( { // Set up an undoable state component.props().onFaster(); - mockAudioEffects.instance._finishProcessing(soundBuffer); + await mockAudioEffects.instance._finishProcessing(soundBuffer); wrapper.update(); component = wrapper.find(SoundEditorComponent); // Undo should update the sound buffer and play the new samples - component.props().onUndo(); + await component.props().onUndo(); expect(mockAudioBufferPlayer.instance.play).toHaveBeenCalled(); expect(vm.updateSoundBuffer).toHaveBeenCalled(); @@ -274,7 +274,7 @@ describe('Sound Editor Container', () => { mockAudioBufferPlayer.instance.play.mockClear(); // Undo should update the sound buffer and play the new samples - component.props().onRedo(); + await component.props().onRedo(); expect(mockAudioBufferPlayer.instance.play).toHaveBeenCalled(); expect(vm.updateSoundBuffer).toHaveBeenCalled(); }); diff --git a/test/unit/containers/sprite-selector-item.test.jsx b/test/unit/containers/sprite-selector-item.test.jsx index 89018f5ef36..ffa24d3fc93 100644 --- a/test/unit/containers/sprite-selector-item.test.jsx +++ b/test/unit/containers/sprite-selector-item.test.jsx @@ -3,9 +3,12 @@ import {mountWithIntl} from '../../helpers/intl-helpers.jsx'; import configureStore from 'redux-mock-store'; import {Provider} from 'react-redux'; -import SpriteSelectorItem from '../../../src/containers/sprite-selector-item'; +import SpriteSelectorItemContainer from '../../../src/containers/sprite-selector-item'; import DeleteButton from '../../../src/components/delete-button/delete-button'; +import DeleteConfirmationPrompt from '../../../src/components/delete-confirmation-prompt/delete-confirmation-prompt.jsx'; +import VM from 'scratch-vm'; +jest.mock('../../../src/components/delete-confirmation-prompt/delete-confirmation-prompt.jsx', () => jest.fn(() => null)); describe('SpriteSelectorItem Container', () => { const mockStore = configureStore(); let className; @@ -17,11 +20,12 @@ describe('SpriteSelectorItem Container', () => { let selected; let id; let store; + let vm; // Wrap this in a function so it gets test specific states and can be reused. - const getContainer = function () { + const getContainer = function (withDeleteConfirmation) { return ( - { selected={selected} onClick={onClick} onDeleteButtonClick={onDeleteButtonClick} + vm={vm} + withDeleteConfirmation={withDeleteConfirmation} /> ); }; beforeEach(() => { - store = mockStore({scratchGui: { - hoveredTarget: {receivedBlocks: false, sprite: null}, - assetDrag: {dragging: false} - }}); className = 'ponies'; costumeURL = 'https://scratch.mit.edu/foo/bar/pony'; id = 1337; @@ -48,11 +50,29 @@ describe('SpriteSelectorItem Container', () => { onDeleteButtonClick = jest.fn(); dispatchSetHoveredSprite = jest.fn(); selected = true; + vm = new VM(); + store = mockStore({scratchGui: { + hoveredTarget: {receivedBlocks: false, sprite: null}, + assetDrag: {dragging: false}, + vm + }}); }); - test('should delete the sprite', () => { + test('should delete the sprite, when called without `withDeleteConfirmation`', () => { const wrapper = mountWithIntl(getContainer()); + wrapper.find(DeleteButton).simulate('click'); + expect(DeleteConfirmationPrompt).not.toHaveBeenCalled(); expect(onDeleteButtonClick).toHaveBeenCalledWith(1337); }); + + test('should initiate sprite deletion, when called `withDeleteConfirmation`', () => { + const wrapper = mountWithIntl(getContainer(true)); + + expect(DeleteConfirmationPrompt).not.toHaveBeenCalled(); + + wrapper.find(DeleteButton).simulate('click'); + + expect(DeleteConfirmationPrompt).toHaveBeenCalled(); + }); }); diff --git a/test/unit/reducers/alerts-reducer.test.js b/test/unit/reducers/alerts-reducer.test.js index a34dc86862d..8048d5aef6e 100644 --- a/test/unit/reducers/alerts-reducer.test.js +++ b/test/unit/reducers/alerts-reducer.test.js @@ -2,8 +2,7 @@ /* eslint-env jest */ import {AlertTypes, AlertLevels} from '../../../src/lib/alerts/index.jsx'; -import alertsReducer from '../../../src/reducers/alerts'; -import { +import alertsReducer, { closeAlert, closeAlertWithId, filterInlineAlerts, diff --git a/test/unit/reducers/monitor-layout-reducer.test.js b/test/unit/reducers/monitor-layout-reducer.test.js index ea45b20e47e..8aa01266c5a 100644 --- a/test/unit/reducers/monitor-layout-reducer.test.js +++ b/test/unit/reducers/monitor-layout-reducer.test.js @@ -1,8 +1,9 @@ /* eslint-env jest */ -import monitorLayoutReducer from '../../../src/reducers/monitor-layout'; -import {addMonitorRect, moveMonitorRect} from '../../../src/reducers/monitor-layout'; -import {resizeMonitorRect, removeMonitorRect} from '../../../src/reducers/monitor-layout'; -import {getInitialPosition, PADDING, SCREEN_WIDTH, SCREEN_HEIGHT} from '../../../src/reducers/monitor-layout'; +import monitorLayoutReducer, { + addMonitorRect, moveMonitorRect, + resizeMonitorRect, removeMonitorRect, + getInitialPosition, PADDING, SCREEN_WIDTH, SCREEN_HEIGHT +} from '../../../src/reducers/monitor-layout'; test('initialState', () => { let defaultState; diff --git a/test/unit/reducers/project-state-reducer.test.js b/test/unit/reducers/project-state-reducer.test.js index 2683c5beec1..8aabc107244 100644 --- a/test/unit/reducers/project-state-reducer.test.js +++ b/test/unit/reducers/project-state-reducer.test.js @@ -1,6 +1,5 @@ /* eslint-env jest */ -import projectStateReducer from '../../../src/reducers/project-state'; -import { +import projectStateReducer, { LoadingState, autoUpdateProject, doneCreatingProject, @@ -92,99 +91,181 @@ test('onFetchedProjectData new loads project data into vm', () => { expect(resultState.projectData).toBe('1010101'); }); -test('onLoadedProject upload, with canSave false, shows without id', () => { +// onLoadedProject: LOADING_VM_WITH_ID + +test('onLoadedProject(LOADING_VM_WITH_ID, true, true) results in state SHOWING_WITH_ID', () => { const initialState = { - loadingState: LoadingState.LOADING_VM_FILE_UPLOAD + projectId: '100', + loadingState: LoadingState.LOADING_VM_WITH_ID + }; + const action = onLoadedProject(initialState.loadingState, true, true); + const resultState = projectStateReducer(initialState, action); + expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITH_ID); + expect(resultState.projectId).toBe('100'); +}); + +test('onLoadedProject(LOADING_VM_WITH_ID, false, true) results in state SHOWING_WITH_ID', () => { + const initialState = { + projectId: '100', + loadingState: LoadingState.LOADING_VM_WITH_ID }; const action = onLoadedProject(initialState.loadingState, false, true); const resultState = projectStateReducer(initialState, action); + expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITH_ID); + expect(resultState.projectId).toBe('100'); +}); + +// case where we started out viewing a project with a projectId, then +// started to load another project; but loading fails. We go back to +// showing the original project. +test('onLoadedProject(LOADING_VM_WITH_ID, false, false), with project id, ' + + 'results in state SHOWING_WITH_ID', () => { + const initialState = { + projectId: '100', + loadingState: LoadingState.LOADING_VM_WITH_ID + }; + const action = onLoadedProject(initialState.loadingState, false, false); + const resultState = projectStateReducer(initialState, action); + expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITH_ID); + expect(resultState.projectId).toBe('100'); +}); + +// case where we started out viewing a project with default projectId, then +// started to load one with an id, such as in standalone mode when user adds +// '#PROJECT_ID_NUMBER' to the URI; but loading fails. We go back to +// showing the original project. +test('onLoadedProject(LOADING_VM_WITH_ID, false, false), with no project id, ' + + 'results in state SHOWING_WITHOUT_ID', () => { + const initialState = { + projectId: '0', + loadingState: LoadingState.LOADING_VM_WITH_ID + }; + const action = onLoadedProject(initialState.loadingState, false, false); + const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITHOUT_ID); + expect(resultState.projectId).toBe('0'); }); -test('onLoadedProject upload, with canSave true, prepares to save', () => { +// onLoadedProject: LOADING_VM_FILE_UPLOAD + +test('onLoadedProject(LOADING_VM_FILE_UPLOAD, true, true) prepares to save', () => { const initialState = { + projectId: '100', loadingState: LoadingState.LOADING_VM_FILE_UPLOAD }; const action = onLoadedProject(initialState.loadingState, true, true); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.AUTO_UPDATING); + expect(resultState.projectId).toBe('100'); }); -test('onLoadedProject with id shows with id', () => { +test('onLoadedProject(LOADING_VM_FILE_UPLOAD, false, true) results in state SHOWING_WITHOUT_ID', () => { const initialState = { - loadingState: LoadingState.LOADING_VM_WITH_ID + projectId: '0', + loadingState: LoadingState.LOADING_VM_FILE_UPLOAD }; - const action = onLoadedProject(initialState.loadingState, true, true); + const action = onLoadedProject(initialState.loadingState, false, true); + const resultState = projectStateReducer(initialState, action); + expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITHOUT_ID); + expect(resultState.projectId).toBe('0'); +}); + +test('onLoadedProject(LOADING_VM_FILE_UPLOAD, false, false), when we know project id, ' + + 'results in state SHOWING_WITH_ID', () => { + const initialState = { + projectId: '100', + loadingState: LoadingState.LOADING_VM_FILE_UPLOAD + }; + const action = onLoadedProject(initialState.loadingState, false, false); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITH_ID); + expect(resultState.projectId).toBe('100'); }); -test('onLoadedProject new shows without id', () => { +test('onLoadedProject(LOADING_VM_FILE_UPLOAD, false, false), when we ' + + 'don\'t know project id, results in state SHOWING_WITHOUT_ID', () => { const initialState = { - loadingState: LoadingState.LOADING_VM_NEW_DEFAULT + projectId: '0', + loadingState: LoadingState.LOADING_VM_FILE_UPLOAD }; - const action = onLoadedProject(initialState.loadingState, false, true); + const action = onLoadedProject(initialState.loadingState, false, false); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITHOUT_ID); + expect(resultState.projectId).toBe('0'); }); -test('onLoadedProject new, to save shows without id', () => { +// onLoadedProject: LOADING_VM_NEW_DEFAULT + +test('onLoadedProject(LOADING_VM_NEW_DEFAULT, true, true) results in state SHOWING_WITHOUT_ID', () => { const initialState = { + projectId: '0', loadingState: LoadingState.LOADING_VM_NEW_DEFAULT }; const action = onLoadedProject(initialState.loadingState, true, true); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITHOUT_ID); + expect(resultState.projectId).toBe('0'); }); -test('onLoadedProject with success false, no project id, shows without id', () => { +test('onLoadedProject(LOADING_VM_NEW_DEFAULT, false, true) results in state SHOWING_WITHOUT_ID', () => { const initialState = { - loadingState: LoadingState.LOADING_VM_WITH_ID, - projectId: null + projectId: '0', + loadingState: LoadingState.LOADING_VM_NEW_DEFAULT }; - const action = onLoadedProject(initialState.loadingState, false, false); + const action = onLoadedProject(initialState.loadingState, false, true); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITHOUT_ID); + expect(resultState.projectId).toBe('0'); }); -test('onLoadedProject with success false, valid project id, shows with id', () => { +test('onLoadedProject(LOADING_VM_NEW_DEFAULT, false, false) results in ERROR state', () => { const initialState = { - loadingState: LoadingState.LOADING_VM_WITH_ID, - projectId: '12345' + projectId: '0', + loadingState: LoadingState.LOADING_VM_NEW_DEFAULT }; const action = onLoadedProject(initialState.loadingState, false, false); const resultState = projectStateReducer(initialState, action); - expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITH_ID); + expect(resultState.loadingState).toBe(LoadingState.ERROR); + expect(resultState.projectId).toBe('0'); }); -test('doneUpdatingProject with id shows with id', () => { +// doneUpdatingProject + +test('doneUpdatingProject with id results in state SHOWING_WITH_ID', () => { const initialState = { + projectId: '100', loadingState: LoadingState.MANUAL_UPDATING }; const action = doneUpdatingProject(initialState.loadingState); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITH_ID); + expect(resultState.projectId).toBe('100'); }); -test('doneUpdatingProject with id, before copy, creates copy', () => { +test('doneUpdatingProject with id, before copy occurs, results in state CREATING_COPY', () => { const initialState = { + projectId: '100', loadingState: LoadingState.UPDATING_BEFORE_COPY }; const action = doneUpdatingProject(initialState.loadingState); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.CREATING_COPY); + expect(resultState.projectId).toBe('100'); }); -test('doneUpdatingProject with id, before new, fetches default project', () => { +test('doneUpdatingProject with id, before new, results in state FETCHING_NEW_DEFAULT', () => { const initialState = { + projectId: '100', loadingState: LoadingState.UPDATING_BEFORE_NEW }; const action = doneUpdatingProject(initialState.loadingState); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.FETCHING_NEW_DEFAULT); + expect(resultState.projectId).toBe('0'); // resets id }); -test('setProjectId, with same id as before, should show with id, not fetch', () => { +test('calling setProjectId, using with same id as already showing, ' + + 'results in state SHOWING_WITH_ID', () => { const initialState = { projectId: '100', loadingState: LoadingState.SHOWING_WITH_ID @@ -195,7 +276,8 @@ test('setProjectId, with same id as before, should show with id, not fetch', () expect(resultState.projectId).toBe('100'); }); -test('setProjectId, with different id as before, should fetch with id, not show with id', () => { +test('calling setProjectId, using different id from project already showing, ' + + 'results in state FETCHING_WITH_ID', () => { const initialState = { projectId: 99, loadingState: LoadingState.SHOWING_WITH_ID @@ -206,7 +288,8 @@ test('setProjectId, with different id as before, should fetch with id, not show expect(resultState.projectId).toBe('100'); }); -test('setProjectId, with same id as before, but not same type, should fetch because not ===', () => { +test('setProjectId, with same id as before, but not same type, ' + + 'results in FETCHING_WITH_ID because the two projectIds are not strictly equal', () => { const initialState = { projectId: '100', loadingState: LoadingState.SHOWING_WITH_ID @@ -217,85 +300,104 @@ test('setProjectId, with same id as before, but not same type, should fetch beca expect(resultState.projectId).toBe(100); }); -test('requestNewProject, when can\'t create new, should fetch default project without id', () => { +test('requestNewProject, when can\'t create/save, results in FETCHING_NEW_DEFAULT', () => { const initialState = { + projectId: '0', loadingState: LoadingState.SHOWING_WITHOUT_ID }; const action = requestNewProject(false); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.FETCHING_NEW_DEFAULT); + expect(resultState.projectId).toBe('0'); }); -test('requestNewProject, when can create new, should save and prepare to fetch default project', () => { +test('requestNewProject, when can create/save, results in UPDATING_BEFORE_NEW ' + + '(in order to save before fetching default project)', () => { const initialState = { + projectId: '100', loadingState: LoadingState.SHOWING_WITH_ID }; const action = requestNewProject(true); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.UPDATING_BEFORE_NEW); + expect(resultState.projectId).toBe('100'); }); -test('requestProjectUpload when project not loaded should load', () => { +test('requestProjectUpload when project not loaded results in state LOADING_VM_FILE_UPLOAD', () => { const initialState = { + projectId: null, loadingState: LoadingState.NOT_LOADED }; const action = requestProjectUpload(initialState.loadingState); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.LOADING_VM_FILE_UPLOAD); + expect(resultState.projectId).toBe(null); }); -test('requestProjectUpload when showing project with id should load', () => { +test('requestProjectUpload when showing project with id results in state LOADING_VM_FILE_UPLOAD', () => { const initialState = { + projectId: '100', loadingState: LoadingState.SHOWING_WITH_ID }; const action = requestProjectUpload(initialState.loadingState); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.LOADING_VM_FILE_UPLOAD); + expect(resultState.projectId).toBe('100'); }); -test('requestProjectUpload when showing project without id should load', () => { +test('requestProjectUpload when showing project without id results in state LOADING_VM_FILE_UPLOAD', () => { const initialState = { + projectId: null, loadingState: LoadingState.SHOWING_WITHOUT_ID }; const action = requestProjectUpload(initialState.loadingState); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.LOADING_VM_FILE_UPLOAD); + expect(resultState.projectId).toBe(null); }); test('manualUpdateProject should prepare to update', () => { const initialState = { + projectId: '100', loadingState: LoadingState.SHOWING_WITH_ID }; const action = manualUpdateProject(); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.MANUAL_UPDATING); + expect(resultState.projectId).toBe('100'); }); test('autoUpdateProject should prepare to update', () => { const initialState = { + projectId: '100', loadingState: LoadingState.SHOWING_WITH_ID }; const action = autoUpdateProject(); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.AUTO_UPDATING); + expect(resultState.projectId).toBe('100'); }); test('saveProjectAsCopy should save, before preparing to save as a copy', () => { const initialState = { + projectId: '100', loadingState: LoadingState.SHOWING_WITH_ID }; const action = saveProjectAsCopy(); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.UPDATING_BEFORE_COPY); + expect(resultState.projectId).toBe('100'); }); test('remixProject should prepare to remix', () => { const initialState = { + projectId: '100', loadingState: LoadingState.SHOWING_WITH_ID }; const action = remixProject(); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.REMIXING); + expect(resultState.projectId).toBe('100'); }); test('projectError from various states should show error', () => { @@ -314,11 +416,13 @@ test('projectError from various states should show error', () => { for (const startState of startStates) { const initialState = { error: null, + projectId: '100', loadingState: startState }; const action = projectError('Error string'); const resultState = projectStateReducer(initialState, action); expect(resultState.error).toEqual('Error string'); + expect(resultState.projectId).toBe('100'); } }); @@ -332,11 +436,13 @@ test('fatal projectError should show error state', () => { for (const startState of startStates) { const initialState = { error: null, + projectId: '100', loadingState: startState }; const action = projectError('Error string'); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.ERROR); + expect(resultState.projectId).toBe('100'); } }); @@ -351,15 +457,18 @@ test('non-fatal projectError should show normal state', () => { for (const startState of startStates) { const initialState = { error: null, + projectId: '100', loadingState: startState }; const action = projectError('Error string'); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITH_ID); + expect(resultState.projectId).toBe('100'); } }); -test('projectError when creating new while viewing project with id should show project with id', () => { +test('projectError when creating new while viewing project with id should ' + + 'go back to state SHOWING_WITH_ID', () => { const initialState = { error: null, loadingState: LoadingState.CREATING_NEW, @@ -368,9 +477,11 @@ test('projectError when creating new while viewing project with id should show p const action = projectError('Error string'); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITH_ID); + expect(resultState.projectId).toBe('12345'); }); -test('projectError when creating new while logged out, looking at default project should show default project', () => { +test('projectError when creating new while logged out, looking at default project ' + + 'should go back to state SHOWING_WITHOUT_ID', () => { const initialState = { error: null, loadingState: LoadingState.CREATING_NEW, @@ -379,15 +490,19 @@ test('projectError when creating new while logged out, looking at default projec const action = projectError('Error string'); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.SHOWING_WITHOUT_ID); + expect(resultState.projectId).toBe('0'); }); -test('projectError from showing project should show error', () => { +test('projectError encountered while in state FETCHING_WITH_ID results in ' + + 'ERROR state', () => { const initialState = { error: null, + projectId: null, loadingState: LoadingState.FETCHING_WITH_ID }; const action = projectError('Error string'); const resultState = projectStateReducer(initialState, action); expect(resultState.loadingState).toBe(LoadingState.ERROR); + expect(resultState.projectId).toBe(null); expect(resultState.error).toEqual('Error string'); }); diff --git a/test/unit/reducers/workspace-metrics-reducer.test.js b/test/unit/reducers/workspace-metrics-reducer.test.js new file mode 100644 index 00000000000..f1cf1a70de4 --- /dev/null +++ b/test/unit/reducers/workspace-metrics-reducer.test.js @@ -0,0 +1,25 @@ +/* eslint-env jest */ +import workspaceMetricsReducer, {updateMetrics} from '../../../src/reducers/workspace-metrics'; + +test('initialState', () => { + let defaultState; + /* workspaceMetricsReducer(state, action) */ + expect(workspaceMetricsReducer(defaultState, {type: 'anything'})).toBeDefined(); + expect(workspaceMetricsReducer(defaultState, {type: 'anything'})).toEqual({targets: {}}); +}); + +test('updateMetrics action creator', () => { + let defaultState; + const action = updateMetrics({ + targetID: 'abcde', + scrollX: 225, + scrollY: 315, + scale: 1.25 + }); + const resultState = workspaceMetricsReducer(defaultState, action); + expect(Object.keys(resultState.targets).length).toBe(1); + expect(resultState.targets.abcde).toBeDefined(); + expect(resultState.targets.abcde.scrollX).toBe(225); + expect(resultState.targets.abcde.scrollY).toBe(315); + expect(resultState.targets.abcde.scale).toBe(1.25); +}); diff --git a/test/unit/util/audio-context.test.js b/test/unit/util/audio-context.test.js new file mode 100644 index 00000000000..c46d1317ddb --- /dev/null +++ b/test/unit/util/audio-context.test.js @@ -0,0 +1,30 @@ +/* global WebAudioTestAPI */ +import 'web-audio-test-api'; +WebAudioTestAPI.setState({ + 'AudioContext#resume': 'enabled' +}); + +import SharedAudioContext from '../../../src/lib/audio/shared-audio-context'; + +describe('Shared Audio Context', () => { + const audioContext = new AudioContext(); + + test('returns empty object without user gesture', () => { + const sharedAudioContext = new SharedAudioContext(); + expect(sharedAudioContext).toMatchObject({}); + }); + + test('returns AudioContext when mousedown is triggered', () => { + const sharedAudioContext = new SharedAudioContext(); + const event = new Event('mousedown'); + document.dispatchEvent(event); + expect(sharedAudioContext).toMatchObject(audioContext); + }); + + test('returns AudioContext when touchstart is triggered', () => { + const sharedAudioContext = new SharedAudioContext(); + const event = new Event('touchstart'); + document.dispatchEvent(event); + expect(sharedAudioContext).toMatchObject(audioContext); + }); +}); diff --git a/test/unit/util/audio-util.test.js b/test/unit/util/audio-util.test.js index 24ddcd45595..7cbcd4058ea 100644 --- a/test/unit/util/audio-util.test.js +++ b/test/unit/util/audio-util.test.js @@ -1,4 +1,9 @@ -import {computeRMS, computeChunkedRMS} from '../../../src/lib/audio/audio-util'; +import { + computeRMS, + computeChunkedRMS, + downsampleIfNeeded, + dropEveryOtherSample +} from '../../../src/lib/audio/audio-util'; describe('computeRMS', () => { test('returns 0 when given no samples', () => { @@ -49,3 +54,48 @@ describe('computeChunkedRMS', () => { expect(chunkedLevels).toEqual([Math.sqrt(1 / 0.55), Math.sqrt(1 / 0.55)]); }); }); + +describe('downsampleIfNeeded', () => { + const samples = {length: 1}; + const sampleRate = 44100; + test('returns given data when no downsampling needed', async () => { + samples.length = 1; + const res = await downsampleIfNeeded({samples, sampleRate}, null); + expect(res.samples).toEqual(samples); + expect(res.sampleRate).toEqual(sampleRate); + }); + test('downsamples to 22050 if that puts it under the limit', async () => { + samples.length = 44100 * 3 * 60; + const resampler = jest.fn(() => 'TEST'); + const res = await downsampleIfNeeded({samples, sampleRate}, resampler); + expect(resampler).toHaveBeenCalledWith({samples, sampleRate}, 22050); + expect(res).toEqual('TEST'); + }); + test('fails if resampling would not put it under the limit', async () => { + samples.length = 44100 * 4 * 60; + try { + await downsampleIfNeeded({samples, sampleRate}, null); + } catch (e) { + expect(e.message).toEqual('Sound too large to save, refusing to edit'); + } + }); +}); + +describe('dropEveryOtherSample', () => { + const buffer = { + samples: [1, 0, 2, 0, 3, 0], + sampleRate: 2 + }; + test('result is half the length', () => { + const {samples} = dropEveryOtherSample(buffer); + expect(samples.length).toEqual(Math.floor(buffer.samples.length / 2)); + }); + test('result contains only even-index items', () => { + const {samples} = dropEveryOtherSample(buffer); + expect(samples).toEqual(new Float32Array([1, 2, 3])); + }); + test('result sampleRate is given sampleRate / 2', () => { + const {sampleRate} = dropEveryOtherSample(buffer); + expect(sampleRate).toEqual(buffer.sampleRate / 2); + }); +}); diff --git a/test/unit/util/cloud-manager-hoc.test.jsx b/test/unit/util/cloud-manager-hoc.test.jsx index d372e1ff524..e8bc4fe43dd 100644 --- a/test/unit/util/cloud-manager-hoc.test.jsx +++ b/test/unit/util/cloud-manager-hoc.test.jsx @@ -50,6 +50,9 @@ describe('CloudManagerHOC', () => { vm.runtime = { hasCloudData: jest.fn(() => true) }; + vm.extensionManager = { + isExtensionLoaded: jest.fn(() => false) + }; CloudProvider.mockClear(); mockCloudProviderInstance.requestCloseConnection.mockClear(); }); @@ -60,7 +63,6 @@ describe('CloudManagerHOC', () => { mount( { const WrappedComponent = cloudManagerHOC(Component); mount( { const WrappedComponent = cloudManagerHOC(Component); mount( { const WrappedComponent = cloudManagerHOC(Component); mount( { const WrappedComponent = cloudManagerHOC(Component); mount( { expect(CloudProvider).not.toHaveBeenCalled(); }); + test('when videoSensing extension is active, the cloud provider is not set on the vm', () => { + const Component = () =>
    ; + const WrappedComponent = cloudManagerHOC(Component); + vm.extensionManager.isExtensionLoaded = jest.fn(extension => extension === 'videoSensing'); + + mount( + + ); + + expect(vm.setCloudProvider.mock.calls.length).toBe(0); + expect(CloudProvider).not.toHaveBeenCalled(); + }); + test('if the isShowingWithId prop becomes true, it sets the cloud provider on the vm', () => { const Component = () =>
    ; const WrappedComponent = cloudManagerHOC(Component); @@ -153,7 +170,6 @@ describe('CloudManagerHOC', () => { const mounted = mount( { const WrappedComponent = cloudManagerHOC(Component); const mounted = mount( { const WrappedComponent = cloudManagerHOC(Component); const mounted = mount( { const WrappedComponent = cloudManagerHOC(Component); const mounted = mount( { const WrappedComponent = cloudManagerHOC(Component); const mounted = mount( { const WrappedComponent = cloudManagerHOC(Component); mount( { const WrappedComponent = cloudManagerHOC(Component); mount( { const WrappedComponent = cloudManagerHOC(Component); mount( { }); // Editor Mode Connection/Disconnection Tests - test('Entering editor mode and can\'t save project should disconnect cloud provider # 1', () => { - const Component = () =>
    ; - const WrappedComponent = cloudManagerHOC(Component); - const mounted = mount( - - ); - - expect(CloudProvider).toHaveBeenCalled(); - const requestCloseConnection = mockCloudProviderInstance.requestCloseConnection; - - mounted.setProps({ - canSave: false, - hasEverEnteredEditor: true - }); - - expect(vm.setCloudProvider.mock.calls.length).toBe(2); - expect(vm.setCloudProvider).toHaveBeenCalledWith(null); - expect(requestCloseConnection).toHaveBeenCalledTimes(1); - }); - - test('Entering editor mode and can\'t save project should disconnect cloud provider # 2', () => { + test('Entering editor mode and can\'t save project should disconnect cloud provider', () => { const Component = () =>
    ; const WrappedComponent = cloudManagerHOC(Component); const mounted = mount( { const requestCloseConnection = mockCloudProviderInstance.requestCloseConnection; mounted.setProps({ - hasEverEnteredEditor: true + canModifyCloudData: false }); expect(vm.setCloudProvider.mock.calls.length).toBe(2); diff --git a/test/unit/util/drag-utils.test.js b/test/unit/util/drag-utils.test.js index 73029564eb5..e7fe2797f9a 100644 --- a/test/unit/util/drag-utils.test.js +++ b/test/unit/util/drag-utils.test.js @@ -7,7 +7,7 @@ describe('indexForPositionOnList', () => { expect(indexForPositionOnList({x: 0, y: 0}, [])).toEqual(null); }); - test('wrapped list with incomplete last row', () => { + test('wrapped list with incomplete last row LTR', () => { const boxes = [ box(0, 100, 100, 0), // index: 0 box(0, 200, 100, 100), // index: 1 @@ -17,25 +17,58 @@ describe('indexForPositionOnList', () => { ]; // Inside the second box. - expect(indexForPositionOnList({x: 150, y: 50}, boxes)).toEqual(1); + expect(indexForPositionOnList({x: 150, y: 50}, boxes, false)).toEqual(1); // On the border edge of the first and second box. Given to the first box. - expect(indexForPositionOnList({x: 100, y: 50}, boxes)).toEqual(0); + expect(indexForPositionOnList({x: 100, y: 50}, boxes, false)).toEqual(0); // Off the top/left edge. - expect(indexForPositionOnList({x: -100, y: -100}, boxes)).toEqual(0); + expect(indexForPositionOnList({x: -100, y: -100}, boxes, false)).toEqual(0); // Off the left edge, in the second row. - expect(indexForPositionOnList({x: -100, y: 175}, boxes)).toEqual(3); + expect(indexForPositionOnList({x: -100, y: 175}, boxes, false)).toEqual(3); // Off the right edge, in the first row. - expect(indexForPositionOnList({x: 400, y: 75}, boxes)).toEqual(2); + expect(indexForPositionOnList({x: 400, y: 75}, boxes, false)).toEqual(2); // Off the top edge, middle of second item. - expect(indexForPositionOnList({x: 150, y: -75}, boxes)).toEqual(1); + expect(indexForPositionOnList({x: 150, y: -75}, boxes, false)).toEqual(1); // Within the right edge bounds, but on the second (incomplete) row. // This tests that wrapped lists with incomplete final rows work correctly. - expect(indexForPositionOnList({x: 375, y: 175}, boxes)).toEqual(4); + expect(indexForPositionOnList({x: 375, y: 175}, boxes, false)).toEqual(4); }); + + test('wrapped list with incomplete last row RTL', () => { + const boxes = [ + box(0, 0, 100, -100), // index: 0 + box(0, -100, 100, -200), // index: 1 + box(0, -200, 100, -300), // index: 2 + box(100, 0, 200, -100), // index: 3 (second row) + box(100, -100, 200, -200) // index: 4 (second row, left incomplete intentionally) + ]; + + // Inside the second box. + expect(indexForPositionOnList({x: -150, y: 50}, boxes, true)).toEqual(1); + + // On the border edge of the first and second box. Given to the first box. + expect(indexForPositionOnList({x: -100, y: 50}, boxes, true)).toEqual(0); + + // Off the top/right edge. + expect(indexForPositionOnList({x: 100, y: -100}, boxes, true)).toEqual(0); + + // Off the right edge, in the second row. + expect(indexForPositionOnList({x: 100, y: 175}, boxes, true)).toEqual(3); + + // Off the left edge, in the first row. + expect(indexForPositionOnList({x: -400, y: 75}, boxes, true)).toEqual(2); + + // Off the top edge, middle of second item. + expect(indexForPositionOnList({x: -150, y: -75}, boxes, true)).toEqual(1); + + // Within the left edge bounds, but on the second (incomplete) row. + // This tests that wrapped lists with incomplete final rows work correctly. + expect(indexForPositionOnList({x: -375, y: 175}, boxes, true)).toEqual(4); + }); + }); diff --git a/test/unit/util/project-saver-hoc.test.jsx b/test/unit/util/project-saver-hoc.test.jsx index 0ec3190bf77..f5ac7b680e6 100644 --- a/test/unit/util/project-saver-hoc.test.jsx +++ b/test/unit/util/project-saver-hoc.test.jsx @@ -56,7 +56,7 @@ describe('projectSaverHOC', () => { expect(mockedUpdateProject).toHaveBeenCalled(); }); - test('if canSave is alreatdy true and we show a project with an id, project will NOT be saved', () => { + test('if canSave is already true and we show a project with an id, project will NOT be saved', () => { const mockedSaveProject = jest.fn(); const Component = () =>
    ; const WrappedComponent = projectSaverHOC(Component); diff --git a/test/unit/util/sb-file-uploader-hoc.test.jsx b/test/unit/util/sb-file-uploader-hoc.test.jsx new file mode 100644 index 00000000000..c200157c984 --- /dev/null +++ b/test/unit/util/sb-file-uploader-hoc.test.jsx @@ -0,0 +1,108 @@ +import 'web-audio-test-api'; + +import React from 'react'; +import configureStore from 'redux-mock-store'; +import {mountWithIntl, shallowWithIntl} from '../../helpers/intl-helpers.jsx'; +import {LoadingState} from '../../../src/reducers/project-state'; +import VM from 'scratch-vm'; + +import SBFileUploaderHOC from '../../../src/lib/sb-file-uploader-hoc.jsx'; + +describe('SBFileUploaderHOC', () => { + const mockStore = configureStore(); + let store; + let vm; + + // Wrap this in a function so it gets test specific states and can be reused. + const getContainer = function () { + const Component = () =>
    ; + return SBFileUploaderHOC(Component); + }; + + const shallowMountWithContext = component => ( + shallowWithIntl(component, {context: {store}}) + ); + + const unwrappedInstance = () => { + const WrappedComponent = getContainer(); + // default starting state: looking at a project you created, not logged in + const wrapper = shallowMountWithContext( + + ); + return wrapper + .dive() // unwrap intl + .dive() // unwrap redux Connect(SBFileUploaderComponent) + .instance(); // SBFileUploaderComponent + }; + + beforeEach(() => { + vm = new VM(); + store = mockStore({ + scratchGui: { + projectState: { + loadingState: LoadingState.SHOWING_WITHOUT_ID + }, + vm: {} + }, + locales: { + locale: 'en' + } + }); + }); + + test('correctly sets title with .sb3 filename', () => { + const projectName = unwrappedInstance().getProjectTitleFromFilename('my project is great.sb3'); + expect(projectName).toBe('my project is great'); + }); + + test('correctly sets title with .sb2 filename', () => { + const projectName = unwrappedInstance().getProjectTitleFromFilename('my project is great.sb2'); + expect(projectName).toBe('my project is great'); + }); + + test('correctly sets title with .sb filename', () => { + const projectName = unwrappedInstance().getProjectTitleFromFilename('my project is great.sb'); + expect(projectName).toBe('my project is great'); + }); + + test('sets blank title with filename with no extension', () => { + const projectName = unwrappedInstance().getProjectTitleFromFilename('my project is great'); + expect(projectName).toBe(''); + }); + + test('if isLoadingUpload becomes true, without fileToUpload set, will call cancelFileUpload', () => { + const mockedCancelFileUpload = jest.fn(); + const WrappedComponent = getContainer(); + const mounted = mountWithIntl( + + ); + mounted.setProps({ + isLoadingUpload: true + }); + expect(mockedCancelFileUpload).toHaveBeenCalled(); + }); +}); diff --git a/test/unit/util/themes.test.js b/test/unit/util/themes.test.js new file mode 100644 index 00000000000..35d8fa25b9e --- /dev/null +++ b/test/unit/util/themes.test.js @@ -0,0 +1,169 @@ +import { + DARK_THEME, + defaultColors, + DEFAULT_THEME, + getColorsForTheme, + HIGH_CONTRAST_THEME +} from '../../../src/lib/themes'; +import {injectExtensionBlockTheme, injectExtensionCategoryTheme} from '../../../src/lib/themes/blockHelpers'; +import {detectTheme, persistTheme} from '../../../src/lib/themes/themePersistance'; + +jest.mock('../../../src/lib/themes/default'); +jest.mock('../../../src/lib/themes/dark'); + +describe('themes', () => { + let serializeToString; + + describe('core functionality', () => { + test('provides the default theme colors', () => { + expect(defaultColors.motion.primary).toEqual('#111111'); + }); + + test('returns the dark mode', () => { + const colors = getColorsForTheme(DARK_THEME); + + expect(colors.motion.primary).toEqual('#AAAAAA'); + }); + + test('uses default theme colors when not specified', () => { + const colors = getColorsForTheme(DARK_THEME); + + expect(colors.motion.secondary).toEqual('#222222'); + }); + }); + + describe('block helpers', () => { + beforeEach(() => { + serializeToString = jest.fn(() => 'mocked xml'); + + class XMLSerializer { + constructor () { + this.serializeToString = serializeToString; + } + } + + global.XMLSerializer = XMLSerializer; + }); + + test('updates extension block colors based on theme', () => { + const blockInfoJson = { + type: 'dummy_block', + colour: '#0FBD8C', + colourSecondary: '#0DA57A', + colourTertiary: '#0B8E69' + }; + + const updated = injectExtensionBlockTheme(blockInfoJson, DARK_THEME); + + expect(updated).toEqual({ + type: 'dummy_block', + colour: '#FFFFFF', + colourSecondary: '#EEEEEE', + colourTertiary: '#DDDDDD' + }); + // The original value was not modified + expect(blockInfoJson.colour).toBe('#0FBD8C'); + }); + + test('updates extension block icon based on theme', () => { + const blockInfoJson = { + type: 'pen_block', + args0: [ + { + type: 'field_image', + src: 'original' + } + ], + colour: '#0FBD8C', + colourSecondary: '#0DA57A', + colourTertiary: '#0B8E69' + }; + + const updated = injectExtensionBlockTheme(blockInfoJson, DARK_THEME); + + expect(updated).toEqual({ + type: 'pen_block', + args0: [ + { + type: 'field_image', + src: 'darkPenIcon' + } + ], + colour: '#FFFFFF', + colourSecondary: '#EEEEEE', + colourTertiary: '#DDDDDD' + }); + // The original value was not modified + expect(blockInfoJson.args0[0].src).toBe('original'); + }); + + test('bypasses updates if using the default theme', () => { + const blockInfoJson = { + type: 'dummy_block', + colour: '#0FBD8C', + colourSecondary: '#0DA57A', + colourTertiary: '#0B8E69' + }; + + const updated = injectExtensionBlockTheme(blockInfoJson, DEFAULT_THEME); + + expect(updated).toEqual({ + type: 'dummy_block', + colour: '#0FBD8C', + colourSecondary: '#0DA57A', + colourTertiary: '#0B8E69' + }); + }); + + test('updates extension category based on theme', () => { + const dynamicBlockXML = [ + { + id: 'pen', + xml: '' + } + ]; + + injectExtensionCategoryTheme(dynamicBlockXML, DARK_THEME); + + // XMLSerializer is not available outside the browser. + // Verify the mocked XMLSerializer.serializeToString is called with updated colors. + expect(serializeToString.mock.calls[0][0].documentElement.getAttribute('colour')).toBe('#FFFFFF'); + expect(serializeToString.mock.calls[0][0].documentElement.getAttribute('secondaryColour')).toBe('#DDDDDD'); + expect(serializeToString.mock.calls[0][0].documentElement.getAttribute('iconURI')).toBe('darkPenIcon'); + }); + }); + + describe('theme persistance', () => { + test('returns the theme stored in a cookie', () => { + window.document.cookie = `scratchtheme=${HIGH_CONTRAST_THEME}`; + + const theme = detectTheme(); + + expect(theme).toEqual(HIGH_CONTRAST_THEME); + }); + + test('returns the system theme when no cookie', () => { + window.document.cookie = 'scratchtheme='; + + const theme = detectTheme(); + + expect(theme).toEqual(DEFAULT_THEME); + }); + + test('persists theme to cookie', () => { + window.document.cookie = 'scratchtheme='; + + persistTheme(HIGH_CONTRAST_THEME); + + expect(window.document.cookie).toEqual(`scratchtheme=${HIGH_CONTRAST_THEME}`); + }); + + test('clears theme when matching system preferences', () => { + window.document.cookie = `scratchtheme=${HIGH_CONTRAST_THEME}`; + + persistTheme(DEFAULT_THEME); + + expect(window.document.cookie).toEqual('scratchtheme='); + }); + }); +}); diff --git a/test/unit/util/vm-manager-hoc.test.jsx b/test/unit/util/vm-manager-hoc.test.jsx index a1b913253c6..ad440e4b1cc 100644 --- a/test/unit/util/vm-manager-hoc.test.jsx +++ b/test/unit/util/vm-manager-hoc.test.jsx @@ -1,4 +1,8 @@ +/* global WebAudioTestAPI */ import 'web-audio-test-api'; +WebAudioTestAPI.setState({ + 'AudioContext#resume': 'enabled' +}); import React from 'react'; import configureStore from 'redux-mock-store'; diff --git a/webpack.config.js b/webpack.config.js index 283d65706b5..0ec57fa85e7 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,231 +1,173 @@ -const defaultsDeep = require('lodash.defaultsdeep'); -var path = require('path'); -var webpack = require('webpack'); +const path = require('path'); +const webpack = require('webpack'); // Plugins -var CopyWebpackPlugin = require('copy-webpack-plugin'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); -// PostCss -var autoprefixer = require('autoprefixer'); -var postcssVars = require('postcss-simple-vars'); -var postcssImport = require('postcss-import'); +const ScratchWebpackConfigBuilder = require('scratch-webpack-configuration'); -const STATIC_PATH = process.env.STATIC_PATH || '/static'; +// const STATIC_PATH = process.env.STATIC_PATH || '/static'; -const base = { - mode: process.env.NODE_ENV === 'production' ? 'production' : 'development', - devtool: 'cheap-module-source-map', - devServer: { - contentBase: path.resolve(__dirname, 'build'), - host: '0.0.0.0', - port: process.env.PORT || 8601 - }, - output: { - library: 'GUI', - filename: '[name].js', - chunkFilename: 'chunks/[name].js' - }, - externals: { - React: 'react', - ReactDOM: 'react-dom' - }, - resolve: { - symlinks: false - }, - module: { - rules: [{ - test: /\.jsx?$/, - loader: 'babel-loader', - include: [ - path.resolve(__dirname, 'src'), - /node_modules[\\/]scratch-[^\\/]+[\\/]src/, - /node_modules[\\/]pify/, - /node_modules[\\/]@vernier[\\/]godirect/ - ], - options: { - // Explicitly disable babelrc so we don't catch various config - // in much lower dependencies. - babelrc: false, - plugins: [ - '@babel/plugin-syntax-dynamic-import', - '@babel/plugin-transform-async-to-generator', - '@babel/plugin-proposal-object-rest-spread', - ['react-intl', { - messagesDir: './translations/messages/' - }]], - presets: ['@babel/preset-env', '@babel/preset-react'] +const commonHtmlWebpackPluginOptions = { + // Google Tag Manager ID + // Looks like 'GTM-XXXXXXX' + gtm_id: process.env.GTM_ID || '', + + // Google Tag Manager env & auth info for alterative GTM environments + // Looks like '>m_auth=0123456789abcdefghijklm>m_preview=env-00>m_cookies_win=x' + // Taken from the middle of: GTM -> Admin -> Environments -> (environment) -> Get Snippet + // Blank for production + gtm_env_auth: process.env.GTM_ENV_AUTH || '' +}; + +const baseConfig = new ScratchWebpackConfigBuilder( + { + rootPath: path.resolve(__dirname), + enableReact: true, + shouldSplitChunks: false, + publicPath: 'auto' + }) + .setTarget('browserslist') + .merge({ + output: { + assetModuleFilename: 'static/assets/[name].[hash][ext][query]', + library: { + name: 'GUI', + type: 'umd2' } }, - { - test: /\.css$/, - use: [{ - loader: 'style-loader' - }, { - loader: 'css-loader', - options: { - modules: true, - importLoaders: 1, - localIdentName: '[name]_[local]_[hash:base64:5]', - camelCase: true - } - }, { - loader: 'postcss-loader', - options: { - ident: 'postcss', - plugins: function () { - return [ - postcssImport, - postcssVars, - autoprefixer - ]; - } - } - }] - }] - }, - optimization: { - minimizer: [ - new UglifyJsPlugin({ - include: /\.min\.js$/ - }) + resolve: { + fallback: { + Buffer: require.resolve('buffer/'), + stream: require.resolve('stream-browserify') + } + } + }) + .addModuleRule({ + test: /\.(svg|png|wav|mp3|gif|jpg)$/, + resourceQuery: /^$/, // reject any query string + type: 'asset' // let webpack decide on the best type of asset + }) + .addPlugin(new webpack.DefinePlugin({ + 'process.env.DEBUG': Boolean(process.env.DEBUG), + 'process.env.GA_ID': `"${process.env.GA_ID || 'UA-000000-01'}"`, + 'process.env.GTM_ENV_AUTH': `"${process.env.GTM_ENV_AUTH || ''}"`, + 'process.env.GTM_ID': process.env.GTM_ID ? `"${process.env.GTM_ID}"` : null + })) + .addPlugin(new CopyWebpackPlugin({ + patterns: [ + { + from: 'node_modules/scratch-blocks/media', + to: 'static/blocks-media/default' + }, + { + from: 'node_modules/scratch-blocks/media', + to: 'static/blocks-media/high-contrast' + }, + { + // overwrite some of the default block media with high-contrast versions + // this entry must come after copying scratch-blocks/media into the high-contrast directory + from: 'src/lib/themes/high-contrast/blocks-media', + to: 'static/blocks-media/high-contrast', + force: true + }, + { + context: 'node_modules/scratch-vm/dist/web', + from: 'extension-worker.{js,js.map}', + noErrorOnMissing: true + } ] - }, - plugins: [] -}; + })); -module.exports = [ - // to run editor examples - defaultsDeep({}, base, { +if (!process.env.CI) { + baseConfig.addPlugin(new webpack.ProgressPlugin()); +} + +// build the shipping library in `dist/` +const distConfig = baseConfig.clone() + .merge({ entry: { - 'lib.min': ['react', 'react-dom'], - 'gui': './src/playground/index.jsx', - 'blocksonly': './src/playground/blocks-only.jsx', - 'compatibilitytesting': './src/playground/compatibility-testing.jsx', - 'player': './src/playground/player.jsx' + 'scratch-gui': path.join(__dirname, 'src/index.js') }, output: { - path: path.resolve(__dirname, 'build'), - filename: '[name].js' - }, - externals: { - React: 'react', - ReactDOM: 'react-dom' - }, - module: { - rules: base.module.rules.concat([ + path: path.resolve(__dirname, 'dist') + } + }) + .addExternals(['react', 'react-dom']) + .addPlugin( + new CopyWebpackPlugin({ + patterns: [ { - test: /\.(svg|png|wav|gif|jpg)$/, - loader: 'file-loader', - options: { - outputPath: 'static/assets/' - } + from: 'src/lib/libraries/*.json', + to: 'libraries', + flatten: true } - ]) - }, - optimization: { - splitChunks: { - chunks: 'all', - name: 'lib.min' - }, - runtimeChunk: { - name: 'lib.min' - } + ] + }) + ); + +// build the examples and debugging tools in `build/` +const buildConfig = baseConfig.clone() + .enableDevServer(process.env.PORT || 8601) + .merge({ + entry: { + gui: './src/playground/index.jsx', + blocksonly: './src/playground/blocks-only.jsx', + compatibilitytesting: './src/playground/compatibility-testing.jsx', + player: './src/playground/player.jsx' }, - plugins: base.plugins.concat([ - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': '"' + process.env.NODE_ENV + '"', - 'process.env.DEBUG': Boolean(process.env.DEBUG), - 'process.env.GA_ID': '"' + (process.env.GA_ID || 'UA-000000-01') + '"' - }), - new HtmlWebpackPlugin({ - chunks: ['lib.min', 'gui'], - template: 'src/playground/index.ejs', - title: 'Scratch 3.0 GUI', - sentryConfig: process.env.SENTRY_CONFIG ? '"' + process.env.SENTRY_CONFIG + '"' : null - }), - new HtmlWebpackPlugin({ - chunks: ['lib.min', 'blocksonly'], - template: 'src/playground/index.ejs', - filename: 'blocks-only.html', - title: 'Scratch 3.0 GUI: Blocks Only Example' - }), - new HtmlWebpackPlugin({ - chunks: ['lib.min', 'compatibilitytesting'], - template: 'src/playground/index.ejs', - filename: 'compatibility-testing.html', - title: 'Scratch 3.0 GUI: Compatibility Testing' - }), - new HtmlWebpackPlugin({ - chunks: ['lib.min', 'player'], - template: 'src/playground/index.ejs', - filename: 'player.html', - title: 'Scratch 3.0 GUI: Player Example' - }), - new CopyWebpackPlugin([{ + output: { + path: path.resolve(__dirname, 'build') + } + }) + .addPlugin(new HtmlWebpackPlugin({ + ...commonHtmlWebpackPluginOptions, + chunks: ['gui'], + template: 'src/playground/index.ejs', + title: 'Scratch 3.0 GUI' + })) + .addPlugin(new HtmlWebpackPlugin({ + ...commonHtmlWebpackPluginOptions, + chunks: ['blocksonly'], + filename: 'blocks-only.html', + template: 'src/playground/index.ejs', + title: 'Scratch 3.0 GUI: Blocks Only Example' + })) + .addPlugin(new HtmlWebpackPlugin({ + ...commonHtmlWebpackPluginOptions, + chunks: ['compatibilitytesting'], + filename: 'compatibility-testing.html', + template: 'src/playground/index.ejs', + title: 'Scratch 3.0 GUI: Compatibility Testing' + })) + .addPlugin(new HtmlWebpackPlugin({ + ...commonHtmlWebpackPluginOptions, + chunks: ['player'], + filename: 'player.html', + template: 'src/playground/index.ejs', + title: 'Scratch 3.0 GUI: Player Example' + })) + .addPlugin(new CopyWebpackPlugin({ + patterns: [ + { from: 'static', to: 'static' - }]), - new CopyWebpackPlugin([{ - from: 'node_modules/scratch-blocks/media', - to: 'static/blocks-media' - }]), - new CopyWebpackPlugin([{ + }, + { from: 'extensions/**', to: 'static', context: 'src/examples' - }]), - new CopyWebpackPlugin([{ - from: 'extension-worker.{js,js.map}', - context: 'node_modules/scratch-vm/dist/web' - }]) - ]) - }) -].concat( - process.env.NODE_ENV === 'production' || process.env.BUILD_MODE === 'dist' ? ( - // export as library - defaultsDeep({}, base, { - target: 'web', - entry: { - 'scratch-gui': './src/index.js' - }, - output: { - libraryTarget: 'umd', - path: path.resolve('dist'), - publicPath: `${STATIC_PATH}/` - }, - externals: { - React: 'react', - ReactDOM: 'react-dom' - }, - module: { - rules: base.module.rules.concat([ - { - test: /\.(svg|png|wav|gif|jpg)$/, - loader: 'file-loader', - options: { - outputPath: 'static/assets/', - publicPath: `${STATIC_PATH}/assets/` - } - } - ]) - }, - plugins: base.plugins.concat([ - new CopyWebpackPlugin([{ - from: 'node_modules/scratch-blocks/media', - to: 'static/blocks-media' - }]), - new CopyWebpackPlugin([{ - from: 'extension-worker.{js,js.map}', - context: 'node_modules/scratch-vm/dist/web' - }]), - // Include library JSON files for scratch-desktop to use for downloading - new CopyWebpackPlugin([{ - from: 'src/lib/libraries/*.json', - to: 'libraries', - flatten: true - }]) - ]) - })) : [] -); + } + ] + })); + +// Skip building `dist/` unless explicitly requested +// It roughly doubles build time and isn't needed for `scratch-gui` development +// If you need non-production `dist/` for local dev, such as for `scratch-www` work, you can run something like: +// `BUILD_MODE=dist npm run build` +const buildDist = process.env.NODE_ENV === 'production' || process.env.BUILD_MODE === 'dist'; + +module.exports = buildDist ? + [buildConfig.get(), distConfig.get()] : + buildConfig.get();