@arkxos/arkos-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/README.md +36 -0
  2. package/ark_dist/ark-meta.json +45 -0
  3. package/ark_dist/css/370.fbd21c4a.css +65 -0
  4. package/ark_dist/index.html +23 -0
  5. package/ark_dist/js/370.b7feb826.js +3 -0
  6. package/ark_dist/js/370.b7feb826.js.LICENSE.txt +16 -0
  7. package/ark_dist/js/370.b7feb826.js.map +1 -0
  8. package/ark_dist/js/app.87081276.js +1 -0
  9. package/ark_proxy/entry.js +48 -0
  10. package/ark_proxy_es/entry.js +18 -0
  11. package/package.json +114 -0
  12. package/scripts/check.js +13 -0
  13. package/scripts/meta.js +21 -0
  14. package/scripts/prepublishOnly.js +28 -0
  15. package/src/App.vue +25 -0
  16. package/src/access/tokenStorage.ts +10 -0
  17. package/src/api/index.js +13 -0
  18. package/src/api/model/auth.js +88 -0
  19. package/src/api/model/common.js +49 -0
  20. package/src/api/model/demo.js +56 -0
  21. package/src/api/model/system.js +114 -0
  22. package/src/api/systemApi.js +16 -0
  23. package/src/assets/logo.png +0 -0
  24. package/src/components/HelloWorld.vue +40 -0
  25. package/src/components/index.ts +12 -0
  26. package/src/configs/subApp.ts +9 -0
  27. package/src/core/api/http.ts +490 -0
  28. package/src/core/apitest/axios_config.js +10 -0
  29. package/src/core/apitest/index.js +10 -0
  30. package/src/core/apitest/mock/user.js +10 -0
  31. package/src/core/config/index.js +84 -0
  32. package/src/core/config/myConfig.js +14 -0
  33. package/src/core/i18n/i18nBuilder.ts +41 -0
  34. package/src/core/puzzle/readme.txt +4 -0
  35. package/src/core/router/router.js +80 -0
  36. package/src/core/system.ts +312 -0
  37. package/src/directive/authDirective.ts +61 -0
  38. package/src/directive/index.ts +16 -0
  39. package/src/entrance/libProperties.ts +57 -0
  40. package/src/entrance/libTypes.ts +47 -0
  41. package/src/enums/LanguageEnum.ts +5 -0
  42. package/src/hooks/message.ts +81 -0
  43. package/src/lang/en_US.ts +28 -0
  44. package/src/lang/index.ts +73 -0
  45. package/src/lang/zh_CN.ts +27 -0
  46. package/src/loadApp.ts +4 -0
  47. package/src/main.ts +16 -0
  48. package/src/plugins/access.ts +88 -0
  49. package/src/plugins/accessPlugin.ts +76 -0
  50. package/src/plugins/acl/index.js +24 -0
  51. package/src/plugins/priv.ts +23 -0
  52. package/src/shims-vue.d.ts +6 -0
  53. package/src/store/index.ts +22 -0
  54. package/src/store/modules/systemStore.ts +31 -0
  55. package/src/types/axios.d.ts +13 -0
  56. package/src/types/func.ts +14 -0
  57. package/src/types/global.d.ts +108 -0
  58. package/src/types/layout.d.ts +59 -0
  59. package/src/types/mitt.d.ts +42 -0
  60. package/src/types/pinia.d.ts +94 -0
  61. package/src/types/views.d.ts +27 -0
  62. package/src/utils/mitt.ts +8 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/370.b7feb826.js","mappings":"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","sources":["webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/a-callable.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/an-instance.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/an-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/array-includes.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/classof-raw.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/classof.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/copy-constructor-properties.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/correct-prototype-getter.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/create-iter-result-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/create-property-descriptor.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/define-built-in.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/define-built-ins.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/define-global-property.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/descriptors.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/document-all.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/document-create-element.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/engine-user-agent.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/engine-v8-version.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/enum-bug-keys.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/export.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/fails.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/function-bind-context.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/function-bind-native.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/function-call.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/function-name.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/function-uncurry-this.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/get-built-in.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/get-iterator-direct.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/get-iterator-flattenable.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/get-iterator-method.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/get-iterator.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/get-method.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/global.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/has-own-property.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/hidden-keys.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/html.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/ie8-dom-define.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/indexed-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/inspect-source.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/internal-state.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/is-array-iterator-method.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/is-callable.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/is-forced.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/is-null-or-undefined.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/is-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/is-pure.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/is-symbol.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/iterate.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/iterator-close.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/iterator-create-proxy.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/iterator-map.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/iterators-core.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/iterators.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/length-of-array-like.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/make-built-in.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/math-trunc.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/not-a-nan.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-create.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-define-properties.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-define-property.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-get-own-property-names.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-get-prototype-of.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-is-prototype-of.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-keys-internal.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-keys.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/ordinary-to-primitive.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/own-keys.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/require-object-coercible.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/shared-key.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/shared-store.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/shared.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/symbol-constructor-detection.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-absolute-index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-indexed-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-integer-or-infinity.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-length.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-positive-integer.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-primitive.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-property-key.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/to-string-tag-support.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/try-to-string.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/uid.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/weak-map-basic-detection.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/internals/well-known-symbol.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.drop.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.every.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.filter.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.find.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.flat-map.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.for-each.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.map.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.reduce.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.29.0/node_modules/core-js/modules/esnext.iterator.some.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/a-function.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/an-instance.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/an-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/array-includes.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/classof-raw.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/classof.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/copy-constructor-properties.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/correct-prototype-getter.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/create-property-descriptor.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/descriptors.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/document-create-element.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/enum-bug-keys.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/export.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/fails.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/function-bind-context.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/get-built-in.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/get-iterator-method.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/global.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/has.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/hidden-keys.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/html.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/ie8-dom-define.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/indexed-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/inspect-source.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/internal-state.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/is-array-iterator-method.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/is-forced.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/is-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/is-pure.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/iterate.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/iterator-close.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/iterator-create-proxy.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/iterators-core.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/iterators.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/native-symbol.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/native-weak-map.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-create.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-define-properties.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-define-property.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-get-own-property-names.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-get-prototype-of.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-keys-internal.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-keys.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/own-keys.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/path.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/redefine-all.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/redefine.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/require-object-coercible.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/set-global.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/shared-key.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/shared-store.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/shared.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/to-absolute-index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/to-indexed-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/to-integer.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/to-length.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/to-object.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/to-primitive.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/to-string-tag-support.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/uid.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/internals/well-known-symbol.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.constructor.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.filter.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.find.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.for-each.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.map.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.some.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionApply.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/reflectApply.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/call-bound@1.0.4/node_modules/call-bound/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/aes.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/cipher-core.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/core.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/enc-base64.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/enc-base64url.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/enc-utf16.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/evpkdf.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/format-hex.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/hmac.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/lib-typedarrays.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/md5.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/mode-cfb.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/mode-ctr-gladman.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/mode-ctr.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/mode-ecb.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/mode-ofb.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/pad-ansix923.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/pad-iso10126.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/pad-iso97971.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/pad-nopadding.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/pad-zeropadding.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/pbkdf2.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/rabbit-legacy.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/rabbit.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/rc4.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/ripemd160.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/sha1.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/sha224.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/sha256.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/sha3.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/sha384.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/sha512.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/tripledes.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/crypto-js@4.1.1/node_modules/crypto-js/x64-core.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/dunder-proto@1.0.1/node_modules/dunder-proto/get.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/es-object-atoms@1.1.1/node_modules/es-object-atoms/index.js","webpack://@arkxos/arkos-core/../src/FileSaver.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Object.getPrototypeOf.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/Reflect.getPrototypeOf.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/get-proto@1.0.1/node_modules/get-proto/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/has-symbols@1.1.0/node_modules/has-symbols/shams.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/abs.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/floor.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/isNaN.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/max.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/min.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/pow.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/round.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/math-intrinsics@1.1.0/node_modules/math-intrinsics/sign.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/nprogress@0.2.0/node_modules/nprogress/nprogress.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/object-inspect@1.13.4/node_modules/object-inspect/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/formats.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/parse.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/stringify.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/qs@6.13.0/node_modules/qs/lib/utils.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/side-channel-list@1.0.0/node_modules/side-channel-list/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/side-channel-map@1.0.1/node_modules/side-channel-map/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/side-channel-weakmap@1.0.2/node_modules/side-channel-weakmap/index.js","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/side-channel@1.1.0/node_modules/side-channel/index.js","webpack://@arkxos/arkos-core/./src/api/index.js","webpack://@arkxos/arkos-core/./src/api/model/auth.js","webpack://@arkxos/arkos-core/./src/api/model/common.js","webpack://@arkxos/arkos-core/./src/api/model/demo.js","webpack://@arkxos/arkos-core/./src/api/model/system.js","webpack://@arkxos/arkos-core/./src/core/config/index.js","webpack://@arkxos/arkos-core/./src/core/config/myConfig.js","webpack://@arkxos/arkos-core/./src/core/router/router.js","webpack://@arkxos/arkos-core/../arkos-util/ark_proxy_es/entry.js","webpack://@arkxos/arkos-core/./src/access/tokenStorage.ts","webpack://@arkxos/arkos-core/./src/core/api/http.ts","webpack://@arkxos/arkos-core/./src/core/system.ts","webpack://@arkxos/arkos-core/./src/store/index.ts","webpack://@arkxos/arkos-core/./src/plugins/priv.ts","webpack://@arkxos/arkos-core/./src/plugins/access.ts","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/vue-simple-acl@2.0.2/node_modules/vue-simple-acl/dist/vue-simple-acl.esm-browser.js","webpack://@arkxos/arkos-core/./src/plugins/acl/index.js","webpack://@arkxos/arkos-core/./src/plugins/accessPlugin.ts","webpack://@arkxos/arkos-core/./src/utils/mitt.ts","webpack://@arkxos/arkos-core/../src/index.ts","webpack://@arkxos/arkos-core/./src/hooks/message.ts","webpack://@arkxos/arkos-core/./src/entrance/libProperties.ts","webpack://@arkxos/arkos-core/./src/directive/index.ts","webpack://@arkxos/arkos-core/./src/directive/authDirective.ts","webpack://@arkxos/arkos-core/./src/core/i18n/i18nBuilder.ts","webpack://@arkxos/arkos-core/./src/enums/LanguageEnum.ts","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/@vueuse+shared@10.7.0_vue@3.5.12_typescript@5.6.2_/node_modules/@vueuse/shared/index.mjs","webpack://@arkxos/arkos-core/../../node_modules/.pnpm/@vueuse+core@10.7.0_vue@3.5.12_typescript@5.6.2_/node_modules/@vueuse/core/index.mjs","webpack://@arkxos/arkos-core/./src/lang/index.ts","webpack://@arkxos/arkos-core/./src/store/modules/systemStore.ts","webpack://@arkxos/arkos-core/./src/api/model/ sync nonrecursive \\.js$"],"sourcesContent":["var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\n\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: aCallable(anObject(obj).next)\n };\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (obj) {\n var object = anObject(obj);\n var method = getIteratorMethod(object);\n return getIteratorDirect(anObject(isCallable(method) ? call(method, object) : object));\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\nvar getMethod = require('../internals/get-method');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ITERATOR_HELPER = 'IteratorHelper';\nvar WRAP_FOR_VALID_ITERATOR = 'WrapForValidIterator';\nvar setInternalState = InternalStateModule.set;\n\nvar createIteratorProxyPrototype = function (IS_ITERATOR) {\n var getInternalState = InternalStateModule.getterFor(IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER);\n\n return defineBuiltIns(create(IteratorPrototype), {\n next: function next() {\n var state = getInternalState(this);\n // for simplification:\n // for `%WrapForValidIteratorPrototype%.next` our `nextHandler` returns `IterResultObject`\n // for `%IteratorHelperPrototype%.next` - just a value\n if (IS_ITERATOR) return state.nextHandler();\n try {\n var result = state.done ? undefined : state.nextHandler();\n return createIterResultObject(result, state.done);\n } catch (error) {\n state.done = true;\n throw error;\n }\n },\n 'return': function () {\n var state = getInternalState(this);\n var iterator = state.iterator;\n state.done = true;\n if (IS_ITERATOR) {\n var returnMethod = getMethod(iterator, 'return');\n return returnMethod ? call(returnMethod, iterator) : createIterResultObject(undefined, true);\n }\n if (state.inner) try {\n iteratorClose(state.inner.iterator, 'normal');\n } catch (error) {\n return iteratorClose(iterator, 'throw', error);\n }\n iteratorClose(iterator, 'normal');\n return createIterResultObject(undefined, true);\n }\n });\n};\n\nvar WrapForValidIteratorPrototype = createIteratorProxyPrototype(true);\nvar IteratorHelperPrototype = createIteratorProxyPrototype(false);\n\ncreateNonEnumerableProperty(IteratorHelperPrototype, TO_STRING_TAG, 'Iterator Helper');\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var IteratorProxy = function Iterator(record, state) {\n if (state) {\n state.iterator = record.iterator;\n state.next = record.next;\n } else state = record;\n state.type = IS_ITERATOR ? WRAP_FOR_VALID_ITERATOR : ITERATOR_HELPER;\n state.nextHandler = nextHandler;\n state.counter = 0;\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = IS_ITERATOR ? WrapForValidIteratorPrototype : IteratorHelperPrototype;\n\n return IteratorProxy;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var result = anObject(call(this.next, iterator));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);\n});\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\nmodule.exports = function map(mapper) {\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: aCallable(mapper)\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var $RangeError = RangeError;\n\nmodule.exports = function (it) {\n // eslint-disable-next-line no-self-compare -- NaN check\n if (it === it) return it;\n throw $RangeError('NaN is not allowed');\n};\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.29.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.29.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar IS_PURE = require('../internals/is-pure');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar NativeIterator = global.Iterator;\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || !isCallable(NativeIterator)\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorPrototype);\n};\n\nif (!hasOwn(IteratorPrototype, TO_STRING_TAG)) {\n createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator');\n}\n\nif (FORCED || !hasOwn(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) {\n createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n// `Iterator` constructor\n// https://github.com/tc39/proposal-iterator-helpers\n$({ global: true, constructor: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar notANaN = require('../internals/not-a-nan');\nvar toPositiveInteger = require('../internals/to-positive-integer');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var next = this.next;\n var result, done;\n while (this.remaining) {\n this.remaining--;\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n }\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (!done) return result.value;\n});\n\n// `Iterator.prototype.drop` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n drop: function drop(limit) {\n return new IteratorProxy(getIteratorDirect(this), {\n remaining: toPositiveInteger(notANaN(+limit))\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.every` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n every: function every(predicate) {\n var record = getIteratorDirect(this);\n var counter = 0;\n aCallable(predicate);\n return !iterate(record, function (value, stop) {\n if (!predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var predicate = this.predicate;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(call(next, iterator));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, predicate, [value, this.counter++], true)) return value;\n }\n});\n\n// `Iterator.prototype.filter` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n filter: function filter(predicate) {\n return new IteratorProxy(getIteratorDirect(this), {\n predicate: aCallable(predicate)\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.find` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n find: function find(predicate) {\n var record = getIteratorDirect(this);\n var counter = 0;\n aCallable(predicate);\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop(value);\n }, { IS_RECORD: true, INTERRUPTED: true }).result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\nvar getIteratorFlattenable = require('../internals/get-iterator-flattenable');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar IteratorProxy = createIteratorProxy(function () {\n var iterator = this.iterator;\n var mapper = this.mapper;\n var result, inner;\n\n while (true) {\n if (inner = this.inner) try {\n result = anObject(call(inner.next, inner.iterator));\n if (!result.done) return result.value;\n this.inner = null;\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n\n result = anObject(call(this.next, iterator));\n\n if (this.done = !!result.done) return;\n\n try {\n this.inner = getIteratorFlattenable(mapper(result.value, this.counter++));\n } catch (error) { iteratorClose(iterator, 'throw', error); }\n }\n});\n\n// `Iterator.prototype.flatMap` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n flatMap: function flatMap(mapper) {\n return new IteratorProxy(getIteratorDirect(this), {\n mapper: aCallable(mapper),\n inner: null\n });\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.forEach` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n var record = getIteratorDirect(this);\n var counter = 0;\n aCallable(fn);\n iterate(record, function (value) {\n fn(value, counter++);\n }, { IS_RECORD: true });\n }\n});\n","var $ = require('../internals/export');\nvar map = require('../internals/iterator-map');\n\n// `Iterator.prototype.map` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n map: map\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n var record = getIteratorDirect(this);\n aCallable(reducer);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\n// `Iterator.prototype.some` method\n// https://github.com/tc39/proposal-iterator-helpers\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(predicate) {\n var record = getIteratorDirect(this);\n var counter = 0;\n aCallable(predicate);\n return iterate(record, function (value, stop) {\n if (predicate(value, counter++)) return stop();\n }, { IS_RECORD: true, INTERRUPTED: true }).stopped;\n }\n});\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n (function () { return this; })() || Function('return this')();\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar path = require('../internals/path');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.get;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar $return = function (value) {\n var iterator = getInternalState(this).iterator;\n var $$return = iterator['return'];\n return $$return === undefined ? { done: true, value: value } : anObject($$return.call(iterator, value));\n};\n\nvar $throw = function (value) {\n var iterator = getInternalState(this).iterator;\n var $$throw = iterator['throw'];\n if ($$throw === undefined) throw value;\n return $$throw.call(iterator, value);\n};\n\nmodule.exports = function (nextHandler, IS_ITERATOR) {\n var IteratorProxy = function Iterator(state) {\n state.next = aFunction(state.iterator.next);\n state.done = false;\n setInternalState(this, state);\n };\n\n IteratorProxy.prototype = redefineAll(create(path.Iterator.prototype), {\n next: function next() {\n var state = getInternalState(this);\n var result = state.done ? undefined : nextHandler.apply(state, arguments);\n return { done: state.done, value: result };\n },\n 'return': $return,\n 'throw': $throw\n });\n\n if (!IS_ITERATOR) {\n createNonEnumerableProperty(IteratorProxy.prototype, TO_STRING_TAG, 'Generator');\n }\n\n return IteratorProxy;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.8.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar anInstance = require('../internals/an-instance');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nvar NativeIterator = global.Iterator;\n\n// FF56- have non-standard global helper `Iterator`\nvar FORCED = IS_PURE\n || typeof NativeIterator != 'function'\n || NativeIterator.prototype !== IteratorPrototype\n // FF44- non-standard `Iterator` passes previous tests\n || !fails(function () { NativeIterator({}); });\n\nvar IteratorConstructor = function Iterator() {\n anInstance(this, IteratorConstructor);\n};\n\nif (IS_PURE) {\n IteratorPrototype = {};\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nif (!has(IteratorPrototype, TO_STRING_TAG)) {\n createNonEnumerableProperty(IteratorPrototype, TO_STRING_TAG, 'Iterator');\n}\n\nif (FORCED || !has(IteratorPrototype, 'constructor') || IteratorPrototype.constructor === Object) {\n createNonEnumerableProperty(IteratorPrototype, 'constructor', IteratorConstructor);\n}\n\nIteratorConstructor.prototype = IteratorPrototype;\n\n$({ global: true, forced: FORCED }, {\n Iterator: IteratorConstructor\n});\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function (arg) {\n var iterator = this.iterator;\n var filterer = this.filterer;\n var next = this.next;\n var result, done, value;\n while (true) {\n result = anObject(next.call(iterator, arg));\n done = this.done = !!result.done;\n if (done) return;\n value = result.value;\n if (callWithSafeIterationClosing(iterator, filterer, value)) return value;\n }\n});\n\n$({ target: 'Iterator', proto: true, real: true }, {\n filter: function filter(filterer) {\n return new IteratorProxy({\n iterator: anObject(this),\n filterer: aFunction(filterer)\n });\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\n\n$({ target: 'Iterator', proto: true, real: true }, {\n find: function find(fn) {\n anObject(this);\n aFunction(fn);\n return iterate(this, function (value, stop) {\n if (fn(value)) return stop(value);\n }, { IS_ITERATOR: true, INTERRUPTED: true }).result;\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar anObject = require('../internals/an-object');\n\n$({ target: 'Iterator', proto: true, real: true }, {\n forEach: function forEach(fn) {\n iterate(anObject(this), fn, { IS_ITERATOR: true });\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\nvar createIteratorProxy = require('../internals/iterator-create-proxy');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar IteratorProxy = createIteratorProxy(function (arg) {\n var iterator = this.iterator;\n var result = anObject(this.next.call(iterator, arg));\n var done = this.done = !!result.done;\n if (!done) return callWithSafeIterationClosing(iterator, this.mapper, result.value);\n});\n\n$({ target: 'Iterator', proto: true, real: true }, {\n map: function map(mapper) {\n return new IteratorProxy({\n iterator: anObject(this),\n mapper: aFunction(mapper)\n });\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-iterator-helpers\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aFunction = require('../internals/a-function');\nvar anObject = require('../internals/an-object');\n\n$({ target: 'Iterator', proto: true, real: true }, {\n some: function some(fn) {\n anObject(this);\n aFunction(fn);\n return iterate(this, function (value, stop) {\n if (fn(value)) return stop();\n }, { IS_ITERATOR: true, INTERRUPTED: true }).stopped;\n }\n});\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe=true) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe=true) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA1 = C_algo.SHA1;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA1\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA1,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - 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.\n\n\tTHIS 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.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<<n) | (x>>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\n }\n }\n)\n\n_global.saveAs = saveAs.saveAs = saveAs\n\nif (typeof module !== 'undefined') {\n module.exports = saveAs;\n}\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress\n * @license MIT */\n\n;(function(root, factory) {\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.NProgress = factory();\n }\n\n})(this, function() {\n var NProgress = {};\n\n NProgress.version = '0.2.0';\n\n var Settings = NProgress.settings = {\n minimum: 0.08,\n easing: 'ease',\n positionUsing: '',\n speed: 200,\n trickle: true,\n trickleRate: 0.02,\n trickleSpeed: 800,\n showSpinner: true,\n barSelector: '[role=\"bar\"]',\n spinnerSelector: '[role=\"spinner\"]',\n parent: 'body',\n template: '<div class=\"bar\" role=\"bar\"><div class=\"peg\"></div></div><div class=\"spinner\" role=\"spinner\"><div class=\"spinner-icon\"></div></div>'\n };\n\n /**\n * Updates configuration.\n *\n * NProgress.configure({\n * minimum: 0.1\n * });\n */\n NProgress.configure = function(options) {\n var key, value;\n for (key in options) {\n value = options[key];\n if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;\n }\n\n return this;\n };\n\n /**\n * Last number.\n */\n\n NProgress.status = null;\n\n /**\n * Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.\n *\n * NProgress.set(0.4);\n * NProgress.set(1.0);\n */\n\n NProgress.set = function(n) {\n var started = NProgress.isStarted();\n\n n = clamp(n, Settings.minimum, 1);\n NProgress.status = (n === 1 ? null : n);\n\n var progress = NProgress.render(!started),\n bar = progress.querySelector(Settings.barSelector),\n speed = Settings.speed,\n ease = Settings.easing;\n\n progress.offsetWidth; /* Repaint */\n\n queue(function(next) {\n // Set positionUsing if it hasn't already been set\n if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();\n\n // Add transition\n css(bar, barPositionCSS(n, speed, ease));\n\n if (n === 1) {\n // Fade out\n css(progress, { \n transition: 'none', \n opacity: 1 \n });\n progress.offsetWidth; /* Repaint */\n\n setTimeout(function() {\n css(progress, { \n transition: 'all ' + speed + 'ms linear', \n opacity: 0 \n });\n setTimeout(function() {\n NProgress.remove();\n next();\n }, speed);\n }, speed);\n } else {\n setTimeout(next, speed);\n }\n });\n\n return this;\n };\n\n NProgress.isStarted = function() {\n return typeof NProgress.status === 'number';\n };\n\n /**\n * Shows the progress bar.\n * This is the same as setting the status to 0%, except that it doesn't go backwards.\n *\n * NProgress.start();\n *\n */\n NProgress.start = function() {\n if (!NProgress.status) NProgress.set(0);\n\n var work = function() {\n setTimeout(function() {\n if (!NProgress.status) return;\n NProgress.trickle();\n work();\n }, Settings.trickleSpeed);\n };\n\n if (Settings.trickle) work();\n\n return this;\n };\n\n /**\n * Hides the progress bar.\n * This is the *sort of* the same as setting the status to 100%, with the\n * difference being `done()` makes some placebo effect of some realistic motion.\n *\n * NProgress.done();\n *\n * If `true` is passed, it will show the progress bar even if its hidden.\n *\n * NProgress.done(true);\n */\n\n NProgress.done = function(force) {\n if (!force && !NProgress.status) return this;\n\n return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);\n };\n\n /**\n * Increments by a random amount.\n */\n\n NProgress.inc = function(amount) {\n var n = NProgress.status;\n\n if (!n) {\n return NProgress.start();\n } else {\n if (typeof amount !== 'number') {\n amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);\n }\n\n n = clamp(n + amount, 0, 0.994);\n return NProgress.set(n);\n }\n };\n\n NProgress.trickle = function() {\n return NProgress.inc(Math.random() * Settings.trickleRate);\n };\n\n /**\n * Waits for all supplied jQuery promises and\n * increases the progress as the promises resolve.\n *\n * @param $promise jQUery Promise\n */\n (function() {\n var initial = 0, current = 0;\n\n NProgress.promise = function($promise) {\n if (!$promise || $promise.state() === \"resolved\") {\n return this;\n }\n\n if (current === 0) {\n NProgress.start();\n }\n\n initial++;\n current++;\n\n $promise.always(function() {\n current--;\n if (current === 0) {\n initial = 0;\n NProgress.done();\n } else {\n NProgress.set((initial - current) / initial);\n }\n });\n\n return this;\n };\n\n })();\n\n /**\n * (Internal) renders the progress bar markup based on the `template`\n * setting.\n */\n\n NProgress.render = function(fromStart) {\n if (NProgress.isRendered()) return document.getElementById('nprogress');\n\n addClass(document.documentElement, 'nprogress-busy');\n \n var progress = document.createElement('div');\n progress.id = 'nprogress';\n progress.innerHTML = Settings.template;\n\n var bar = progress.querySelector(Settings.barSelector),\n perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),\n parent = document.querySelector(Settings.parent),\n spinner;\n \n css(bar, {\n transition: 'all 0 linear',\n transform: 'translate3d(' + perc + '%,0,0)'\n });\n\n if (!Settings.showSpinner) {\n spinner = progress.querySelector(Settings.spinnerSelector);\n spinner && removeElement(spinner);\n }\n\n if (parent != document.body) {\n addClass(parent, 'nprogress-custom-parent');\n }\n\n parent.appendChild(progress);\n return progress;\n };\n\n /**\n * Removes the element. Opposite of render().\n */\n\n NProgress.remove = function() {\n removeClass(document.documentElement, 'nprogress-busy');\n removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent');\n var progress = document.getElementById('nprogress');\n progress && removeElement(progress);\n };\n\n /**\n * Checks if the progress bar is rendered.\n */\n\n NProgress.isRendered = function() {\n return !!document.getElementById('nprogress');\n };\n\n /**\n * Determine which positioning CSS rule to use.\n */\n\n NProgress.getPositioningCSS = function() {\n // Sniff on document.body.style\n var bodyStyle = document.body.style;\n\n // Sniff prefixes\n var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :\n ('MozTransform' in bodyStyle) ? 'Moz' :\n ('msTransform' in bodyStyle) ? 'ms' :\n ('OTransform' in bodyStyle) ? 'O' : '';\n\n if (vendorPrefix + 'Perspective' in bodyStyle) {\n // Modern browsers with 3D support, e.g. Webkit, IE10\n return 'translate3d';\n } else if (vendorPrefix + 'Transform' in bodyStyle) {\n // Browsers without 3D support, e.g. IE9\n return 'translate';\n } else {\n // Browsers without translate() support, e.g. IE7-8\n return 'margin';\n }\n };\n\n /**\n * Helpers\n */\n\n function clamp(n, min, max) {\n if (n < min) return min;\n if (n > max) return max;\n return n;\n }\n\n /**\n * (Internal) converts a percentage (`0..1`) to a bar translateX\n * percentage (`-100%..0%`).\n */\n\n function toBarPerc(n) {\n return (-1 + n) * 100;\n }\n\n\n /**\n * (Internal) returns the correct CSS for changing the bar's\n * position given an n percentage, and speed and ease from Settings\n */\n\n function barPositionCSS(n, speed, ease) {\n var barCSS;\n\n if (Settings.positionUsing === 'translate3d') {\n barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };\n } else if (Settings.positionUsing === 'translate') {\n barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };\n } else {\n barCSS = { 'margin-left': toBarPerc(n)+'%' };\n }\n\n barCSS.transition = 'all '+speed+'ms '+ease;\n\n return barCSS;\n }\n\n /**\n * (Internal) Queues a function to be executed.\n */\n\n var queue = (function() {\n var pending = [];\n \n function next() {\n var fn = pending.shift();\n if (fn) {\n fn(next);\n }\n }\n\n return function(fn) {\n pending.push(fn);\n if (pending.length == 1) next();\n };\n })();\n\n /**\n * (Internal) Applies css properties to an element, similar to the jQuery \n * css method.\n *\n * While this helper does assist with vendor prefixed property names, it \n * does not perform any manipulation of values prior to setting styles.\n */\n\n var css = (function() {\n var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],\n cssProps = {};\n\n function camelCase(string) {\n return string.replace(/^-ms-/, 'ms-').replace(/-([\\da-z])/gi, function(match, letter) {\n return letter.toUpperCase();\n });\n }\n\n function getVendorProp(name) {\n var style = document.body.style;\n if (name in style) return name;\n\n var i = cssPrefixes.length,\n capName = name.charAt(0).toUpperCase() + name.slice(1),\n vendorName;\n while (i--) {\n vendorName = cssPrefixes[i] + capName;\n if (vendorName in style) return vendorName;\n }\n\n return name;\n }\n\n function getStyleProp(name) {\n name = camelCase(name);\n return cssProps[name] || (cssProps[name] = getVendorProp(name));\n }\n\n function applyCss(element, prop, value) {\n prop = getStyleProp(prop);\n element.style[prop] = value;\n }\n\n return function(element, properties) {\n var args = arguments,\n prop, \n value;\n\n if (args.length == 2) {\n for (prop in properties) {\n value = properties[prop];\n if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);\n }\n } else {\n applyCss(element, args[1], args[2]);\n }\n }\n })();\n\n /**\n * (Internal) Determines if an element or space separated list of class names contains a class name.\n */\n\n function hasClass(element, name) {\n var list = typeof element == 'string' ? element : classList(element);\n return list.indexOf(' ' + name + ' ') >= 0;\n }\n\n /**\n * (Internal) Adds a class to an element.\n */\n\n function addClass(element, name) {\n var oldList = classList(element),\n newList = oldList + name;\n\n if (hasClass(oldList, name)) return; \n\n // Trim the opening space.\n element.className = newList.substring(1);\n }\n\n /**\n * (Internal) Removes a class from an element.\n */\n\n function removeClass(element, name) {\n var oldList = classList(element),\n newList;\n\n if (!hasClass(element, name)) return;\n\n // Replace the class name.\n newList = oldList.replace(' ' + name + ' ', ' ');\n\n // Trim the opening and closing spaces.\n element.className = newList.substring(1, newList.length - 1);\n }\n\n /**\n * (Internal) Gets a space separated list of the class names on the element. \n * The list is wrapped with a single space on each end to facilitate finding \n * matches within the list.\n */\n\n function classList(element) {\n return (' ' + (element.className || '') + ' ').replace(/\\s+/gi, ' ');\n }\n\n /**\n * (Internal) Removes an element from the DOM.\n */\n\n function removeElement(element) {\n element && element.parentNode && element.parentNode.removeChild(element);\n }\n\n return NProgress;\n});\n\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n __proto__: null,\n 'double': '\"',\n single: \"'\"\n};\nvar quoteREs = {\n __proto__: null,\n 'double': /([\"\\\\])/g,\n single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (\n (typeof globalThis !== 'undefined' && obj === globalThis)\n || (typeof global !== 'undefined' && obj === global)\n ) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var style = opts.quoteStyle || defaultStyle;\n var quoteChar = quotes[style];\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '&quot;');\n}\n\nfunction canTrustToString(obj) {\n return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n quoteRE.lastIndex = 0;\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowEmptyArrays: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decodeDotInKeys: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n duplicates: 'combine',\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictDepth: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n var existing = has.call(obj, key);\n if (existing && options.duplicates === 'combine') {\n obj[key] = utils.combine(obj[key], val);\n } else if (!existing || options.duplicates === 'last') {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n ? []\n : [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n var index = parseInt(decodedRoot, 10);\n if (!options.parseArrays && decodedRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== decodedRoot\n && String(index) === decodedRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (decodedRoot !== '__proto__') {\n obj[decodedRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, check strictDepth option for throw, else just add whatever is left\n\n if (segment) {\n if (options.strictDepth === true) {\n throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n }\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n throw new TypeError('The duplicates option must be either combine, first, or last');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n duplicates: duplicates,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var encodedPrefix = encodeDotInKeys ? prefix.replace(/\\./g, '%2E') : prefix;\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjustedPrefix + '[]';\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n var arrayFormat;\n if (opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = defaults.arrayFormat;\n }\n\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.allowEmptyArrays,\n options.strictNullHandling,\n options.skipNulls,\n options.encodeDotInKeys,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var j = 0; j < string.length; j += limit) {\n var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n var arr = [];\n\n for (var i = 0; i < segment.length; ++i) {\n var c = segment.charCodeAt(i);\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n arr[arr.length] = hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n out += arr.join('');\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType<typeof getSideChannelList>} Channel */\n\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode<V, K> | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable<typeof $o>} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {<K, V>(thisArg: Map<K, V>) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude<import('.'), false>} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType<typeof getSideChannelMap>} Channel */\n\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t/** @type {Map<K, V> | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude<import('.'), false>} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType<typeof getSideChannelWeakMap>} Channel */\n\t\t/** @typedef {Parameters<Channel['get']>[0]} K */\n\t\t/** @typedef {Parameters<Channel['set']>[1]} V */\n\n\t\t/** @type {WeakMap<K & object, V> | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable<typeof $m>} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType<typeof getSideChannel>} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","/**\r\n * @description 自动import导入所有 api 模块\r\n */\r\n\r\nconst files = require.context('./model', false, /\\.js$/)\r\nconst modules = {}\r\nfiles.keys().forEach((key) => {\r\n modules[key.replace(/(\\.\\/|\\.js)/g, '')] = files(key).default\r\n})\r\n\r\nexport default {\r\n ...modules\r\n}\r\n","import http from '../../core/api/http'\r\nimport config from '../../core/config'\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\n/**\r\n * https://www.ietf.org/rfc/rfc6749.txt\r\n * OAuth 协议 4.3.1 要求格式为 form 而不是 JSON 注意!\r\n */\r\nconst FORM_CONTENT_TYPE = 'application/x-www-form-urlencoded';\r\n\r\n/**\r\n *加密处理\r\n */\r\nexport function encryption(src, keyWord) {\r\n const key = CryptoJS.enc.Utf8.parse(keyWord);\r\n // 加密\r\n const encrypted = CryptoJS.AES.encrypt(src, key, {\r\n iv: key,\r\n mode: CryptoJS.mode.CFB,\r\n padding: CryptoJS.pad.NoPadding,\r\n });\r\n return encrypted.toString();\r\n}\r\n\r\nexport default {\r\n token: {\r\n url: '/auth/oauth2/token',\r\n name: '登录获取TOKEN',\r\n post: async function (data = {}) {\r\n const basicAuth = 'Basic ' + window.btoa('arkos:rapidark');\r\n const headers = Object.assign({\r\n skipToken: true,\r\n Authorization: basicAuth,\r\n 'Content-Type': FORM_CONTENT_TYPE,\r\n isEncrypt: false\r\n }, window.Arkos.api?.login?.headers || {})\r\n\r\n window.Arkos.api?.login?.beforePost(data)\r\n\r\n data.password = encryption(data.password, 'welcome-2-arkxos')\r\n\r\n return await http.post(this.url, data, {\r\n headers: headers\r\n });\r\n }\r\n },\r\n logout: {\r\n url: '/auth/logout',\r\n name: '登录获取TOKEN',\r\n post: async function (data = {}) {\r\n return await http.delete(this.url, data, {\r\n headers: {\r\n skipToken: true\r\n }\r\n });\r\n }\r\n },\r\n register: {\r\n url: '/auth/register',\r\n name: '注册',\r\n post: async function (data = {}) {\r\n return await http.post(this.url, data, {\r\n headers: {\r\n skipToken: true\r\n }\r\n });\r\n }\r\n },\r\n account: {\r\n url: '/admin/user/currentUserInfo',\r\n name: '获取账户信息',\r\n post: async function (data = {}) {\r\n return await http.get(this.url, data).catch(e => console.log(e));\r\n }\r\n },\r\n // 获取验证码\r\n getCodeImg: {\r\n url: window.Arkos.api.captcha.url || '/code',\r\n name: '获取账户信息',\r\n post: async function (data = {}) {\r\n return await http.get(this.url, data, {\r\n headers: {\r\n skipToken: true\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import http from '../../core/api/http'\r\nimport config from '../../core/config'\r\n\r\nexport default {\r\n upload: {\r\n url: '/upload',\r\n name: '文件上传',\r\n post: async function (data, config = {}) {\r\n return await http.post(this.url, data, config);\r\n }\r\n },\r\n uploadFile: {\r\n url: '/uploadFile',\r\n name: '附件上传',\r\n post: async function (data, config = {}) {\r\n return await http.post(this.url, data, config);\r\n }\r\n },\r\n exportFile: {\r\n url: '/fileExport',\r\n name: '导出附件',\r\n get: async function (data, config = {}) {\r\n return await http.get(this.url, data, config);\r\n }\r\n },\r\n importFile: {\r\n url: '/fileImport',\r\n name: '导入附件',\r\n post: async function (data, config = {}) {\r\n return await http.post(this.url, data, config);\r\n }\r\n },\r\n file: {\r\n menu: {\r\n url: '/file/menu',\r\n name: '获取文件分类',\r\n get: async function () {\r\n return await http.get(this.url);\r\n }\r\n },\r\n list: {\r\n url: '/file/list',\r\n name: '获取文件列表',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n }\r\n }\r\n}\r\n","import http from '../../core/api/http'\r\nimport config from '../../core/config'\r\n\r\nconsole.log('=======config==========', config)\r\nexport default {\r\n ver: {\r\n url: '/demo/ver',\r\n name: '获取最新版本号',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n },\r\n post: {\r\n url: '/demo/post',\r\n name: '分页列表',\r\n post: async function (data) {\r\n return await http.post(this.url, data, {\r\n headers: {\r\n // 'response-status': 401\r\n }\r\n });\r\n }\r\n },\r\n page: {\r\n url: '/demo/page',\r\n name: '分页列表',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n },\r\n list: {\r\n url: '/demo/list',\r\n name: '数据列表',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n },\r\n menu: {\r\n url: '/demo/menu',\r\n name: '普通用户菜单',\r\n get: async function () {\r\n return await http.get(this.url);\r\n }\r\n },\r\n status: {\r\n url: '/demo/status',\r\n name: '模拟无权限',\r\n get: async function (code) {\r\n return await http.get(this.url, {}, {\r\n headers: {\r\n 'response-status': code\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import http from '../../core/api/http'\r\nimport config from '../../core/config'\r\n\r\nexport default {\r\n menu: {\r\n myMenus: {\r\n url: '/admin/current/user/routers',\r\n name: '获取我的菜单',\r\n get: async function () {\r\n return await http.get(this.url);\r\n }\r\n },\r\n list: {\r\n url: '/system/menu/list',\r\n name: '获取菜单',\r\n get: async function () {\r\n return await http.get(this.url);\r\n }\r\n }\r\n },\r\n dic: {\r\n tree: {\r\n url: '/system/dic/tree',\r\n name: '获取字典树',\r\n get: async function () {\r\n return await http.get(this.url);\r\n }\r\n },\r\n list: {\r\n url: '/system/dic/list',\r\n name: '字典明细',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n },\r\n get: {\r\n url: '/system/dic/get',\r\n name: '获取字典数据',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n }\r\n },\r\n role: {\r\n list: {\r\n url: '/system/role/list2',\r\n name: '获取角色列表',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n }\r\n },\r\n dept: {\r\n list: {\r\n url: '/system/dept/list',\r\n name: '获取部门列表',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n }\r\n },\r\n user: {\r\n list: {\r\n url: '/system/user/list',\r\n name: '获取用户列表',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n }\r\n },\r\n app: {\r\n list: {\r\n url: '/system/app/list',\r\n name: '应用列表',\r\n get: async function () {\r\n return await http.get(this.url);\r\n }\r\n }\r\n },\r\n log: {\r\n list: {\r\n url: '/system/log/list',\r\n name: '日志列表',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n }\r\n },\r\n table: {\r\n list: {\r\n url: '/system/table/list',\r\n name: '表格列管理列表',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n },\r\n info: {\r\n url: '/system/table/info',\r\n name: '表格列管理详情',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n }\r\n },\r\n tasks: {\r\n list: {\r\n url: '/system/tasks/list',\r\n name: '系统任务管理',\r\n get: async function (params) {\r\n return await http.get(this.url, params);\r\n }\r\n }\r\n }\r\n}\r\n","\r\n// 合并业务配置\r\nimport MY_CONFIG from './myConfig'\r\n\r\nconst DEFAULT_CONFIG = {\r\n\r\n envModel: 'development',\r\n\r\n // 标题\r\n ArkosTitle: 'Ark OS', // process.env.VUE_APP_TITLE,\r\n\r\n // 首页地址\r\n DASHBOARD_URL: '/arkui-sample/dashboard',\r\n\r\n // 版本号\r\n APP_VER: '1.0.0',\r\n\r\n // 内核版本号\r\n CORE_VER: '1.0.0',\r\n\r\n // 接口地址\r\n API_URL: '/gateway', // process.env.NODE_ENV === 'development' && process.env.VUE_APP_PROXY === 'true' ? \"/api\" : process.env.VUE_APP_API_BASEURL,\r\n\r\n // 请求超时\r\n TIMEOUT: 30000,\r\n\r\n // TokenName\r\n TOKEN_NAME: 'Authorization',\r\n\r\n // Token前缀,注意最后有个空格,如不需要需设置空字符串\r\n TOKEN_PREFIX: 'Bearer ',\r\n\r\n // 追加其他头\r\n HEADERS: {},\r\n\r\n // 请求是否开启缓存\r\n REQUEST_CACHE: false,\r\n\r\n // 布局 默认:default | 通栏:header | 经典:menu | 功能坞:dock\r\n // dock将关闭标签和面包屑栏\r\n LAYOUT: 'header',\r\n\r\n // 菜单是否折叠\r\n MENU_IS_COLLAPSE: false,\r\n\r\n // 菜单是否启用手风琴效果\r\n MENU_UNIQUE_OPENED: false,\r\n\r\n // 是否开启多标签\r\n LAYOUT_TAGS: true,\r\n\r\n // 语言\r\n LANG: 'zh-cn',\r\n\r\n // 主题颜色\r\n COLOR: '',\r\n\r\n // 是否加密localStorage, 为空不加密,可填写AES(模式ECB,移位Pkcs7)加密\r\n LS_ENCRYPTION: '',\r\n\r\n // localStorageAES加密秘钥,位数建议填写8的倍数\r\n LS_ENCRYPTION_key: '2XNN4K8LC0ELVWN4',\r\n\r\n // 控制台首页默认布局\r\n DEFAULT_GRID: {\r\n // 默认分栏数量和宽度 例如 [24] [18,6] [8,8,8] [6,12,6]\r\n layout: [12, 6, 6],\r\n // 小组件分布,com取值:views/home/components 文件名\r\n copmsList: [\r\n ['welcome'],\r\n ['about', 'ver'],\r\n ['time', 'progress']\r\n ]\r\n }\r\n}\r\nObject.assign(DEFAULT_CONFIG, MY_CONFIG)\r\n\r\n// 如果生产模式,就合并动态的APP_CONFIG\r\n// public/config.js\r\n// if(process.env.NODE_ENV === 'production'){\r\nObject.assign(DEFAULT_CONFIG, ArkosGlobalConfig)\r\n// }\r\n\r\nexport default DEFAULT_CONFIG\r\n","// 业务配置\r\n// 会合并至this.$CONFIG\r\n// 生产模式 public/config.js 同名key会覆盖这里的配置从而实现打包后的热更新\r\n// 为避免和SCUI框架配置混淆建议添加前缀 MY_\r\n// 全局可使用 this.$CONFIG.MY_KEY 访问\r\n\r\nexport default {\r\n // 是否显示第三方授权登录\r\n MY_SHOW_LOGIN_OAUTH: true,\r\n\r\n // 标题\r\n ArkosTitle: 'ArkX OS', // process.env.VUE_APP_TITLE,\r\n\r\n}\r\n","\r\nimport { createRouter, createWebHashHistory } from 'vue-router';\r\nimport { ElNotification } from 'element-plus';\r\nimport NProgress from 'nprogress'\r\nimport 'nprogress/nprogress.css'\r\nimport system from '../system';\r\nimport config from '../config/index'\r\n\r\n// 创建一个路由器实例\r\nconst router = createRouter({\r\n history: createWebHashHistory(),\r\n base: '__dirname',\r\n routes: [],\r\n // 设置滚动条位置\r\n scrollBehavior: to => {\r\n if (document.getElementById('con')) {\r\n if (to.meta.scrollTop) {\r\n document.getElementById('con').scrollTop = to.meta.scrollTop;\r\n } else {\r\n document.getElementById('con').scrollTop = 0;\r\n }\r\n }\r\n }\r\n});\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n markScroll(to, from, next);\r\n\r\n NProgress.start()\r\n\r\n // 动态标题\r\n document.title = to.meta.title ? `${to.meta.title} - ${config.ArkosTitle}` : `${config.ArkosTitle}`\r\n\r\n system.plugins.forEach((plugin) => {\r\n if (!plugin.beforeRouter) {\r\n return;\r\n }\r\n plugin.beforeRouter(to, from, next);\r\n })\r\n\r\n next();\r\n});\r\n\r\nrouter.afterEach((to, from) => {\r\n // afterEach(to, from)\r\n NProgress.done()\r\n});\r\n\r\nrouter.onError((error) => {\r\n NProgress.done();\r\n ElNotification.error({\r\n title: '路由错误',\r\n message: error.message\r\n });\r\n});\r\n\r\n// 记录滚动条位置\r\nfunction markScroll (to, from, next) {\r\n if (document.getElementById('con')) { from.meta.scrollTop = document.getElementById('con').scrollTop; }\r\n // 根据url打开标签\r\n if (\r\n !from.name &&\r\n to.path != '/mainIndex' &&\r\n to.name &&\r\n PUZZLE_CONFIG.pageHome != to.name\r\n ) {\r\n // store.commit(\"ADD_TAB\", to.name);\r\n }\r\n}\r\n\r\n// 防止路由到错误地址\r\n// router.beforeEach((to, from, next) => {\r\n// if (to.matched.length > 0)\r\n// next();\r\n// });\r\n\r\n// 错误捕获\r\n// router.onError(err => { });\r\n\r\nexport default router;\r\n","import { exposeLib } from '@arkxio/ark-lib-proxy';\n\n/*\n|--------------------------------------------------------------------------\n|\n| 对应 package.json/appGroupName\n|\n|--------------------------------------------------------------------------\n*/\nconst LIB_NAME = '@arkxos/arkos-util';\n\nconst lib = exposeLib(LIB_NAME);\n// suport writing: import { regs, num, myMod } from 'hel-tpl-remote-lib';\nconst { regs, num, myMod, color, util, parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, sprintf, parseStrEmpty, mergeRecursive, handleTree, tansParams, getNormalPath, blobValidate, sessionCache, localCache, HttpStatusErrorMessage, errorHandler, tool, crypto, jsencrypt, HttpStatus, decryptBase64, decryptWithAes, encryptBase64, encryptWithAes, generateAesKey, encrypt, decrypt, \n// validate\nvalidateNull, validateRule, validateRegExp, judementSameArr, isObjectValueEqual, arrRemoveDuplicate } = lib;\n\nexport { HttpStatus, HttpStatusErrorMessage, addDateRange, arrRemoveDuplicate, blobValidate, color, crypto, decrypt, decryptBase64, decryptWithAes, lib as default, encrypt, encryptBase64, encryptWithAes, errorHandler, generateAesKey, getNormalPath, handleTree, isObjectValueEqual, jsencrypt, judementSameArr, lib, localCache, mergeRecursive, myMod, num, parseStrEmpty, parseTime, regs, resetForm, selectDictLabel, selectDictLabels, sessionCache, sprintf, tansParams, tool, util, validateNull, validateRegExp, validateRule };\n","import { tool } from '@arkxos/arkos-util'\r\n\r\nconst TokenKey = 'Ark-Token';\r\n\r\n// const tokenStorage = useStorage<null | string>(TokenKey, null);\r\n\r\nexport const getToken = () => tool.cookie.get(TokenKey);\r\n\r\nexport const setToken = (access_token: string, config?: any) => tool.cookie.set(TokenKey, access_token, config);\r\nexport const removeToken = () => tool.cookie.set(TokenKey, '');\r\n","import axios, { AxiosResponse, InternalAxiosRequestConfig } from 'axios';\r\nimport { ElNotification, ElMessageBox, ElMessage, ElLoading } from 'element-plus'\r\n\r\nimport sysConfig from '../config';\r\nimport {\r\n tool,\r\n util,\r\n sessionCache,\r\n HttpStatusErrorMessage,\r\n HttpStatus,\r\n crypto,\r\n jsencrypt,\r\n sessionCache as Session\r\n} from '@arkxos/arkos-util';\r\nimport router from '../router/router';\r\nimport { saveAs } from 'file-saver'\r\nimport { getToken } from '../../access/tokenStorage';\r\nimport { getLanguage } from '../../lang';\r\nimport qs from 'qs';\r\nconst tansParams = util.tansParams;\r\nconst blobValidate = util.blobValidate;\r\n\r\nconst encryptHeader = 'encrypt-key';\r\n\r\n// 常用header\r\nexport enum CommonHeaderEnum {\r\n 'TENANT_ID' = 'TENANT-ID',\r\n 'ENC_FLAG' = 'Enc-Flag',\r\n 'AUTHORIZATION' = 'Authorization',\r\n}\r\n\r\n// 是否显示重新登录\r\nexport const isRelogin = { show: false };\r\n\r\nexport const globalHeaders = () => {\r\n return {\r\n Authorization: 'Bearer ' + getToken(),\r\n // @ts-ignore\r\n arkClientId: window.Arkos?.appInfo?.clientId\r\n };\r\n};\r\n\r\naxios.defaults.baseURL = ''\r\n\r\naxios.defaults.timeout = sysConfig.TIMEOUT\r\n\r\naxios.defaults.headers['accept'] = 'application/json;charset=utf-8'\r\naxios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'\r\n// 对应国际化资源文件后缀\r\naxios.defaults.headers['Content-Language'] = 'zh-cn'\r\n// @ts-ignore\r\naxios.defaults.headers['arkClientId'] = window.Arkos?.appInfo?.clientId;\r\n\r\n// @ts-ignore\r\nif (window.Arkos?.api?.global?.headers) {\r\n // @ts-ignore\r\n for (const key in window.Arkos?.api.global.headers) {\r\n // @ts-ignore\r\n const value = window.Arkos?.api.global.headers[key]\r\n axios.defaults.headers[key] = value\r\n }\r\n}\r\n\r\n/**\r\n * 创建并配置一个 Axios 实例对象\r\n */\r\nconst service = axios.create({\r\n // axios中请求配置有baseURL选项,表示请求URL公共部分\r\n baseURL: sysConfig.API_URL || '',\r\n // 超时../../core/api/http\r\n timeout: sysConfig.TIMEOUT, // 全局超时时间\r\n paramsSerializer: {\r\n serialize: (params: any) => {\r\n return qs.stringify(params, { arrayFormat: 'repeat' });\r\n }\r\n }\r\n})\r\n\r\n/**\r\n * Axios请求拦截器,对请求进行处理\r\n * 1. 序列化get请求参数\r\n * 2. 统一增加Authorization和TENANT-ID请求头\r\n * 3. 自动适配单体、微服务架构不同的URL\r\n * @param config AxiosRequestConfig对象,包含请求配置信息\r\n */\r\nservice.interceptors.request.use(\r\n (config: InternalAxiosRequestConfig) => {\r\n console.log('pre request', config)\r\n // 对应国际化资源文件后缀\r\n config.headers['Content-Language'] = getLanguage();\r\n\r\n const headers: any = config.headers || {};\r\n\r\n // 是否需要防止数据重复提交\r\n const isNotRepeatSubmit = headers.repeatSubmit === false\r\n\r\n const token = getToken();\r\n\r\n if (token && !headers.skipToken) { // 让每个请求携带自定义token\r\n config.headers![sysConfig.TOKEN_NAME] = sysConfig.TOKEN_PREFIX + token\r\n }\r\n if (!sysConfig.REQUEST_CACHE && config.method == 'get') {\r\n config.params = config.params || {};\r\n config.params._ = new Date().getTime();\r\n }\r\n Object.assign(config.headers, sysConfig.HEADERS)\r\n\r\n // get请求映射params参数\r\n if (config.method === 'get' && config.params) {\r\n let url = config.url + '?' + tansParams(config.params);\r\n url = url.slice(0, -1);\r\n config.params = {};\r\n config.url = url;\r\n }\r\n\r\n if (!isNotRepeatSubmit && (\r\n config.method === 'post' ||\r\n config.method === 'put' ||\r\n config.method === 'delete')) {\r\n const requestObj = {\r\n url: config.url,\r\n method: config.method,\r\n data: typeof config.data === 'object' ? JSON.stringify(config.data) : config.data,\r\n time: new Date().getTime()\r\n }\r\n console.log('requestObj', requestObj)\r\n const sessionObj = sessionCache.getJSON('sessionObj')\r\n console.log('exist sessionObj', sessionObj)\r\n if (sessionObj === undefined || sessionObj === null || sessionObj === '') {\r\n sessionCache.setJSON('sessionObj', requestObj)\r\n } else {\r\n const s_url = sessionObj.url; // 请求地址\r\n const s_method = sessionObj.method; // 请求数据\r\n const s_data = sessionObj.data; // 请求数据\r\n const s_time = sessionObj.time; // 请求时间\r\n const interval = 1000; // 间隔时间(ms),小于此时间视为重复提交\r\n if (s_data === requestObj.data &&\r\n requestObj.time - s_time < interval &&\r\n s_url === requestObj.url &&\r\n s_method === requestObj.method) {\r\n const message = '数据正在处理,请勿重复操作';\r\n console.warn(`[${s_url}]: ` + message)\r\n return Promise.reject(new Error(message))\r\n } else {\r\n sessionCache.setJSON('sessionObj', requestObj)\r\n }\r\n }\r\n }\r\n\r\n // 是否需要加密\r\n const isEncrypt = headers.isEncrypt === true;\r\n // 当开启参数加密\r\n if (isEncrypt && (config.method === 'post' || config.method === 'put')) {\r\n // 生成一个 AES 密钥\r\n const aesKey = crypto.generateAesKey();\r\n config.headers[encryptHeader] = jsencrypt.encrypt(crypto.encryptBase64(aesKey));\r\n config.data = typeof config.data === 'object'\r\n ? crypto.encryptWithAes(JSON.stringify(config.data), aesKey)\r\n : crypto.encryptWithAes(config.data, aesKey);\r\n }\r\n\r\n // FormData数据去请求头Content-Type\r\n if (config.data instanceof FormData) {\r\n delete config.headers['Content-Type'];\r\n }\r\n\r\n // 自动适配单体和微服务架构不同的URL\r\n // config.url = other.adaptationUrl(config.url);\r\n\r\n return config;\r\n },\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\n// FIX 多个API同时401时疯狂弹窗BUG\r\nlet MessageBox_401_show = false\r\n\r\n// HTTP response 拦截器\r\n/**\r\n * 响应拦截器处理函数\r\n * @param response 响应结果\r\n * @returns 如果响应成功,则返回响应的data属性;否则,抛出错误或者执行其他操作\r\n */\r\nservice.interceptors.response.use(\r\n (response: AxiosResponse) => {\r\n console.log('http response', response)\r\n // 加密后的 AES 秘钥\r\n const keyStr = response.headers[encryptHeader];\r\n // 加密\r\n if (keyStr != null && keyStr != '') {\r\n const data = response.data;\r\n // 请求体 AES 解密\r\n const base64Str = jsencrypt.decrypt(keyStr);\r\n // base64 解码 得到请求头的 AES 秘钥\r\n const aesKey = crypto.decryptBase64(base64Str.toString());\r\n // aesKey 解码 data\r\n const decryptData = crypto.decryptWithAes(data, aesKey);\r\n // 将结果 (得到的是 JSON 字符串) 转为 JSON\r\n response.data = JSON.parse(decryptData);\r\n }\r\n\r\n // 未设置状态码则默认成功状态\r\n let code = HttpStatus.SUCCESS;\r\n if (response.data?.code) {\r\n code = response.data.code\r\n } else if (response?.status) {\r\n code = response.status\r\n }\r\n // 获取错误信息\r\n const msg = HttpStatusErrorMessage[code] || response.data.msg || HttpStatusErrorMessage.default\r\n // 二进制数据则直接返回\r\n if (response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer') {\r\n return response.data\r\n }\r\n // console.log('response data', response.data)\r\n if (code === 401) {\r\n console.error('请求401:' + response.config.url);\r\n ElNotification.error({\r\n title: '未授权',\r\n message: 'Status:401,正在请求未授权的地址:' + response.config.url + '!'\r\n });\r\n // if (!isRelogin.show) {\r\n // isRelogin.show = true;\r\n // ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {\r\n // confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning'\r\n // }).then(() => {\r\n // isRelogin.show = false;\r\n // useUserStore().logOut().then(() => {\r\n // location.href = '/#/index';\r\n // })\r\n // }).catch(() => {\r\n // isRelogin.show = false;\r\n // });\r\n // }\r\n return Promise.reject('无效的会话,或者会话已过期,请重新登录。')\r\n } else if (code === HttpStatus.TOKEN_EXPIRE) {\r\n ElMessageBox.confirm('令牌状态已过期,请点击重新登录。', '令牌状态已过期', {\r\n type: 'error',\r\n closeOnClickModal: false,\r\n center: true,\r\n confirmButtonText: '重新登录'\r\n }).then(() => {\r\n Session.clear(); // 清除浏览器全部临时缓存\r\n window.location.href = '/'; // 去登录页\r\n }).catch(() => {})\r\n } else if (code === HttpStatus.SERVER_ERROR) {\r\n ElMessage({ message: msg, type: 'error' })\r\n return Promise.reject(new Error(msg))\r\n } else if (code === HttpStatus.WARN) {\r\n ElMessage({ message: msg, type: 'warning' })\r\n return Promise.reject(new Error(msg))\r\n } else if (code !== HttpStatus.SUCCESS) {\r\n ElNotification.error({ title: msg })\r\n return Promise.reject('error')\r\n } else if (response.data) {\r\n return Promise.resolve(response.data)\r\n } else {\r\n return Promise.resolve(response)\r\n }\r\n },\r\n (error) => {\r\n if (error.response) {\r\n if (error.response.status == 404) {\r\n ElNotification.error({\r\n title: '请求错误',\r\n message: 'Status:404,正在请求不存在的服务器记录!'\r\n });\r\n } else if (error.response.status == 500) {\r\n ElNotification.error({\r\n title: '请求错误',\r\n message: error.response.data.message || 'Status:500,服务器发生错误!'\r\n });\r\n } else if (error.response.status == 401) {\r\n if (!MessageBox_401_show) {\r\n MessageBox_401_show = true\r\n ElMessageBox.confirm('当前用户已被登出或无权限访问当前资源,请尝试重新登录后再操作。', '无权限访问', {\r\n type: 'error',\r\n closeOnClickModal: false,\r\n center: true,\r\n confirmButtonText: '重新登录',\r\n beforeClose: (action, instance, done) => {\r\n MessageBox_401_show = false\r\n done()\r\n }\r\n }).then(() => {\r\n router.replace({ path: '/login' });\r\n }).catch(() => {})\r\n }\r\n } else {\r\n ElNotification.error({\r\n title: '请求错误',\r\n message: error.message || `Status:${error.response.status},未知错误!`\r\n });\r\n }\r\n } else {\r\n ElNotification.error({\r\n title: '请求错误',\r\n message: '请求服务器无响应!'\r\n });\r\n }\r\n\r\n let { message } = error;\r\n if (message == 'Network Error') {\r\n message = '后端接口连接异常';\r\n } else if (message.includes('timeout')) {\r\n message = '系统接口请求超时';\r\n } else if (message.includes('Request failed with status code')) {\r\n message = '系统接口' + message.substr(message.length - 3) + '异常';\r\n }\r\n ElMessage({ message: message, type: 'error', duration: 5 * 1000 })\r\n\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nexport const http = {\r\n\r\n request: function (config) {\r\n return new Promise((resolve, reject) => {\r\n service(config).then((response) => {\r\n resolve(response);\r\n }).catch((error) => {\r\n reject(error);\r\n })\r\n })\r\n },\r\n // 通用下载方法\r\n download: function (url: string, params: any, filename: string, config: any) {\r\n const downloadLoadingInstance = ElLoading.service({ text: '正在下载数据,请稍候', background: 'rgba(0, 0, 0, 0.7)', })\r\n return service.post(url, params, {\r\n transformRequest: [(params) => { return tansParams(params) }],\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\r\n responseType: 'blob',\r\n ...config\r\n }).then(async (resp) => {\r\n const isBlob = blobValidate(resp);\r\n if (isBlob) {\r\n // @ts-ignore\r\n const blob = new Blob([resp])\r\n saveAs(blob, filename)\r\n } else {\r\n const resText = await resp.data.text();\r\n const rspObj = JSON.parse(resText);\r\n const errMsg = HttpStatusErrorMessage[rspObj.code] || rspObj.msg || HttpStatusErrorMessage.default\r\n ElMessage.error(errMsg);\r\n }\r\n downloadLoadingInstance.close();\r\n }).catch((r) => {\r\n console.error(r)\r\n ElMessage.error('下载文件出现错误,请联系管理员!')\r\n downloadLoadingInstance.close();\r\n })\r\n },\r\n\r\n /** get 请求\r\n * @param {string} url 接口地址\r\n * @param {object} params 请求参数\r\n * @param {object} config 参数\r\n */\r\n get: function (url, params = {}, config = {}) {\r\n return new Promise((resolve, reject) => {\r\n service({\r\n method: 'get',\r\n url: url,\r\n params: params,\r\n ...config\r\n }).then((response) => {\r\n resolve(response.data);\r\n }).catch((error) => {\r\n reject(error);\r\n })\r\n })\r\n },\r\n\r\n /** post 请求\r\n * @param {string} url 接口地址\r\n * @param {object} data 请求参数\r\n * @param {object} config 参数\r\n */\r\n post: function (url, data = {}, config = {}) {\r\n return new Promise((resolve, reject) => {\r\n service({\r\n method: 'post',\r\n url: url,\r\n data: data,\r\n ...config\r\n }).then((response) => {\r\n resolve(response.data);\r\n }).catch((error) => {\r\n reject(error);\r\n })\r\n })\r\n },\r\n\r\n /** put 请求\r\n * @param {string} url 接口地址\r\n * @param {object} data 请求参数\r\n * @param {object} config 参数\r\n */\r\n put: function (url, data = {}, config = {}) {\r\n return new Promise((resolve, reject) => {\r\n service({\r\n method: 'put',\r\n url: url,\r\n data: data,\r\n ...config\r\n }).then((response) => {\r\n resolve(response.data);\r\n }).catch((error) => {\r\n reject(error);\r\n })\r\n })\r\n },\r\n\r\n /** patch 请求\r\n * @param {string} url 接口地址\r\n * @param {object} data 请求参数\r\n * @param {object} config 参数\r\n */\r\n patch: function (url, data = {}, config = {}) {\r\n return new Promise((resolve, reject) => {\r\n service({\r\n method: 'patch',\r\n url: url,\r\n data: data,\r\n ...config\r\n }).then((response) => {\r\n resolve(response.data);\r\n }).catch((error) => {\r\n reject(error);\r\n })\r\n })\r\n },\r\n\r\n /** delete 请求\r\n * @param {string} url 接口地址\r\n * @param {object} data 请求参数\r\n * @param {object} config 参数\r\n */\r\n delete: function (url, data = {}, config = {}) {\r\n return new Promise((resolve, reject) => {\r\n service({\r\n method: 'delete',\r\n url: url,\r\n data: data,\r\n ...config\r\n }).then((response) => {\r\n resolve(response.data);\r\n }).catch((error) => {\r\n reject(error);\r\n })\r\n })\r\n },\r\n\r\n /** jsonp 请求\r\n * @param {string} url 接口地址\r\n * @param {string} name JSONP回调函数名称\r\n */\r\n jsonp: function (url, name = 'jsonp') {\r\n return new Promise((resolve) => {\r\n const script = document.createElement('script')\r\n const _id = `jsonp${Math.ceil(Math.random() * 1000000)}`\r\n script.id = _id\r\n script.type = 'text/javascript'\r\n script.src = url\r\n window[name] = (response) => {\r\n resolve(response)\r\n document.getElementsByTagName('head')[0].removeChild(script)\r\n try {\r\n delete window[name];\r\n } catch (e) {\r\n window[name] = undefined;\r\n }\r\n }\r\n document.getElementsByTagName('head')[0].appendChild(script)\r\n })\r\n }\r\n}\r\n\r\nexport const request = http.request\r\nexport const get = http.get\r\nexport const post = http.post\r\nexport const put = http.put\r\nexport const patch = http.patch\r\nexport const deleted = http.delete\r\nexport const jsonp = http.jsonp\r\n\r\nexport default service;\r\n","import { sessionCache, errorHandler, tool } from '@arkxos/arkos-util'\r\nimport systemStore from '../store/modules/systemStore'\r\nimport { preFetchLib } from '@arkxio/ark-micro';\r\nimport api from '../api';\r\n\r\nfunction handleMenus (menus, result) {\r\n if (!menus) {\r\n return;\r\n }\r\n // console.log('handleMenus', menus)\r\n for (const item of menus) {\r\n const isFolder = item.children && item.children.length > 0;\r\n const isLeaf = !isFolder;\r\n if (isLeaf) {\r\n result.push(item);\r\n } else if (item.children) {\r\n handleMenus(item.children, result);\r\n }\r\n }\r\n}\r\n\r\nconst system = {\r\n plugins: [],\r\n puzzleLoaders: {},\r\n // devModuleImporter(customDevModuleImporter) {\r\n // _import.devModuleImporter = customDevModuleImporter\r\n // },\r\n async dynamicLoadModule(type, name, host, version) {\r\n console.log('dynamic load puzzle', type, name, version)\r\n return preFetchLib(name)\r\n // console.log('remoteModule', remoteModule)\r\n // window.PUZZLE_SUCCESS = window.PUZZLE_SUCCESS || [];\r\n // window.PUZZLE_SUCCESS.push(name);\r\n // resolve({ default: remoteModule });\r\n // })\r\n },\r\n staticRouters: [],\r\n puzzles: [],\r\n $pinia: undefined,\r\n $router: undefined,\r\n\r\n themeRootRoute: undefined,\r\n installPlugin (plugin) {\r\n this.plugins.push(plugin);\r\n },\r\n // 路由数据处理\r\n fixMenuPath (menus, parentMenu, puzzleCode) {\r\n menus.forEach(menu => {\r\n // const puzzlePath = menu.puzzleCode.replace('/', '_')\r\n\r\n if (!menu.path.startsWith('http') && !menu.path.startsWith('/')) {\r\n menu.path = parentMenu?.path + '/' + menu.path\r\n }\r\n if (menu.children) {\r\n this.fixMenuPath(menu.children, menu, menu.puzzleCode)\r\n }\r\n })\r\n },\r\n async queryMenus () {\r\n const menusResponse = await api.system.menu.myMenus.get()\r\n const responseData = menusResponse.data;\r\n const menus = responseData.menu || responseData;\r\n\r\n tool.data.set('MENU', menus)\r\n if (responseData.permissions) {\r\n tool.data.set('PERMISSIONS', responseData.permissions)\r\n }\r\n\r\n tool.data.set('DASHBOARDGRID', responseData?.dashboardGrid)\r\n\r\n console.log('queryMenus', menus);\r\n this.fixMenuPath(menus);\r\n console.log('fixedMenus', menus)\r\n\r\n const puzzleInfos = {};\r\n menus.forEach(item => {\r\n if (!item.appCode) {\r\n return;\r\n }\r\n if (!puzzleInfos[item.appCode]) {\r\n puzzleInfos[item.appCode] = {\r\n puzzleCode: item.appCode,\r\n menus: []\r\n };\r\n }\r\n puzzleInfos[item.appCode].menus.push(item);\r\n })\r\n await this.assemblePuzzles(puzzleInfos, this.themeRootRoute);\r\n\r\n // 替换 @arkxos/arkos-example\r\n const exampleAppMenu = menus.find(item => item.appCode === '@arkxos/arkos-example')\r\n const exampleAppMenuIndex = menus.indexOf(exampleAppMenu);\r\n menus.splice(exampleAppMenuIndex, 1);\r\n\r\n for (const puzzleCode in puzzleInfos) {\r\n const puzzle = puzzleInfos[puzzleCode];\r\n if (puzzle.staticMenus && puzzle.staticMenus.length > 0) {\r\n this.fixMenuPath(puzzle.staticMenus);\r\n menus.push(...puzzle.staticMenus)\r\n }\r\n }\r\n\r\n systemStore().setMenus(menus);\r\n\r\n return menus;\r\n },\r\n async assemblePuzzles (puzzleInfos, themeRootRoute) {\r\n const pages = themeRootRoute.children;\r\n\r\n // 尝试获取模块 / 异步获取\r\n for (const puzzleCode in puzzleInfos) {\r\n const puzzle = puzzleInfos[puzzleCode];\r\n let puzzleLoader;\r\n if (system.puzzleLoaders[puzzleCode]) {\r\n puzzleLoader = system.puzzleLoaders[puzzleCode]\r\n } else {\r\n puzzleLoader = system.dynamicLoadModule\r\n }\r\n console.log('prepare load puzzle[' + puzzleCode + '], loader is ', puzzleLoader)\r\n const p = await puzzleLoader('puzzles', puzzleCode, '', '')\r\n {\r\n console.log('load puzzle ' + puzzleCode, p)\r\n console.log('import app[' + puzzle.puzzleCode + ']', p)\r\n\r\n this.app.use(p)\r\n\r\n // @ts-ignore\r\n if (p.mockApis && window.ArkMock) {\r\n // @ts-ignore\r\n window.ArkMock.mockApiRequests(p.mockApis)\r\n }\r\n\r\n // 需要生成路由的菜单\r\n // const flatMenus = [];\r\n // // 扁平化授权的菜单,存储到 flatMenus\r\n // handleMenus(puzzle.children, flatMenus);\r\n\r\n // 路由\r\n // const menuRoutes = [];\r\n // if (p.staticRoutes) {\r\n // menuRoutes.push(...p.staticRoutes);\r\n // }\r\n let puzzleMenus = puzzle.menus; // 后台查询出来的模块菜单\r\n if (puzzleCode === '@arkxos/arkos-example') {\r\n puzzleMenus = p.staticMenus;\r\n }\r\n puzzle.staticMenus = p.staticMenus;\r\n\r\n const menuRouter = this.filterAsyncRouter(puzzleMenus, null, p.loadComponent) || [];\r\n // if (p.loadComponent) {\r\n // const routesFromMenu = p.buildRoute(flatMenus, puzzle.puzzleCode);\r\n // menuRoutes.push(...routesFromMenu);\r\n // }\r\n let allRouters = []\r\n console.log('allRouters add staticRoutes', allRouters)\r\n if (menuRouter && menuRouter.length > 0) {\r\n allRouters.push(...menuRouter)\r\n }\r\n console.log('allRouters add menuRouter', allRouters)\r\n allRouters = this.flatAsyncRoutes(menuRouter)\r\n if (p.staticRoutes && p.staticRoutes.length > 0) {\r\n allRouters.push(...p.staticRoutes)\r\n }\r\n console.log('allRouters after flatAsyncRoutes', allRouters)\r\n allRouters.forEach(item => {\r\n system.$router.addRoute('layout', item)\r\n })\r\n\r\n console.log('system.$router', system.$router.getRoutes())\r\n\r\n // if (!themeRootRoute.children) {\r\n // themeRootRoute.children = []\r\n // }\r\n // themeRootRoute.children.push(...menuRoutes)\r\n\r\n pages.push(...allRouters);\r\n\r\n console.log('puzzle root route[' + puzzle.puzzleCode + ']', themeRootRoute)\r\n // system.$router.addRoute(themeRootRoute);\r\n\r\n // Store\r\n for (const name in p.store) {\r\n console.log('store name: ', name)\r\n const userStore = p.store[name];\r\n // execute user sotre will active the store\r\n try {\r\n userStore();\r\n } catch (err) {\r\n console.log(puzzle.id + ' store error,' + err)\r\n }\r\n // this.$store.registerModule(name, p.store[name]);\r\n }\r\n }\r\n }\r\n // 储存路由表\r\n // systemStore\r\n\r\n const store = system.$pinia._s.get('arkOsPermission');\r\n if (store) {\r\n store.setPages(pages);\r\n }\r\n console.log('permission store', store)\r\n console.log('system.$pinia', system.$pinia)\r\n const store2 = system.$pinia._s.get('arkOsPermission');\r\n console.log('permission store 2', store2)\r\n },\r\n // 转换\r\n filterAsyncRouter(routerMap, parent, loadComponent) {\r\n if (!routerMap) {\r\n return null;\r\n }\r\n if (!Array.isArray(routerMap)) {\r\n routerMap = [routerMap]\r\n }\r\n const accessedRouters = []\r\n routerMap.forEach(item => {\r\n item.meta = item.meta ? item.meta : {};\r\n // 处理外部链接特殊路由\r\n if (item.meta.type == 'iframe') {\r\n item.meta.url = item.path;\r\n item.path = `/i/${item.name}`;\r\n item.meta.iframe = 'iframe'\r\n }\r\n // let path = parent ? (parent.path + '/' + item.path) : item.path\r\n // console.log('route path: ', item.path)\r\n // MAP转路由对象\r\n const route = {\r\n path: item.path,\r\n query: item.query,\r\n name: item.name,\r\n meta: item.meta,\r\n redirect: item.redirect,\r\n children: item.children ? this.filterAsyncRouter(item.children, item, loadComponent) : null,\r\n component: item.meta.type == 'iframe' ? null : loadComponent(item)\r\n }\r\n accessedRouters.push(route)\r\n })\r\n return accessedRouters\r\n },\r\n // 路由扁平化\r\n flatAsyncRoutes(routes, breadcrumb = []) {\r\n const res = []\r\n routes.forEach(route => {\r\n const tmp = { ...route }\r\n if (tmp.children) {\r\n const childrenBreadcrumb = [...breadcrumb]\r\n childrenBreadcrumb.push(route)\r\n const tmpRoute = { ...route }\r\n tmpRoute.meta.breadcrumb = childrenBreadcrumb\r\n delete tmpRoute.children\r\n res.push(tmpRoute)\r\n const childrenRoutes = this.flatAsyncRoutes(tmp.children, childrenBreadcrumb)\r\n childrenRoutes.map(item => {\r\n res.push(item)\r\n })\r\n } else {\r\n const tmpBreadcrumb = [...breadcrumb]\r\n tmpBreadcrumb.push(tmp)\r\n tmp.meta.breadcrumb = tmpBreadcrumb\r\n res.push(tmp)\r\n }\r\n })\r\n return res\r\n },\r\n // installPlugin (plugin) {\r\n // // this.plugins.push(plugin);\r\n // this.app.use(plugin)\r\n // },\r\n async assembleTheme (themeInfo) {\r\n console.log('load os theme ' + themeInfo.name)\r\n const theme = await system.dynamicLoadModule('os-themes', themeInfo.name, themeInfo.host, themeInfo.version);\r\n\r\n console.log('load theme after', theme)\r\n // 路由注册\r\n // console.log('this.$router.addRoute', this.$router.addRoute)\r\n // this.$router.addRoute(...frame.routerStatic);\r\n theme.routerStatic.forEach(item => {\r\n this.staticRouters.push(item)\r\n console.log('add route', item)\r\n })\r\n // Store 注册\r\n for (const name in theme.store) {\r\n const userStore = theme.store[name];\r\n console.log('store name: ', name)\r\n // execute user sotre will active the store\r\n try {\r\n userStore();\r\n } catch (err) {\r\n console.log(err)\r\n }\r\n\r\n // this.$store.registerModule(name, frame.store[name]);\r\n }\r\n // 嵌套路由 / 默认两级路由\r\n const themeRootRouteList = theme.routerStatic.filter(item => item.path == '/');\r\n let themeRootRoute;\r\n if (themeRootRouteList && themeRootRouteList.length > 0) {\r\n themeRootRoute = themeRootRouteList[0];\r\n }\r\n\r\n this.themeRootRoute = themeRootRoute;\r\n\r\n this.app.use(theme)\r\n\r\n console.log('load theme finish', theme)\r\n\r\n // system.$router.addRoute(themeRootRoute)\r\n return themeRootRoute;\r\n },\r\n}\r\n\r\nexport default system\r\n","// import Vue from \"vue\";\r\n// import Vuex from \"vuex\";\r\n// // 模块\r\n// import core from \"./modules/core\";\r\n//\r\n// Vue.use(Vuex);\r\n// const store = new Vuex.Store({\r\n// modules: {\r\n// core\r\n// }\r\n// });\r\n// export default store;\r\n// https://pinia.vuejs.org/\r\nimport { createPinia } from 'pinia';\r\nimport piniaPluginPersistedstate from 'pinia-plugin-persistedstate';\r\n\r\n// 创建\r\nconst pinia = createPinia();\r\npinia.use(piniaPluginPersistedstate);\r\n\r\n// 导出\r\nexport default pinia;\r\n","import { tool } from '@arkxos/arkos-util';\r\nimport systemStore from '../store/modules/systemStore';\r\n\r\nexport const hasPriv = (value): any => {\r\n const stores = systemStore();\r\n const permissions = stores.userInfo.permissions;\r\n\r\n if (value && value instanceof Array && value.length > 0) {\r\n const hasPermission = permissions.some((permi: string) => {\r\n // console.log('permi === \\'*:*:*\\'', permi === '*:*:*', permi)\r\n return permi === '*:*:*' || value.includes(permi);\r\n });\r\n return hasPermission;\r\n }\r\n if (value) {\r\n const hasPermission = permissions.some((permi: string) => {\r\n // console.log('permi === \\'*:*:*\\'', permi === '*:*:*', permi)\r\n return permi === '*:*:*' || value === permi;\r\n });\r\n return hasPermission;\r\n }\r\n return false;\r\n};\r\n","import api from '../api'\r\nimport { tool } from '@arkxos/arkos-util'\r\nimport systemStore from '../store/modules/systemStore';\r\nimport { setToken } from '../access/tokenStorage'\r\nimport system from '../core/system'\r\n// import cache from \"@arkxos/arkos-util/src/utils/cache\";\r\n\r\nconst access = {\r\n getToken (data) {\r\n return new Promise((resolve, reject) => {\r\n api.auth.token.post(data).then((response) => {\r\n const token = response.access_token;\r\n setToken(token, {\r\n expires: 24 * 60 * 60\r\n })\r\n\r\n const _systemStore = systemStore();\r\n _systemStore.setToken(token)\r\n\r\n resolve(token);\r\n }).catch(reject);\r\n })\r\n },\r\n async refreshUserInfo() {\r\n return new Promise((resolve, reject) => {\r\n api.auth.account.post().then((response) => {\r\n console.log('accountResponseData', response)\r\n const userInfo = response.data;\r\n tool.data.set('PERMISSIONS', userInfo.permissions)\r\n tool.data.set('roles', userInfo.roles)\r\n\r\n userInfo.user = userInfo.sysUser;\r\n tool.data.set('USER_INFO', userInfo)\r\n\r\n const _systemStore = systemStore();\r\n _systemStore.setUserInfo(userInfo);\r\n\r\n // 获取菜单\r\n // if(this.form.user == 'admin'){\r\n // \tmenu = await this.$API.system.menu.myMenus.get()\r\n // } else {\r\n // \tmenu = await this.$API.demo.menu.get()\r\n // }\r\n\r\n console.log('查询菜单')\r\n system.queryMenus().then((response) => {\r\n console.log('query menu', response)\r\n const menu = response\r\n if (menu) {\r\n if (menu.length == 0) {\r\n reject('当前用户无任何菜单权限,请联系系统管理员');\r\n return;\r\n\r\n // let menuData = []\r\n //\r\n // menu.data.forEach(item=>{\r\n // \tmenuData.push(item)\r\n // })\r\n //\r\n // allUserMenuData.forEach(item=>{\r\n // menuData.push(item)\r\n // })\r\n //\r\n // const username = userInfo.data.user.userName.trim()\r\n // if('admin' == username) {\r\n // staticMenuData.data.menu.forEach(item=>{\r\n // menuData.push(item)\r\n // })\r\n // }\r\n //\r\n //\r\n // this.fixMenuPath(menuData)\r\n // this.$TOOL.data.set(\"MENU\", menuData)\r\n // console.log('==========================')\r\n // this.$TOOL.data.set(\"PERMISSIONS\", userInfo.data.permissions)\r\n // console.log(this.$TOOL.data.get(\"PERMISSIONS\"))\r\n // this.$TOOL.data.set(\"DASHBOARDGRID\", []) // menu.data.dashboardGrid)\r\n }\r\n }\r\n\r\n resolve(userInfo);\r\n }).catch(reject);\r\n }).catch(reject);\r\n })\r\n }\r\n}\r\n\r\nexport default access;\r\n","function e(e,t){const n=Object.create(null),o=e.split(\",\");for(let e=0;e<o.length;e++)n[o[e]]=!0;return t?e=>!!n[e.toLowerCase()]:e=>!!n[e]}function t(e){if(d(e)){const n={};for(let o=0;o<e.length;o++){const s=e[o],i=y(s)?r(s):t(s);if(i)for(const e in i)n[e]=i[e]}return n}return y(e)||m(e)?e:void 0}const n=/;(?![^(]*\\))/g,o=/:(.+)/;function r(e){const t={};return e.split(n).forEach((e=>{if(e){const n=e.split(o);n.length>1&&(t[n[0].trim()]=n[1].trim())}})),t}function s(e){let t=\"\";if(y(e))t=e;else if(d(e))for(let n=0;n<e.length;n++){const o=s(e[n]);o&&(t+=o+\" \")}else if(m(e))for(const n in e)e[n]&&(t+=n+\" \");return t.trim()}const i=\"production\"!==process.env.NODE_ENV?Object.freeze({}):{};\"production\"===process.env.NODE_ENV||Object.freeze([]);const c=()=>{},a=/^on[^a-z]/,l=e=>a.test(e),u=Object.assign,p=Object.prototype.hasOwnProperty,f=(e,t)=>p.call(e,t),d=Array.isArray,h=e=>\"[object Map]\"===b(e),g=e=>\"function\"==typeof e,y=e=>\"string\"==typeof e,v=e=>\"symbol\"==typeof e,m=e=>null!==e&&\"object\"==typeof e,_=Object.prototype.toString,b=e=>_.call(e),N=e=>b(e).slice(8,-1),E=e=>y(e)&&\"NaN\"!==e&&\"-\"!==e[0]&&\"\"+parseInt(e,10)===e,w=(e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))})((e=>e.charAt(0).toUpperCase()+e.slice(1))),O=(e,t)=>!Object.is(e,t);let $;function V(e,...t){console.warn(`[Vue warn] ${e}`,...t)}const R=e=>{const t=new Set(e);return t.w=0,t.n=0,t},P=e=>(e.w&C)>0,k=e=>(e.n&C)>0,D=new WeakMap;let S=0,C=1;let x;const A=Symbol(\"production\"!==process.env.NODE_ENV?\"iterate\":\"\"),j=Symbol(\"production\"!==process.env.NODE_ENV?\"Map key iterate\":\"\");class U{constructor(e,t=null,n){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,function(e,t){t&&t.active&&t.effects.push(e)}(this,n)}run(){if(!this.active)return this.fn();let e=x,t=M;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=x,x=this,M=!0,C=1<<++S,S<=30?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=C})(this):T(this),this.fn()}finally{S<=30&&(e=>{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o<t.length;o++){const r=t[o];P(r)&&!k(r)?r.delete(e):t[n++]=r,r.w&=~C,r.n&=~C}t.length=n}})(this),C=1<<--S,x=this.parent,M=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){x===this?this.deferStop=!0:this.active&&(T(this),this.onStop&&this.onStop(),this.active=!1)}}function T(e){const{deps:t}=e;if(t.length){for(let n=0;n<t.length;n++)t[n].delete(e);t.length=0}}let M=!0;const I=[];function F(){I.push(M),M=!1}function z(){const e=I.pop();M=void 0===e||e}function L(e,t,n){if(M&&x){let o=D.get(e);o||D.set(e,o=new Map);let r=o.get(n);r||o.set(n,r=R());W(r,\"production\"!==process.env.NODE_ENV?{effect:x,target:e,type:t,key:n}:void 0)}}function W(e,t){let n=!1;S<=30?k(e)||(e.n|=C,n=!P(e)):n=!e.has(x),n&&(e.add(x),x.deps.push(e),\"production\"!==process.env.NODE_ENV&&x.onTrack&&x.onTrack(Object.assign({effect:x},t)))}function H(e,t,n,o,r,s){const i=D.get(e);if(!i)return;let c=[];if(\"clear\"===t)c=[...i.values()];else if(\"length\"===n&&d(e))i.forEach(((e,t)=>{(\"length\"===t||t>=o)&&c.push(e)}));else switch(void 0!==n&&c.push(i.get(n)),t){case\"add\":d(e)?E(n)&&c.push(i.get(\"length\")):(c.push(i.get(A)),h(e)&&c.push(i.get(j)));break;case\"delete\":d(e)||(c.push(i.get(A)),h(e)&&c.push(i.get(j)));break;case\"set\":h(e)&&c.push(i.get(A))}const a=\"production\"!==process.env.NODE_ENV?{target:e,type:t,key:n,newValue:o,oldValue:r,oldTarget:s}:void 0;if(1===c.length)c[0]&&(\"production\"!==process.env.NODE_ENV?q(c[0],a):q(c[0]));else{const e=[];for(const t of c)t&&e.push(...t);\"production\"!==process.env.NODE_ENV?q(R(e),a):q(R(e))}}function q(e,t){const n=d(e)?e:[...e];for(const e of n)e.computed&&K(e,t);for(const e of n)e.computed||K(e,t)}function K(e,t){(e!==x||e.allowRecurse)&&(\"production\"!==process.env.NODE_ENV&&e.onTrigger&&e.onTrigger(u({effect:e},t)),e.scheduler?e.scheduler():e.run())}const B=e(\"__proto__,__v_isRef,__isVue\"),J=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>\"arguments\"!==e&&\"caller\"!==e)).map((e=>Symbol[e])).filter(v)),G=ee(),Q=ee(!0),X=ee(!0,!0),Y=Z();function Z(){const e={};return[\"includes\",\"indexOf\",\"lastIndexOf\"].forEach((t=>{e[t]=function(...e){const n=Ie(this);for(let e=0,t=this.length;e<t;e++)L(n,\"get\",e+\"\");const o=n[t](...e);return-1===o||!1===o?n[t](...e.map(Ie)):o}})),[\"push\",\"pop\",\"shift\",\"unshift\",\"splice\"].forEach((t=>{e[t]=function(...e){F();const n=Ie(this)[t].apply(this,e);return z(),n}})),e}function ee(e=!1,t=!1){return function(n,o,r){if(\"__v_isReactive\"===o)return!e;if(\"__v_isReadonly\"===o)return e;if(\"__v_isShallow\"===o)return t;if(\"__v_raw\"===o&&r===(e?t?De:ke:t?Pe:Re).get(n))return n;const s=d(n);if(!e&&s&&f(Y,o))return Reflect.get(Y,o,r);const i=Reflect.get(n,o,r);return(v(o)?J.has(o):B(o))?i:(e||L(n,\"get\",o),t?i:We(i)?s&&E(o)?i:i.value:m(i)?e?Ce(i):Se(i):i)}}function te(e=!1){return function(t,n,o,r){let s=t[n];if(Ue(s)&&We(s)&&!We(o))return!1;if(!e&&!Ue(o)&&(Te(o)||(o=Ie(o),s=Ie(s)),!d(t)&&We(s)&&!We(o)))return s.value=o,!0;const i=d(t)&&E(n)?Number(n)<t.length:f(t,n),c=Reflect.set(t,n,o,r);return t===Ie(r)&&(i?O(o,s)&&H(t,\"set\",n,o,s):H(t,\"add\",n,o)),c}}const ne={get:G,set:te(),deleteProperty:function(e,t){const n=f(e,t),o=e[t],r=Reflect.deleteProperty(e,t);return r&&n&&H(e,\"delete\",t,void 0,o),r},has:function(e,t){const n=Reflect.has(e,t);return v(t)&&J.has(t)||L(e,\"has\",t),n},ownKeys:function(e){return L(e,\"iterate\",d(e)?\"length\":A),Reflect.ownKeys(e)}},oe={get:Q,set:(e,t)=>(\"production\"!==process.env.NODE_ENV&&V(`Set operation on key \"${String(t)}\" failed: target is readonly.`,e),!0),deleteProperty:(e,t)=>(\"production\"!==process.env.NODE_ENV&&V(`Delete operation on key \"${String(t)}\" failed: target is readonly.`,e),!0)},re=u({},oe,{get:X}),se=e=>e,ie=e=>Reflect.getPrototypeOf(e);function ce(e,t,n=!1,o=!1){const r=Ie(e=e.__v_raw),s=Ie(t);n||(t!==s&&L(r,\"get\",t),L(r,\"get\",s));const{has:i}=ie(r),c=o?se:n?Le:ze;return i.call(r,t)?c(e.get(t)):i.call(r,s)?c(e.get(s)):void(e!==r&&e.get(t))}function ae(e,t=!1){const n=this.__v_raw,o=Ie(n),r=Ie(e);return t||(e!==r&&L(o,\"has\",e),L(o,\"has\",r)),e===r?n.has(e):n.has(e)||n.has(r)}function le(e,t=!1){return e=e.__v_raw,!t&&L(Ie(e),\"iterate\",A),Reflect.get(e,\"size\",e)}function ue(e){e=Ie(e);const t=Ie(this);return ie(t).has.call(t,e)||(t.add(e),H(t,\"add\",e,e)),this}function pe(e,t){t=Ie(t);const n=Ie(this),{has:o,get:r}=ie(n);let s=o.call(n,e);s?\"production\"!==process.env.NODE_ENV&&Ve(n,o,e):(e=Ie(e),s=o.call(n,e));const i=r.call(n,e);return n.set(e,t),s?O(t,i)&&H(n,\"set\",e,t,i):H(n,\"add\",e,t),this}function fe(e){const t=Ie(this),{has:n,get:o}=ie(t);let r=n.call(t,e);r?\"production\"!==process.env.NODE_ENV&&Ve(t,n,e):(e=Ie(e),r=n.call(t,e));const s=o?o.call(t,e):void 0,i=t.delete(e);return r&&H(t,\"delete\",e,void 0,s),i}function de(){const e=Ie(this),t=0!==e.size,n=\"production\"!==process.env.NODE_ENV?h(e)?new Map(e):new Set(e):void 0,o=e.clear();return t&&H(e,\"clear\",void 0,void 0,n),o}function he(e,t){return function(n,o){const r=this,s=r.__v_raw,i=Ie(s),c=t?se:e?Le:ze;return!e&&L(i,\"iterate\",A),s.forEach(((e,t)=>n.call(o,c(e),c(t),r)))}}function ge(e,t,n){return function(...o){const r=this.__v_raw,s=Ie(r),i=h(s),c=\"entries\"===e||e===Symbol.iterator&&i,a=\"keys\"===e&&i,l=r[e](...o),u=n?se:t?Le:ze;return!t&&L(s,\"iterate\",a?j:A),{next(){const{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:c?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function ye(e){return function(...t){if(\"production\"!==process.env.NODE_ENV){const n=t[0]?`on key \"${t[0]}\" `:\"\";console.warn(`${w(e)} operation ${n}failed: target is readonly.`,Ie(this))}return\"delete\"!==e&&this}}function ve(){const e={get(e){return ce(this,e)},get size(){return le(this)},has:ae,add:ue,set:pe,delete:fe,clear:de,forEach:he(!1,!1)},t={get(e){return ce(this,e,!1,!0)},get size(){return le(this)},has:ae,add:ue,set:pe,delete:fe,clear:de,forEach:he(!1,!0)},n={get(e){return ce(this,e,!0)},get size(){return le(this,!0)},has(e){return ae.call(this,e,!0)},add:ye(\"add\"),set:ye(\"set\"),delete:ye(\"delete\"),clear:ye(\"clear\"),forEach:he(!0,!1)},o={get(e){return ce(this,e,!0,!0)},get size(){return le(this,!0)},has(e){return ae.call(this,e,!0)},add:ye(\"add\"),set:ye(\"set\"),delete:ye(\"delete\"),clear:ye(\"clear\"),forEach:he(!0,!0)};return[\"keys\",\"values\",\"entries\",Symbol.iterator].forEach((r=>{e[r]=ge(r,!1,!1),n[r]=ge(r,!0,!1),t[r]=ge(r,!1,!0),o[r]=ge(r,!0,!0)})),[e,n,t,o]}const[me,_e,be,Ne]=ve();function Ee(e,t){const n=t?e?Ne:be:e?_e:me;return(t,o,r)=>\"__v_isReactive\"===o?!e:\"__v_isReadonly\"===o?e:\"__v_raw\"===o?t:Reflect.get(f(n,o)&&o in t?n:t,o,r)}const we={get:Ee(!1,!1)},Oe={get:Ee(!0,!1)},$e={get:Ee(!0,!0)};function Ve(e,t,n){const o=Ie(n);if(o!==n&&t.call(e,o)){const t=N(e);console.warn(`Reactive ${t} contains both the raw and reactive versions of the same object${\"Map\"===t?\" as keys\":\"\"}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const Re=new WeakMap,Pe=new WeakMap,ke=new WeakMap,De=new WeakMap;function Se(e){return Ue(e)?e:Ae(e,!1,ne,we,Re)}function Ce(e){return Ae(e,!0,oe,Oe,ke)}function xe(e){return Ae(e,!0,re,$e,De)}function Ae(e,t,n,o,r){if(!m(e))return\"production\"!==process.env.NODE_ENV&&console.warn(`value cannot be made reactive: ${String(e)}`),e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const s=r.get(e);if(s)return s;const i=(c=e).__v_skip||!Object.isExtensible(c)?0:function(e){switch(e){case\"Object\":case\"Array\":return 1;case\"Map\":case\"Set\":case\"WeakMap\":case\"WeakSet\":return 2;default:return 0}}(N(c));var c;if(0===i)return e;const a=new Proxy(e,2===i?o:n);return r.set(e,a),a}function je(e){return Ue(e)?je(e.__v_raw):!(!e||!e.__v_isReactive)}function Ue(e){return!(!e||!e.__v_isReadonly)}function Te(e){return!(!e||!e.__v_isShallow)}function Me(e){return je(e)||Ue(e)}function Ie(e){const t=e&&e.__v_raw;return t?Ie(t):e}function Fe(e){return((e,t,n)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})})(e,\"__v_skip\",!0),e}const ze=e=>m(e)?Se(e):e,Le=e=>m(e)?Ce(e):e;function We(e){return!(!e||!0!==e.__v_isRef)}const He={get:(e,t,n)=>{return We(o=Reflect.get(e,t,n))?o.value:o;var o},set:(e,t,n,o)=>{const r=e[t];return We(r)&&!We(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};class qe{constructor(e,t,n,o){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this._dirty=!0,this.effect=new U(e,(()=>{var e,t;this._dirty||(this._dirty=!0,(e=Ie(e=this)).dep&&(\"production\"!==process.env.NODE_ENV?q(e.dep,{target:e,type:\"set\",key:\"value\",newValue:t}):q(e.dep)))})),this.effect.computed=this,this.effect.active=this._cacheable=!o,this.__v_isReadonly=n}get value(){const e=Ie(this);var t;return t=e,M&&x&&(t=Ie(t),\"production\"!==process.env.NODE_ENV?W(t.dep||(t.dep=R()),{target:t,type:\"get\",key:\"value\"}):W(t.dep||(t.dep=R()))),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}const Ke=[];function Be(e,...t){F();const n=Ke.length?Ke[Ke.length-1].component:null,o=n&&n.appContext.config.warnHandler,r=function(){let e=Ke[Ke.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}();if(o)Xe(o,n,11,[e+t.join(\"\"),n&&n.proxy,r.map((({vnode:e})=>`at <${sn(n,e.type)}>`)).join(\"\\n\"),r]);else{const n=[`[Vue warn]: ${e}`,...t];r.length&&n.push(\"\\n\",...function(e){const t=[];return e.forEach(((e,n)=>{t.push(...0===n?[]:[\"\\n\"],...function({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:\"\",o=!!e.component&&null==e.component.parent,r=` at <${sn(e.component,e.type,o)}`,s=\">\"+n;return e.props?[r,...Je(e.props),s]:[r+s]}(e))})),t}(r)),console.warn(...n)}z()}function Je(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach((n=>{t.push(...Ge(n,e[n]))})),n.length>3&&t.push(\" ...\"),t}function Ge(e,t,n){return y(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):\"number\"==typeof t||\"boolean\"==typeof t||null==t?n?t:[`${e}=${t}`]:We(t)?(t=Ge(e,Ie(t.value),!0),n?t:[`${e}=Ref<`,t,\">\"]):g(t)?[`${e}=fn${t.name?`<${t.name}>`:\"\"}`]:(t=Ie(t),n?t:[`${e}=`,t])}const Qe={sp:\"serverPrefetch hook\",bc:\"beforeCreate hook\",c:\"created hook\",bm:\"beforeMount hook\",m:\"mounted hook\",bu:\"beforeUpdate hook\",u:\"updated\",bum:\"beforeUnmount hook\",um:\"unmounted hook\",a:\"activated hook\",da:\"deactivated hook\",ec:\"errorCaptured hook\",rtc:\"renderTracked hook\",rtg:\"renderTriggered hook\",0:\"setup function\",1:\"render function\",2:\"watcher getter\",3:\"watcher callback\",4:\"watcher cleanup function\",5:\"native event handler\",6:\"component event handler\",7:\"vnode hook\",8:\"directive hook\",9:\"transition hook\",10:\"app errorHandler\",11:\"app warnHandler\",12:\"ref function\",13:\"async component loader\",14:\"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core\"};function Xe(e,t,n,o){let r;try{r=o?e(...o):e()}catch(e){Ze(e,t,n)}return r}function Ye(e,t,n,o){if(g(e)){const s=Xe(e,t,n,o);return s&&(m(r=s)&&g(r.then)&&g(r.catch))&&s.catch((e=>{Ze(e,t,n)})),s}var r;const s=[];for(let r=0;r<e.length;r++)s.push(Ye(e[r],t,n,o));return s}function Ze(e,t,n,o=!0){const r=t?t.vnode:null;if(t){let o=t.parent;const r=t.proxy,s=\"production\"!==process.env.NODE_ENV?Qe[n]:n;for(;o;){const t=o.ec;if(t)for(let n=0;n<t.length;n++)if(!1===t[n](e,r,s))return;o=o.parent}const i=t.appContext.config.errorHandler;if(i)return void Xe(i,null,10,[e,r,s])}!function(e,t,n,o=!0){if(\"production\"!==process.env.NODE_ENV){const s=Qe[t];if(n&&(r=n,Ke.push(r)),Be(\"Unhandled error\"+(s?` during execution of ${s}`:\"\")),n&&Ke.pop(),o)throw e;console.error(e)}else console.error(e);var r}(e,n,r,o)}let et=!1,tt=!1;const nt=[];let ot=0;const rt=[];let st=null,it=0;const ct=[];let at=null,lt=0;const ut=Promise.resolve();let pt=null,ft=null;function dt(e){const t=pt||ut;return e?t.then(this?e.bind(this):e):t}function ht(e){nt.length&&nt.includes(e,et&&e.allowRecurse?ot+1:ot)||e===ft||(null==e.id?nt.push(e):nt.splice(function(e){let t=ot+1,n=nt.length;for(;t<n;){const o=t+n>>>1;_t(nt[o])<e?t=o+1:n=o}return t}(e.id),0,e),gt())}function gt(){et||tt||(tt=!0,pt=ut.then(bt))}function yt(e,t,n,o){d(e)?n.push(...e):t&&t.includes(e,e.allowRecurse?o+1:o)||n.push(e),gt()}function vt(e){yt(e,at,ct,lt)}function mt(e,t=null){if(rt.length){for(ft=t,st=[...new Set(rt)],rt.length=0,\"production\"!==process.env.NODE_ENV&&(e=e||new Map),it=0;it<st.length;it++)\"production\"!==process.env.NODE_ENV&&Nt(e,st[it])||st[it]();st=null,it=0,ft=null,mt(e,t)}}const _t=e=>null==e.id?1/0:e.id;function bt(e){tt=!1,et=!0,\"production\"!==process.env.NODE_ENV&&(e=e||new Map),mt(e),nt.sort(((e,t)=>_t(e)-_t(t)));const t=\"production\"!==process.env.NODE_ENV?t=>Nt(e,t):c;try{for(ot=0;ot<nt.length;ot++){const e=nt[ot];if(e&&!1!==e.active){if(\"production\"!==process.env.NODE_ENV&&t(e))continue;Xe(e,null,14)}}}finally{ot=0,nt.length=0,function(e){if(mt(),ct.length){const t=[...new Set(ct)];if(ct.length=0,at)return void at.push(...t);for(at=t,\"production\"!==process.env.NODE_ENV&&(e=e||new Map),at.sort(((e,t)=>_t(e)-_t(t))),lt=0;lt<at.length;lt++)\"production\"!==process.env.NODE_ENV&&Nt(e,at[lt])||at[lt]();at=null,lt=0}}(e),et=!1,pt=null,(nt.length||rt.length||ct.length)&&bt(e)}}function Nt(e,t){if(e.has(t)){const n=e.get(t);if(n>100){const e=t.ownerInstance,n=e&&rn(e.type);return Be(`Maximum recursive updates exceeded${n?` in component <${n}>`:\"\"}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`),!0}e.set(t,n+1)}else e.set(t,1)}const Et=new Set;\"production\"!==process.env.NODE_ENV&&(($||($=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:{})).__VUE_HMR_RUNTIME__={createRecord:Vt((function(e,t){if(wt.has(e))return!1;return wt.set(e,{initialDef:Ot(t),instances:new Set}),!0})),rerender:Vt((function(e,t){const n=wt.get(e);if(!n)return;n.initialDef.render=t,[...n.instances].forEach((e=>{t&&(e.render=t,Ot(e.type).render=t),e.renderCache=[],e.update()}))})),reload:Vt((function(e,t){const n=wt.get(e);if(!n)return;t=Ot(t),$t(n.initialDef,t);const o=[...n.instances];for(const e of o){const o=Ot(e.type);Et.has(o)||(o!==n.initialDef&&$t(o,t),Et.add(o)),e.appContext.optionsCache.delete(e.type),e.ceReload?(Et.add(o),e.ceReload(t.styles),Et.delete(o)):e.parent?(ht(e.parent.update),e.parent.type.__asyncLoader&&e.parent.ceReload&&e.parent.ceReload(t.styles)):e.appContext.reload?e.appContext.reload():\"undefined\"!=typeof window?window.location.reload():console.warn(\"[HMR] Root or manually mounted instance modified. Full reload required.\")}vt((()=>{for(const e of o)Et.delete(Ot(e.type))}))}))});const wt=new Map;function Ot(e){return cn(e)?e.__vccOpts:e}function $t(e,t){u(e,t);for(const n in e)\"__file\"===n||n in t||delete e[n]}function Vt(e){return(t,n)=>{try{return e(t,n)}catch(e){console.error(e),console.warn(\"[HMR] Something went wrong during Vue component hot-reload. Full reload required.\")}}}const Rt={};function Pt(e,t,{immediate:n,deep:o,flush:r,onTrack:s,onTrigger:a}=i){\"production\"===process.env.NODE_ENV||t||(void 0!==n&&Be('watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.'),void 0!==o&&Be('watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.'));const l=e=>{Be(\"Invalid watch source: \",e,\"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.\")},u=en;let p,f,h=!1,y=!1;if(We(e)?(p=()=>e.value,h=Te(e)):je(e)?(p=()=>e,o=!0):d(e)?(y=!0,h=e.some((e=>je(e)||Te(e))),p=()=>e.map((e=>We(e)?e.value:je(e)?Dt(e):g(e)?Xe(e,u,2):void(\"production\"!==process.env.NODE_ENV&&l(e))))):g(e)?p=t?()=>Xe(e,u,2):()=>{if(!u||!u.isUnmounted)return f&&f(),Ye(e,u,3,[v])}:(p=c,\"production\"!==process.env.NODE_ENV&&l(e)),t&&o){const e=p;p=()=>Dt(e())}let v=e=>{f=N.onStop=()=>{Xe(e,u,4)}},m=y?[]:Rt;const _=()=>{if(N.active)if(t){const e=N.run();(o||h||(y?e.some(((e,t)=>O(e,m[t]))):O(e,m)))&&(f&&f(),Ye(t,u,3,[e,m===Rt?void 0:m,v]),m=e)}else N.run()};let b;_.allowRecurse=!!t,b=\"sync\"===r?_:\"post\"===r?()=>Lt(_,u&&u.suspense):()=>function(e){yt(e,st,rt,it)}(_);const N=new U(p,b);return\"production\"!==process.env.NODE_ENV&&(N.onTrack=s,N.onTrigger=a),t?n?_():m=N.run():\"post\"===r?Lt(N.run.bind(N),u&&u.suspense):N.run(),()=>{N.stop(),u&&u.scope&&((e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)})(u.scope.effects,N)}}function kt(e,t,n){const o=this.proxy,r=y(e)?e.includes(\".\")?function(e,t){const n=t.split(\".\");return()=>{let t=e;for(let e=0;e<n.length&&t;e++)t=t[n[e]];return t}}(o,e):()=>o[e]:e.bind(o,o);let s;g(t)?s=t:(s=t.handler,n=t);const i=en;tn(this);const c=Pt(r,s.bind(o),n);return i?tn(i):nn(),c}function Dt(e,t){if(!m(e)||e.__v_skip)return e;if((t=t||new Set).has(e))return e;if(t.add(e),We(e))Dt(e.value,t);else if(d(e))for(let n=0;n<e.length;n++)Dt(e[n],t);else if(\"[object Set]\"===b(e)||h(e))e.forEach((e=>{Dt(e,t)}));else if((e=>\"[object Object]\"===b(e))(e))for(const n in e)Dt(e[n],t);return e}const St=Symbol(),Ct=e=>e?4&e.vnode.shapeFlag?function(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(je(t=Fe(e.exposed))?t:new Proxy(t,He),{get:(t,n)=>n in t?t[n]:n in xt?xt[n](e):void 0}));var t}(e)||e.proxy:Ct(e.parent):null,xt=u(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>\"production\"!==process.env.NODE_ENV?xe(e.props):e.props,$attrs:e=>\"production\"!==process.env.NODE_ENV?xe(e.attrs):e.attrs,$slots:e=>\"production\"!==process.env.NODE_ENV?xe(e.slots):e.slots,$refs:e=>\"production\"!==process.env.NODE_ENV?xe(e.refs):e.refs,$parent:e=>Ct(e.parent),$root:e=>Ct(e.root),$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?function(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:s,config:{optionMergeStrategies:i}}=e.appContext,c=s.get(t);let a;c?a=c:r.length||n||o?(a={},r.length&&r.forEach((e=>Ut(a,e,i,!0))),Ut(a,t,i)):a=t;return s.set(t,a),a}(e):e.type,$forceUpdate:e=>e.f||(e.f=()=>ht(e.update)),$nextTick:e=>e.n||(e.n=dt.bind(e.proxy)),$watch:e=>__VUE_OPTIONS_API__?kt.bind(e):c}),At={get({_:e},t){const{ctx:n,setupState:o,data:r,props:s,accessCache:c,type:a,appContext:l}=e;if(\"production\"!==process.env.NODE_ENV&&\"__isVue\"===t)return!0;if(\"production\"!==process.env.NODE_ENV&&o!==i&&o.__isScriptSetup&&f(o,t))return o[t];let u;if(\"$\"!==t[0]){const a=c[t];if(void 0!==a)switch(a){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return s[t]}else{if(o!==i&&f(o,t))return c[t]=1,o[t];if(r!==i&&f(r,t))return c[t]=2,r[t];if((u=e.propsOptions[0])&&f(u,t))return c[t]=3,s[t];if(n!==i&&f(n,t))return c[t]=4,n[t];__VUE_OPTIONS_API__&&!jt||(c[t]=0)}}const p=xt[t];let d,h;return p?(\"$attrs\"===t&&(L(e,\"get\",t),process.env.NODE_ENV),p(e)):(d=a.__cssModules)&&(d=d[t])?d:n!==i&&f(n,t)?(c[t]=4,n[t]):(h=l.config.globalProperties,f(h,t)?h[t]:void process.env.NODE_ENV)},set({_:e},t,n){const{data:o,setupState:r,ctx:s}=e;return r!==i&&f(r,t)?(r[t]=n,!0):o!==i&&f(o,t)?(o[t]=n,!0):f(e.props,t)?(\"production\"!==process.env.NODE_ENV&&Be(`Attempting to mutate prop \"${t}\". Props are readonly.`,e),!1):\"$\"===t[0]&&t.slice(1)in e?(\"production\"!==process.env.NODE_ENV&&Be(`Attempting to mutate public property \"${t}\". Properties starting with $ are reserved and readonly.`,e),!1):(\"production\"!==process.env.NODE_ENV&&t in e.appContext.config.globalProperties?Object.defineProperty(s,t,{enumerable:!0,configurable:!0,value:n}):s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:s}},c){let a;return!!n[c]||e!==i&&f(e,c)||t!==i&&f(t,c)||(a=s[0])&&f(a,c)||f(o,c)||f(xt,c)||f(r.config.globalProperties,c)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:f(n,\"value\")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};\"production\"!==process.env.NODE_ENV&&(At.ownKeys=e=>(Be(\"Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.\"),Reflect.ownKeys(e)));let jt=!0;function Ut(e,t,n,o=!1){const{mixins:r,extends:s}=t;s&&Ut(e,s,n,!0),r&&r.forEach((t=>Ut(e,t,n,!0)));for(const r in t)if(o&&\"expose\"===r)\"production\"!==process.env.NODE_ENV&&Be('\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.');else{const o=Tt[r]||n&&n[r];e[r]=o?o(e[r],t[r]):t[r]}return e}const Tt={data:Mt,props:zt,emits:zt,methods:zt,computed:zt,beforeCreate:Ft,created:Ft,beforeMount:Ft,mounted:Ft,beforeUpdate:Ft,updated:Ft,beforeDestroy:Ft,beforeUnmount:Ft,destroyed:Ft,unmounted:Ft,activated:Ft,deactivated:Ft,errorCaptured:Ft,serverPrefetch:Ft,components:zt,directives:zt,watch:function(e,t){if(!e)return t;if(!t)return e;const n=u(Object.create(null),e);for(const o in t)n[o]=Ft(e[o],t[o]);return n},provide:Mt,inject:function(e,t){return zt(It(e),It(t))}};function Mt(e,t){return t?e?function(){return u(g(e)?e.call(this,this):e,g(t)?t.call(this,this):t)}:t:e}function It(e){if(d(e)){const t={};for(let n=0;n<e.length;n++)t[e[n]]=e[n];return t}return e}function Ft(e,t){return e?[...new Set([].concat(e,t))]:t}function zt(e,t){return e?u(u(Object.create(null),e),t):t}const Lt=function(e,t){t&&t.pendingBranch?d(e)?t.effects.push(...e):t.effects.push(e):vt(e)},Wt=Symbol(\"production\"!==process.env.NODE_ENV?\"Fragment\":void 0),Ht=Symbol(\"production\"!==process.env.NODE_ENV?\"Text\":void 0),qt=Symbol(\"production\"!==process.env.NODE_ENV?\"Comment\":void 0);Symbol(\"production\"!==process.env.NODE_ENV?\"Static\":void 0);const Kt=({key:e})=>null!=e?e:null,Bt=({ref:e,ref_key:t,ref_for:n})=>null!=e?y(e)||We(e)||g(e)?{i:null,r:e,k:t,f:!!n}:e:null;const Jt=\"production\"!==process.env.NODE_ENV?(...e)=>Gt(...e):Gt;function Gt(e,n=null,o=null,r=0,i=null,c=!1){if(e&&e!==St||(\"production\"===process.env.NODE_ENV||e||Be(`Invalid vnode type when creating vnode: ${e}.`),e=qt),(a=e)&&!0===a.__v_isVNode){const t=Qt(e,n,!0);return o&&Zt(t,o),t.patchFlag|=-2,t}var a;if(cn(e)&&(e=e.__vccOpts),n){n=function(e){return e?Me(e)||\"__vInternal\"in e?u({},e):e:null}(n);let{class:e,style:o}=n;e&&!y(e)&&(n.class=s(e)),m(o)&&(Me(o)&&!d(o)&&(o=u({},o)),n.style=t(o))}const l=y(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:m(e)?4:g(e)?2:0;return\"production\"!==process.env.NODE_ENV&&4&l&&Me(e)&&Be(\"Vue received a Component which was made a reactive object. This can lead to unnecessary performance overhead, and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.\",\"\\nComponent that was made reactive: \",e=Ie(e)),function(e,t=null,n=null,o=0,r=null,s=(e===Wt?0:1),i=!1,c=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Kt(t),ref:t&&Bt(t),scopeId:null,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null};return c?(Zt(a,n),128&s&&e.normalize(a)):n&&(a.shapeFlag|=y(n)?8:16),\"production\"!==process.env.NODE_ENV&&a.key!=a.key&&Be(\"VNode created with invalid key (NaN). VNode type:\",a.type),a}(e,n,o,r,i,l,c,!0)}function Qt(e,n,o=!1){const{props:r,ref:i,patchFlag:c,children:a}=e,u=n?function(...e){const n={};for(let o=0;o<e.length;o++){const r=e[o];for(const e in r)if(\"class\"===e)n.class!==r.class&&(n.class=s([n.class,r.class]));else if(\"style\"===e)n.style=t([n.style,r.style]);else if(l(e)){const t=n[e],o=r[e];!o||t===o||d(t)&&t.includes(o)||(n[e]=t?[].concat(t,o):o)}else\"\"!==e&&(n[e]=r[e])}return n}(r||{},n):r;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&Kt(u),ref:n&&n.ref?o&&i?d(i)?i.concat(Bt(n)):[i,Bt(n)]:Bt(n):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:\"production\"!==process.env.NODE_ENV&&-1===c&&d(a)?a.map(Xt):a,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:n&&e.type!==Wt?-1===c?16:16|c:c,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Qt(e.ssContent),ssFallback:e.ssFallback&&Qt(e.ssFallback),el:e.el,anchor:e.anchor}}function Xt(e){const t=Qt(e);return d(e.children)&&(t.children=e.children.map(Xt)),t}function Yt(e=\" \",t=0){return Jt(Ht,null,e,t)}function Zt(e,t){let n=0;const{shapeFlag:o}=e;if(null==t)t=null;else if(d(t))n=16;else if(\"object\"==typeof t){if(65&o){const n=t.default;return void(n&&(n._c&&(n._d=!1),Zt(e,n()),n._c&&(n._d=!0)))}{n=32;const e=t._;e||\"__vInternal\"in t||(t._ctx=null)}}else g(t)?(t={default:t,_ctx:null},n=32):(t=String(t),64&o?(n=16,t=[Yt(t)]):n=8);e.children=t,e.shapeFlag|=n}let en=null;const tn=e=>{en=e,e.scope.on()},nn=()=>{en&&en.scope.off(),en=null};const on=/(?:^|[-_])(\\w)/g;function rn(e,t=!0){return g(e)?e.displayName||e.name:e.name||t&&e.__name}function sn(e,t,n=!1){let o=rn(t);if(!o&&t.__file){const e=t.__file.match(/([^/\\\\]+)\\.\\w+$/);e&&(o=e[1])}if(!o&&e&&e.parent){const n=e=>{for(const n in e)if(e[n]===t)return n};o=n(e.components||e.parent.type.components)||n(e.appContext.components)}return o?o.replace(on,(e=>e.toUpperCase())).replace(/[-_]/g,\"\"):n?\"App\":\"Anonymous\"}function cn(e){return g(e)&&\"__vccOpts\"in e}const an=(e,t)=>function(e,t,n=!1){let o,r;const s=g(e);s?(o=e,r=\"production\"!==process.env.NODE_ENV?()=>{console.warn(\"Write operation failed: computed value is readonly\")}:c):(o=e.get,r=e.set);const i=new qe(o,r,s||!r,n);return\"production\"!==process.env.NODE_ENV&&t&&!n&&(i.effect.onTrack=t.onTrack,i.effect.onTrigger=t.onTrigger),i}(e,t,false);function ln(e){return!(!e||!e.__v_isShallow)}Symbol(\"production\"!==process.env.NODE_ENV?\"ssrContext\":\"\"),\"production\"!==process.env.NODE_ENV&&function(){if(\"production\"===process.env.NODE_ENV||\"undefined\"==typeof window)return;const e={style:\"color:#3ba776\"},t={style:\"color:#0b1bc9\"},n={style:\"color:#b62e24\"},o={style:\"color:#9d288c\"},r={header:t=>m(t)?t.__isVue?[\"div\",e,\"VueInstance\"]:We(t)?[\"div\",{},[\"span\",e,f(t)],\"<\",a(t.value),\">\"]:je(t)?[\"div\",{},[\"span\",e,ln(t)?\"ShallowReactive\":\"Reactive\"],\"<\",a(t),\">\"+(Ue(t)?\" (readonly)\":\"\")]:Ue(t)?[\"div\",{},[\"span\",e,ln(t)?\"ShallowReadonly\":\"Readonly\"],\"<\",a(t),\">\"]:null:null,hasBody:e=>e&&e.__isVue,body(e){if(e&&e.__isVue)return[\"div\",{},...s(e.$)]}};function s(e){const t=[];e.type.props&&e.props&&t.push(c(\"props\",Ie(e.props))),e.setupState!==i&&t.push(c(\"setup\",e.setupState)),e.data!==i&&t.push(c(\"data\",Ie(e.data)));const n=l(e,\"computed\");n&&t.push(c(\"computed\",n));const r=l(e,\"inject\");return r&&t.push(c(\"injected\",r)),t.push([\"div\",{},[\"span\",{style:o.style+\";opacity:0.66\"},\"$ (internal): \"],[\"object\",{object:e}]]),t}function c(e,t){return t=u({},t),Object.keys(t).length?[\"div\",{style:\"line-height:1.25em;margin-bottom:0.6em\"},[\"div\",{style:\"color:#476582\"},e],[\"div\",{style:\"padding-left:1.25em\"},...Object.keys(t).map((e=>[\"div\",{},[\"span\",o,e+\": \"],a(t[e],!1)]))]]:[\"span\",{}]}function a(e,r=!0){return\"number\"==typeof e?[\"span\",t,e]:\"string\"==typeof e?[\"span\",n,JSON.stringify(e)]:\"boolean\"==typeof e?[\"span\",o,e]:m(e)?[\"object\",{object:r?Ie(e):e}]:[\"span\",n,String(e)]}function l(e,t){const n=e.type;if(g(n))return;const o={};for(const r in e.ctx)p(n,r,t)&&(o[r]=e.ctx[r]);return o}function p(e,t,n){const o=e[n];return!!(d(o)&&o.includes(t)||m(o)&&t in o)||!(!e.extends||!p(e.extends,t,n))||!(!e.mixins||!e.mixins.some((e=>p(e,t,n))))||void 0}function f(e){return ln(e)?\"ShallowRef\":e.effect?\"ComputedRef\":\"Ref\"}window.devtoolsFormatters?window.devtoolsFormatters.push(r):window.devtoolsFormatters=[r]}();const un=e=>{let t=null;const n=e.toString().match(/\\(([a-z0-9 ,$_+*\\-/]+)\\)/im);if(n&&Array.isArray(n)&&n[0]){let e=n[0];e=e.replace(/\\(|\\)|[ ]/g,\"\");const o=e.split(\",\");o.length>0&&(t=o)}return t},pn=e=>\"string\"!=typeof e?\"\":e.charAt(0).toUpperCase()+e.slice(1),fn=Se({registeredUser:{},registeredRules:{},options:{}}),dn=e=>{if(wn(e.user))fn.registeredUser=e.user();else{const t=e.user;fn.registeredUser=t}e.rules&&\"function\"==typeof e.rules&&e.rules(),fn.options=e},hn=(e,t)=>{Object.prototype.hasOwnProperty.call(fn.registeredRules,e)?console.warn(`:::VueSimpleACL::: Duplicate ACL Rule '${e}' defined. Only the first defined rule will be evaluated.`):fn.registeredRules[e]=t},gn=(e,t)=>{\"string\"==typeof e?hn(e,t):\"object\"==typeof e&&Array.isArray(e)&&Object.values(e).forEach((e=>{hn(e,t)}))},yn=(e,t,n)=>{try{return\"function\"==typeof e&&(\"object\"!=typeof n||Array.isArray(n)?\"object\"==typeof n&&Array.isArray(n)?e(fn.registeredUser,...n):e(fn.registeredUser):e(fn.registeredUser,n))}catch(n){const o=un(e);let r=null;o&&Array.isArray(o)&&(o.shift(),r=o.join(\", \"));let s=':::VueSimpleACL::: The defined ACL Rule for \"'+t+'\" require some argument(s) or data object to be specified for matching.';return s+=\"\\n\\nCheck the file containing your defineAclRules((setRule) => {...}); declarations\",s+=\"\\n\\nExamples:\",o&&o.length<=0?(s+=`\\nv-can:${t}`,s+=`\\nv-can=\"'${t}'\"`,s+=`\\n$can('${t}')`):o&&1===o.length?(s+=`\\nv-can:${t}=\"${r}\"`,s+=`\\nv-can=\"'${t}', ${r}\"`,s+=`\\n$can('${t}', ${r})`):(s+=`\\nv-can:${t}=\"[${r}]\"`,s+=`\\nv-can=\"'${t}', [${r}]\"`,s+=`\\n$can('${t}', [${r}])`),console.error(s),console.error(n),!1}},vn=({abilities:e,args:t,any:n=!1})=>{if(e&&\"string\"==typeof e){if(Object.prototype.hasOwnProperty.call(fn.registeredRules,e)){const n=fn.registeredRules[e];return yn(n,e,t)}}else if(\"object\"==typeof e&&Array.isArray(e)){let t=!1,o=!1,r=0,s=0;return e.forEach((e=>{if(Object.prototype.hasOwnProperty.call(fn.registeredRules,e.abilities)){const i=fn.registeredRules[e.abilities];o=yn(i,e.abilities,e.args),o&&s++,!0===n&&o&&(t=!0),r++}})),r>0&&r===s&&(t=!0),t}return!1},mn=({abilities:e,args:t,any:n=!1})=>{const o=t,r=n;let s=!1;if(e)s=vn(o?{abilities:e,args:o}:{abilities:e});else if(o&&\"string\"==typeof o)s=vn({abilities:o});else if(o&&null!==o&&\"object\"==typeof o){if(2!==(Array.isArray(o)?o.length:Object.keys(o).length)||\"string\"!=typeof o[0]||\"object\"!=typeof o[1]||Array.isArray(o[1])){const e=[],t=[];o.forEach((t=>{if(t&&\"string\"==typeof t)e.push({abilities:t});else if(t&&\"object\"==typeof t){let n=null;const o=[];t.forEach((e=>{e&&!n&&\"string\"==typeof e?n=e:o.push(e)})),n&&e.push({abilities:n,args:o})}})),s=vn({abilities:e,args:t,any:r})}else s=vn({abilities:o[0],args:o[1]})}return s},_n=({abilities:e,args:t,any:n=!1})=>e&&\"string\"==typeof e?mn({abilities:e,args:t,any:n}):\"object\"==typeof e?mn({abilities:null,args:e,any:n}):(console.warn(\":::VueSimpleACL::: Invalid ACL arguments specified.\"),!1),bn=(e,t)=>_n({abilities:e,args:t,any:!1}),Nn=(e,t)=>!_n({abilities:e,args:t,any:!1}),En=(e,t)=>_n({abilities:e,args:t,any:!0}),wn=e=>\"function\"==typeof e&&e()instanceof Promise,On=(e,t)=>{const n=!!e.config.globalProperties,o={...{user:Object.create(null),rules:null,router:null,onDeniedRoute:\"/\",directiveName:\"can\",helperName:\"$can\",enableSematicAlias:!0},...t};o.directiveName&&\"string\"==typeof o.directiveName&&o.directiveName.startsWith(\"v-\")&&(o.directiveName=o.directiveName.substring(2,o.directiveName.length)),o.helperName&&\"string\"==typeof o.helperName&&\"$\"!==o.helperName.charAt(0)&&(o.helperName=\"$\"+o.helperName),wn(o.user)||dn(o);const r=(e,t)=>{const n=t.arg,o=t.value,r=t.modifiers,s=!!r.any,i=!!r.not,c=!!r.readonly,a=!(!r.disable&&!r.disabled);!r.hide&&r.hidden;mn({abilities:n,args:o,any:s})?i&&(e.style.display=\"none\"):i||(a?e.disabled=!0:c?e.readOnly=!0:e.style.display=\"none\")},s=(e,t,n)=>{e.directive(`${t}`,{mounted(e,t){r(e,t)},updated(e,t){r(e,t)}})},i=(e,t,n,o)=>{n?o?(e.config.globalProperties.$acl||(e.config.globalProperties.$acl={}),e.config.globalProperties.$acl[t]=(e,t)=>bn(e,t),e.config.globalProperties.$acl[`all${pn(t)}`]=(e,t)=>bn(e,t),e.config.globalProperties.$acl[`not${pn(t)}`]=(e,t)=>Nn(e,t),e.config.globalProperties.$acl[`any${pn(t)}`]=(e,t)=>En(e,t)):(e.config.globalProperties[t]=(e,t)=>bn(e,t),e.config.globalProperties[t].all=(e,t)=>bn(e,t),e.config.globalProperties[t].not=(e,t)=>Nn(e,t),e.config.globalProperties[t].any=(e,t)=>En(e,t)):o?(e.prototype.$acl||(e.prototype.$acl={}),e.prototype.$acl[t]=(e,t)=>bn(e,t),e.prototype.$acl[`all${pn(t)}`]=(e,t)=>bn(e,t),e.prototype.$acl[`not${pn(t)}`]=(e,t)=>Nn(e,t),e.prototype.$acl[`any${pn(t)}`]=(e,t)=>En(e,t)):(e.prototype[t]=(e,t)=>bn(e,t),e.prototype[t].all=(e,t)=>bn(e,t),e.prototype[t].not=(e,t)=>Nn(e,t),e.prototype[t].any=(e,t)=>En(e,t))};if(s(e,`${o.directiveName}`),o.enableSematicAlias&&(s(e,\"permission\"),s(e,\"permissions\"),s(e,\"role\"),s(e,\"roles\"),s(e,\"role-or-permission\"),s(e,\"role-or-permissions\")),i(e,`${o.helperName}`,n,!1),o.enableSematicAlias&&(i(e,\"can\",n,!0),i(e,\"permission\",n,!0),i(e,\"permissions\",n,!0),i(e,\"role\",n,!0),i(e,\"roles\",n,!0),i(e,\"roleOrPermission\",n,!0),i(e,\"roleOrPermissions\",n,!0),n?(e.config.globalProperties.$acl||(e.config.globalProperties.$acl={}),e.config.globalProperties.$acl.user=an((()=>fn.registeredUser)).value,e.config.globalProperties.$acl.getUser=()=>fn.registeredUser):(e.prototype.$acl||(e.prototype.$acl={}),e.prototype.$acl.user=an((()=>fn.registeredUser)).value,e.prototype.$acl.getUser=()=>fn.registeredUser)),o.router){const e=(e,t,n,r)=>{if(r)n();else{let r=o.onDeniedRoute;e.meta&&e.meta.onDeniedRoute&&(r=e.meta.onDeniedRoute),n(\"object\"==typeof r?r:\"$from\"===r?t:{path:`${r}`,replace:!0})}},t=(t,n,o)=>{if(t.meta&&(t.meta.can||t.meta.permission||t.meta.role||t.meta.roleOrPermission)){const r=t.meta.can||t.meta.permission||t.meta.role||t.meta.roleOrPermission;let s=!1;if(\"function\"==typeof r){const e=un(r);s=Array.isArray(e)&&4===e.length?r(t,n,bn,fn.registeredUser):r(t,n,bn)}else s=bn(r);e(t,n,o,s)}else if(t.meta&&(t.meta.canAll||t.meta.allCan||t.meta.allPermission||t.meta.allRole||t.meta.allRoleOrPermission)){const r=t.meta.canAll||t.meta.allCan||t.meta.allPermission||t.meta.allRole||t.meta.allRoleOrPermission;let s=!1;if(\"function\"==typeof r){const e=un(r);s=Array.isArray(e)&&4===e.length?r(t,n,bn,fn.registeredUser):r(t,n,bn)}else s=bn(r);e(t,n,o,s)}else if(t.meta&&(t.meta.cannot||t.meta.canNot||t.meta.notCan||t.meta.notPermission||t.meta.notRole||t.meta.notRoleOrPermission)){const r=t.meta.cannot||t.meta.canNot||t.meta.notCan||t.meta.notPermission||t.meta.notRole||t.meta.notRoleOrPermission;let s=!1;if(\"function\"==typeof r){const e=un(r);s=Array.isArray(e)&&4===e.length?r(t,n,Nn,fn.registeredUser):r(t,n,Nn)}else s=Nn(r);e(t,n,o,s)}else if(t.meta&&(t.meta.canAny||t.meta.anyCan||t.meta.anyPermission||t.meta.anyRole||t.meta.anyRoleOrPermission)){const r=t.meta.canAny||t.meta.anyCan||t.meta.anyPermission||t.meta.anyRole||t.meta.anyRoleOrPermission;let s=!1;if(\"function\"==typeof r){const e=un(r);s=Array.isArray(e)&&4===e.length?r(t,n,En,fn.registeredUser):r(t,n,En)}else s=En(r);e(t,n,o,s)}else o()};o.router.beforeEach(((e,n,r)=>{wn(o.user)?o.user().then((s=>{o.user=s,dn(o),t(e,n,r)})).catch((()=>{console.warn(\":::VueSimpleACL::: Error while processing/retrieving 'user' data with the Asynchronous function.\")})):t(e,n,r)}))}else wn(o.user)&&console.error(\":::VueSimpleACL::: Instance of vue-router is required to define 'user' retrieved from a promise or Asynchronous function.\")},$n=e=>({install:(t,n={})=>{On(t,{...n,...e})}}),Vn=e=>{\"function\"==typeof e&&e(gn)},Rn=()=>{const e={};return e.user=an((()=>fn.registeredUser)).value,e.getUser=()=>fn.registeredUser,e.can=bn,e.can.not=Nn,e.can.any=En,e.notCan=Nn,e.canNot=Nn,e.cannot=Nn,e.anyCan=En,e.permission=bn,e.allPermission=bn,e.notPermission=Nn,e.anyPermission=En,e.permission.not=Nn,e.permission.any=En,e.role=bn,e.allRole=bn,e.notRole=Nn,e.anyRole=En,e.role.not=Nn,e.role.any=En,e.roleOrPermission=bn,e.allRoleOrPermission=bn,e.notRoleOrPermission=Nn,e.anyRoleOrPermission=En,e.roleOrPermission.not=Nn,e.roleOrPermission.any=En,Se(e)},Pn={install:(e,t)=>On(e,t)};export{$n as createAcl,Pn as default,Vn as defineAclRules,Rn as useAcl};\n","// Import router if you are using the middleware on Vue Router\r\nimport router from '../../core/router/router';\r\n// Import store if you are using reactive Store/Pinia/Vuex as User data source\r\nimport systemStore from '../../store/modules/systemStore';\r\nimport { computed } from 'vue'; // For VUE 3\r\nimport { createAcl, defineAclRules } from 'vue-simple-acl';\r\n\r\nconst userInfo =\r\n computed(() => systemStore().userInfo);\r\n\r\nconst rules = () => defineAclRules((setRule) => {\r\n // Define a simple rule for ability with no argument\r\n setRule('is-login', (user) => user.token);\r\n setRule('is-admin', (user) => user.is_admin);\r\n});\r\n\r\nconst simpleAcl = createAcl({\r\n userInfo, // short for user: user\r\n rules, // short for rules: rules\r\n router, // OPTIONAL, short for router: router\r\n // other optional vue-simple-acl options here... See Vue Simple ACL Options below\r\n});\r\n\r\nexport default simpleAcl;\r\n","import { tool } from '@arkxos/arkos-util'\r\nimport access from './access'\r\nimport acl from './acl';\r\nimport system from '../core/system'\r\nimport { getToken } from '../access/tokenStorage';\r\nimport systemStore from '../store/modules/systemStore';\r\n\r\nconst whiteList = ['/login', '/register', '/social-callback'];\r\n\r\nconst accessPlugin = {\r\n name: 'accessPlugin',\r\n app: undefined,\r\n install (app) {\r\n app.use(acl);\r\n this.app = app;\r\n console.log('app acl', app.$acl)\r\n app.config.globalProperties.$access = access;\r\n },\r\n uninstall () {\r\n console.log('uninstall')\r\n },\r\n beforeRouter (to, from, next) {\r\n console.log('from', from, 'to', to)\r\n\r\n if (to.path === '/login') {\r\n // 删除路由(替换当前layout路由)\r\n // router.addRoute(routes[0])\r\n next();\r\n // next({ path: '/' })\r\n return false;\r\n } else if (whiteList.indexOf(to.path as string) !== -1) {\r\n next();\r\n } else {\r\n // 有token\r\n const token = getToken();\r\n if (token) {\r\n const mySystemStore = systemStore();\r\n console.log('mySystemStore', mySystemStore)\r\n if (!mySystemStore.userInfo['user'] && system.themeRootRoute) {\r\n access.refreshUserInfo().then(() => {\r\n next();\r\n });\r\n }\r\n // access.login({}, getToken()).then(res => {\r\n // // token过期\r\n // if (!res.data) {\r\n // next(`/login?redirect=${to.fullPath}`)\r\n // return false;\r\n // } else {\r\n // system.queryMenus().then(() => {\r\n // next();\r\n // });\r\n // }\r\n // }).catch(() => {\r\n // next(`/login?redirect=${to.fullPath}`)\r\n // return false;\r\n // })\r\n } else {\r\n const integrate = to.query && to.query.integrate === 'true'\r\n if (!this.app.config.globalProperties.$acl.permission('is-login')) {\r\n if (integrate) {\r\n access.refreshUserInfo().then(() => {\r\n next();\r\n });\r\n } else {\r\n // next({ path: '/login' });\r\n next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default accessPlugin\r\n","// https://www.npmjs.com/package/mitt\r\nimport mitt, { Emitter } from 'mitt';\r\n// import type { MittType } from '@/types/mitt';\r\n// 类型\r\nconst emitter: Emitter<MittType> = mitt<MittType>();\r\n\r\n// 导出\r\nexport default emitter;\r\n","export type EventType = string | symbol;\n\n// An event handler can take an optional event argument\n// and should not return a value\nexport type Handler<T = unknown> = (event: T) => void;\nexport type WildcardHandler<T = Record<string, unknown>> = (\n\ttype: keyof T,\n\tevent: T[keyof T]\n) => void;\n\n// An array of all currently registered event handlers for a type\nexport type EventHandlerList<T = unknown> = Array<Handler<T>>;\nexport type WildCardEventHandlerList<T = Record<string, unknown>> = Array<\n\tWildcardHandler<T>\n>;\n\n// A map of event types and their corresponding event handlers.\nexport type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<\n\tkeyof Events | '*',\n\tEventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>\n>;\n\nexport interface Emitter<Events extends Record<EventType, unknown>> {\n\tall: EventHandlerMap<Events>;\n\n\ton<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;\n\ton(type: '*', handler: WildcardHandler<Events>): void;\n\n\toff<Key extends keyof Events>(\n\t\ttype: Key,\n\t\thandler?: Handler<Events[Key]>\n\t): void;\n\toff(type: '*', handler: WildcardHandler<Events>): void;\n\n\temit<Key extends keyof Events>(type: Key, event: Events[Key]): void;\n\temit<Key extends keyof Events>(\n\t\ttype: undefined extends Events[Key] ? Key : never\n\t): void;\n}\n\n/**\n * Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nexport default function mitt<Events extends Record<EventType, unknown>>(\n\tall?: EventHandlerMap<Events>\n): Emitter<Events> {\n\ttype GenericEventHandler =\n\t\t| Handler<Events[keyof Events]>\n\t\t| WildcardHandler<Events>;\n\tall = all || new Map();\n\n\treturn {\n\t\t/**\n\t\t * A Map of event names to registered handler functions.\n\t\t */\n\t\tall,\n\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t * @param {string|symbol} type Type of event to listen for, or `'*'` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton<Key extends keyof Events>(type: Key, handler: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\thandlers.push(handler);\n\t\t\t} else {\n\t\t\t\tall!.set(type, [handler] as EventHandlerList<Events[keyof Events]>);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t * If `handler` is omitted, all handlers of the given type are removed.\n\t\t * @param {string|symbol} type Type of event to unregister `handler` from (`'*'` to remove a wildcard handler)\n\t\t * @param {Function} [handler] Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff<Key extends keyof Events>(type: Key, handler?: GenericEventHandler) {\n\t\t\tconst handlers: Array<GenericEventHandler> | undefined = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\tif (handler) {\n\t\t\t\t\thandlers.splice(handlers.indexOf(handler) >>> 0, 1);\n\t\t\t\t} else {\n\t\t\t\t\tall!.set(type, []);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `'*'` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * Note: Manually firing '*' handlers is not supported.\n\t\t *\n\t\t * @param {string|symbol} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit<Key extends keyof Events>(type: Key, evt?: Events[Key]) {\n\t\t\tlet handlers = all!.get(type);\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as EventHandlerList<Events[keyof Events]>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(evt!);\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\thandlers = all!.get('*');\n\t\t\tif (handlers) {\n\t\t\t\t(handlers as WildCardEventHandlerList<Events>)\n\t\t\t\t\t.slice()\n\t\t\t\t\t.map((handler) => {\n\t\t\t\t\t\thandler(type, evt!);\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n}\n","import { ElMessage, ElMessageBox } from 'element-plus';\r\n// import i18n from '../i18n';\r\nimport i18n from '../lang/index'\r\nconst { t } = i18n.global;\r\n\r\ninterface MessageImplements {\r\n info(title: string): void;\r\n wraning(title: string): void;\r\n success(title: string): void;\r\n error(title: string): void;\r\n}\r\n\r\nexport function useMessage() {\r\n class MessageClass implements MessageImplements {\r\n // 普通提示\r\n info(title: string): void {\r\n ElMessage.info(title);\r\n }\r\n\r\n // 警告提示\r\n wraning(title: string): void {\r\n ElMessage.warning(title);\r\n }\r\n\r\n // 成功提示\r\n success(title: string): void {\r\n ElMessage.success(title);\r\n }\r\n\r\n // 错误提示\r\n error(title: string): void {\r\n ElMessage.error(title);\r\n }\r\n }\r\n\r\n return new MessageClass();\r\n}\r\n\r\nexport function useMessageBox() {\r\n class MessageBoxClass implements MessageImplements {\r\n // 普通提示\r\n info(msg: string): void {\r\n ElMessageBox.alert(msg, t('message.box.title'));\r\n }\r\n\r\n // 警告提示\r\n wraning(msg: string): void {\r\n ElMessageBox.alert(msg, t('message.box.title'), { type: 'warning' });\r\n }\r\n\r\n // 成功提示\r\n success(msg: string): void {\r\n ElMessageBox.alert(msg, t('message.box.title'), { type: 'success' });\r\n }\r\n\r\n // 错误提示\r\n error(msg: string): void {\r\n ElMessageBox.alert(msg, t('message.box.title'), { type: 'error' });\r\n }\r\n\r\n // 确认窗体\r\n confirm(msg: string) {\r\n return ElMessageBox.confirm(msg, t('message.box.title'), {\r\n confirmButtonText: t('common.confirmButtonText'),\r\n cancelButtonText: t('common.cancelButtonText'),\r\n type: 'warning',\r\n });\r\n }\r\n\r\n // 提交内容\r\n prompt(msg: string) {\r\n return ElMessageBox.prompt(msg, t('message.box.title'), {\r\n confirmButtonText: t('common.confirmButtonText'),\r\n cancelButtonText: t('common.cancelButtonText'),\r\n type: 'warning',\r\n });\r\n }\r\n }\r\n\r\n return new MessageBoxClass();\r\n}\r\n","/*\r\n|--------------------------------------------------------------------------\r\n|\r\n| 这些组件暴露给使用方\r\n|\r\n|--------------------------------------------------------------------------\r\n*/\r\nimport system from '../core/system'\r\nimport router from '../core/router/router'\r\nimport store from '../store';\r\nimport systemStore from '../store/modules/systemStore'\r\nimport request, { http, globalHeaders } from '../core/api/http'\r\nimport config from '../core/config/index'\r\nimport api from '../api'\r\nimport { installPlugin } from '../directive/index'\r\nimport accessPlugin from '../plugins/accessPlugin'\r\nimport access from '../plugins/access'\r\nimport { getToken, removeToken, setToken } from '../access/tokenStorage'\r\nimport { LanguageEnum } from '../enums/LanguageEnum';\r\nimport i18n from '../lang/index'\r\nimport i18nBuilder from '../core/i18n/i18nBuilder'\r\nimport emitter from '../utils/mitt';\r\n// import * as utils from \"@arkxos/arkos-util/src/utils\";\r\nimport { useMessage, useMessageBox } from '../hooks/message';\r\n// system.init();\r\n// system.installPlugin(accessPlugin)\r\n\r\nexport const comps = {\r\n system,\r\n installPlugin,\r\n access,\r\n accessPlugin,\r\n router,\r\n store,\r\n systemStore,\r\n request,\r\n http,\r\n globalHeaders,\r\n config,\r\n api,\r\n getToken,\r\n setToken,\r\n removeToken,\r\n LanguageEnum,\r\n i18n,\r\n i18nBuilder,\r\n\r\n // tool\r\n emitter,\r\n\r\n // message\r\n useMessage,\r\n useMessageBox\r\n}\r\nexport type LibProperties = typeof comps;\r\n\r\nexport default comps\r\n","\r\nimport { App } from 'vue';\r\nimport { hasPriv } from '../plugins/priv'\r\nimport { authDirective } from './authDirective';\r\n\r\nexport const installPlugin = function (app: App) {\r\n console.log('installPlugin priv')\r\n\r\n // 用户权限指令\r\n authDirective(app);\r\n\r\n app.config.globalProperties.hasPriv = hasPriv;\r\n app.config.globalProperties.hasAuthority = hasPriv;\r\n\r\n console.log('app.config.globalProperties', app.config.globalProperties)\r\n};\r\n","import type { App } from 'vue';\r\nimport systemStore from '../store/modules/systemStore';\r\nimport { judementSameArr, tool } from '@arkxos/arkos-util';\r\nimport { hasPriv } from '../plugins/priv'\r\n\r\n/**\r\n * 用户权限指令\r\n * @directive 单个权限验证(v-auth=\"xxx\")\r\n * @directive 多个权限验证,满足一个则显示(v-auths=\"[xxx,xxx]\")\r\n * @directive 多个权限验证,全部满足则显示(v-auth-all=\"[xxx,xxx]\")\r\n */\r\nexport function authDirective(app: App) {\r\n // 单个权限验证(v-auth=\"xxx\")\r\n app.directive('auth', {\r\n mounted(el, binding) {\r\n // 「其他角色」按钮权限校验\r\n const { value } = binding;\r\n if (!hasPriv(value)) {\r\n el.parentNode && el.parentNode.removeChild(el);\r\n }\r\n }\r\n });\r\n // 多个权限验证,满足一个则显示(v-auths=\"[xxx,xxx]\")\r\n app.directive('auths', {\r\n mounted(el, binding) {\r\n if (!hasPriv(binding.value)) {\r\n el.parentNode && el.parentNode.removeChild(el);\r\n }\r\n }\r\n });\r\n // 多个权限验证,全部满足则显示(v-auth-all=\"[xxx,xxx]\")\r\n app.directive('auth-all', {\r\n mounted(el, binding) {\r\n const stores = systemStore();\r\n const flag = judementSameArr(binding.value, stores.userInfo.permissions);\r\n if (!flag) {\r\n el.parentNode.removeChild(el);\r\n }\r\n },\r\n });\r\n\r\n // 角色权限\r\n app.directive('roles', {\r\n mounted(el, binding) {\r\n const { value } = binding;\r\n // const { roles } = useUserStore();\r\n const roles = tool.data.get('roles');\r\n if (value && value instanceof Array && value.length > 0) {\r\n const hasRole = roles.some((role: string) => {\r\n return role === 'admin' || value.includes(role);\r\n });\r\n if (!hasRole) {\r\n el.parentNode && el.parentNode.removeChild(el);\r\n return false;\r\n }\r\n } else {\r\n throw new Error(\"check roles! Like v-has-roles=\\\"['admin','test']\\\"\");\r\n }\r\n },\r\n });\r\n}\r\n","\r\nexport default (i18nFileData:any) => {\r\n// 定义变量内容\r\n const i18nMessage = {};\r\n\r\n const itemize = { en: [] as any[], 'zh-cn': [] as any[] };\r\n\r\n // files.keys().forEach((key) => {\r\n // modules[key.replace(/(\\.\\/|\\.js)/g, '')] = files(key).default\r\n // })\r\n\r\n // 对自动引入的 modules 进行分类 en、zh-cn、zh-tw\r\n // https://vitejs.cn/vite3-cn/guide/features.html#glob-import\r\n for (const path in i18nFileData) {\r\n const key = path.match(/(\\S+)\\/(\\S+).ts/);\r\n const data = i18nFileData[path];\r\n\r\n if (itemize[key![2]]) itemize[key![2]].push(data);\r\n else itemize[key![2]] = data;\r\n }\r\n\r\n // 合并数组对象(非标准数组对象,数组中对象的每项 key、value 都不同)\r\n function mergeArrObj<T>(list: T, key: string) {\r\n let obj = {};\r\n list[key].forEach((i) => {\r\n obj = Object.assign({}, obj, i);\r\n });\r\n return obj;\r\n }\r\n\r\n for (const key in itemize) {\r\n i18nMessage[key] = {\r\n name: key,\r\n // el: element[key].el,\r\n ...mergeArrObj(itemize, key),\r\n };\r\n }\r\n console.log('app-system-i18n', i18nMessage)\r\n\r\n return i18nMessage\r\n}\r\n","export enum LanguageEnum {\r\n zh_CN = 'zh-cn',\r\n\r\n en_US = 'en_US'\r\n}\r\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n const instance = target || getCurrentInstance();\n return isVue3 ? instance : instance == null ? void 0 : instance.proxy;\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, instance);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, instance);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onMounted(fn, instance);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, instance);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { noop, makeDestructurable, camelize, toValue, isClient, isObject, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, objectOmit, promiseTimeout, until, increaseWithUnit, objectEntries, createSingletonPromise, useTimeoutFn, pausableWatch, toRef, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, toRefs, notNullish, useIntervalFn, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, tryOnBeforeUnmount, identity, isDef, isWorker } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, readonly, nextTick, reactive, markRaw, unref, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\nimport { useEventListener as useEventListener$1 } from '@vueuse/core';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n let posStart;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], clear, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = computedWithControl(\n () => null,\n () => getDeepActiveElement()\n );\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n if (getCurrentInstance()) {\n onMounted(() => {\n isMounted.value = true;\n });\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - (previousFrameTimestamp || timestamp);\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (commitStyles)\n animate.value.commitStyles();\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[k]);\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return Object.assign(shortcutMethods, {\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && permissionRead.value !== \"denied\") {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && permissionWrite.value !== \"denied\")\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = ref([]);\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && (isRef(source) || typeof source === \"function\")) {\n watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n tryOnMounted(() => {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n const styleString = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n style.appendChild(document.createTextNode(styleString));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n var _a2;\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), containerRect.width - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), containerRect.height - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...toRefs(position),\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = ref(false);\n const files = shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener$1(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener$1(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener$1(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener$1(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]);\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\", deep: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = ref(null);\n const cb = () => {\n var _a, _b;\n element.value = toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(toValue(x), toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = Number.parseFloat(styles.width);\n height.value = Number.parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget } = options;\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold: 0\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...toValue(options), ..._options });\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n ...gamepad,\n id: gamepad.id,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n if (!window)\n return;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = target.document ? target.document.documentElement : (_a = target.documentElement) != null ? _a : target;\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n tryOnMounted(() => {\n const _element = toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n const observedElement = computed(() => {\n return resolveElement(toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return shallowReactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page)) {\n syncRef(page, currentPage, {\n direction: isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (isRef(pageSize)) {\n syncRef(pageSize, currentPageSize, {\n direction: isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, initialOverflow);\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n var _a;\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n el.style.overflow = (_a = elInitialOverflow.get(el)) != null ? _a : \"\";\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...toValue(shareOptions),\n ...toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = toValue(pitch);\n utterance2.rate = toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style.height = \"1px\";\n textareaScrollHeight.value = (_a = textarea.value) == null ? void 0 : _a.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style.height = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style.height = height;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], () => nextTick(triggerResize), { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval, { immediate: false });\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const permissionGranted = ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n tryOnMounted(ensurePermissions);\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (isClient)\n useEventListener(\"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n if (!isClient && !isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps) {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n}\n\nfunction createWorkerBlobUrl(fn, deps) {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const internalX = ref(window.scrollX);\n const internalY = ref(window.scrollY);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsPrimeFlex, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useClipboardItems, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","// 自定义国际化配置\r\nimport { createI18n } from 'vue-i18n';\r\nimport { useStorage } from '@vueuse/core'\r\n// import { zhCn, en } from 'element-plus'\r\n// import zhCn from \"element-plus/es/locale/lang/zh-cn\"\r\n// import en from \"element-plus/es/locale/lang/en\"\r\n// 本地语言包\r\nimport enUSLocale from './en_US';\r\nimport zhCNLocale from './zh_CN';\r\nimport { LanguageEnum } from '../enums/LanguageEnum';\r\nimport arkOsUtil from '@arkxos/arkos-util';\r\n\r\n// element plus 自带国际化\r\n// import enLocale from 'element-plus/es/locale/lang/en';\r\n// import zhcnLocale from 'element-plus/es/locale/lang/zh-cn';\r\n\r\n// 定义变量内容\r\n// import myZhCn from './lang/zh-cn.js'\r\n// import myEn from './lang/en.js'\r\n// const messages = {};\r\nconst messages = {\r\n 'zh-cn': {\r\n // el: zhCn,\r\n // ...myZhCn\r\n },\r\n en: {\r\n // el: en,\r\n // ...myEn\r\n }\r\n}\r\nconst element = {};// { en: enLocale, 'zh-cn': zhcnLocale };\r\nconst itemize = { en: [] as any[], 'zh-cn': [] as any[] };\r\n\r\n// const messages = {\r\n// zh_CN: {\r\n// ...zhCNLocale\r\n// },\r\n// en_US: {\r\n// ...enUSLocale\r\n// }\r\n// };\r\n\r\n/**\r\n * 获取当前语言\r\n * @returns zh-cn|en ...\r\n */\r\n// 读取 pinia 默认语言\r\n// const stores = useThemeConfig(pinia);\r\n// const { themeConfig } = storeToRefs(stores);\r\nexport const getLanguage = (): LanguageEnum => {\r\n const language = useStorage<LanguageEnum>('language', LanguageEnum.zh_CN);\r\n if (language.value) {\r\n return language.value;\r\n }\r\n return LanguageEnum.zh_CN;\r\n};\r\n\r\nconst i18n = createI18n({\r\n legacy: false,\r\n silentTranslationWarn: true,\r\n missingWarn: false,\r\n silentFallbackWarn: true,\r\n fallbackWarn: false,\r\n // locale: getLanguage(),\r\n locale: arkOsUtil.tool.data.get('APP_LANG') || 'zh-cn', // config?.LANG,\r\n fallbackLocale: 'zh-cn',\r\n // locale: themeConfig.value.globalI18n,\r\n globalInjection: true, // 全局注册$t方法\r\n messages\r\n});\r\n\r\nconsole.log('i18n instance', i18n)\r\nexport default i18n;\r\n","import { defineStore } from 'pinia'\r\n\r\nconst systemStore = defineStore('system', {\r\n state: () => ({\r\n userInfo: {\r\n permissions: []\r\n },\r\n token: '',\r\n menus: []\r\n }),\r\n actions: {\r\n setUserInfo (userInfo) {\r\n this.userInfo = userInfo;\r\n },\r\n setToken (token) {\r\n this.token = token;\r\n },\r\n setMenus (menus) {\r\n this.menus = menus;\r\n }\r\n },\r\n // mutations: {\r\n // SET_USER: (state, user) => (state.user = user),\r\n // SET_MENUS: (state, menus) => (state.menus = menus)\r\n // },\r\n // getters: {\r\n // user: state => state.user,\r\n // menus: state => state.menus\r\n // }\r\n});\r\nexport default systemStore;\r\n","var map = {\n\t\"./auth.js\": 4500,\n\t\"./common.js\": 9662,\n\t\"./demo.js\": 3403,\n\t\"./system.js\": 7621\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 5855;"],"names":["isCallable","tryToString","$TypeError","TypeError","module","exports","argument","isPrototypeOf","it","Prototype","isObject","$String","String","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","value","O","length","index","includes","indexOf","anObject","iteratorClose","iterator","fn","ENTRIES","error","uncurryThis","toString","stringSlice","slice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","wellKnownSymbol","$Object","Object","CORRECT_ARGUMENTS","arguments","tag","result","undefined","key","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","target","source","exceptions","keys","defineProperty","f","getOwnPropertyDescriptor","i","fails","F","prototype","constructor","getPrototypeOf","done","DESCRIPTORS","createPropertyDescriptor","object","bitmap","enumerable","configurable","writable","makeBuiltIn","defineGlobalProperty","options","simple","name","global","unsafe","nonConfigurable","nonWritable","defineBuiltIn","src","get","documentAll","document","all","IS_HTMLDDA","EXISTS","createElement","navigator","userAgent","match","version","process","Deno","versions","v8","split","createNonEnumerableProperty","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","sham","exec","aCallable","NATIVE_BIND","bind","that","apply","test","hasOwnProperty","call","Function","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","namespace","method","obj","next","getIteratorDirect","getIteratorMethod","classof","getMethod","isNullOrUndefined","Iterators","ITERATOR","usingIterator","iteratorMethod","V","P","func","check","Math","globalThis","window","self","g","this","toObject","getBuiltIn","a","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","metadata","facade","STATE","enforce","getterFor","TYPE","type","ArrayPrototype","Array","$documentAll","replacement","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","USE_SYMBOL_AS_UID","$Symbol","isArrayIteratorMethod","getIterator","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","kind","innerResult","innerError","create","defineBuiltIns","InternalStateModule","IteratorPrototype","createIterResultObject","ITERATOR_HELPER","WRAP_FOR_VALID_ITERATOR","setInternalState","createIteratorProxyPrototype","getInternalState","nextHandler","returnMethod","inner","WrapForValidIteratorPrototype","IteratorHelperPrototype","IteratorProxy","record","counter","createIteratorProxy","callWithSafeIterationClosing","mapper","PrototypeOfArrayIteratorPrototype","arrayIterator","IS_PURE","BUGGY_SAFARI_ITERATORS","toLength","CONFIGURABLE_FUNCTION_NAME","enforceInternalState","join","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","ceil","floor","trunc","x","n","$RangeError","RangeError","activeXDocument","definePropertiesModule","enumBugKeys","html","documentCreateElement","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","style","display","appendChild","contentWindow","open","Properties","V8_PROTOTYPE_DEFINE_BUG","objectKeys","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","current","propertyIsEnumerableModule","internalObjectKeys","concat","getOwnPropertyNames","getOwnPropertySymbols","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","push","names","$propertyIsEnumerable","NASHORN_BUG","input","pref","val","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","uid","SHARED","mode","copyright","license","V8_VERSION","symbol","Symbol","toIntegerOrInfinity","max","min","integer","IndexedObject","requireObjectCoercible","number","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$","anInstance","NativeIterator","Iterator","FORCED","IteratorConstructor","notANaN","toPositiveInteger","remaining","proto","real","drop","limit","iterate","every","predicate","filter","find","getIteratorFlattenable","flatMap","forEach","map","reduce","reducer","noInitial","accumulator","some","Constructor","redefine","setGlobal","noTargetGet","aFunction","b","c","path","variable","objectHas","wmget","wmhas","wmset","redefineAll","$return","$$return","$throw","$$throw","NEW_ITERATOR_PROTOTYPE","nativeDefineProperty","nativeGetOwnPropertyDescriptor","nativePropertyIsEnumerable","toInteger","isNaN","PREFERRED_STRING","arg","filterer","require","$apply","$call","$reflectApply","$actualApply","args","Reflect","GetIntrinsic","callBindBasic","$indexOf","allowMissing","intrinsic","CryptoJS","C","BlockCipher","lib","C_algo","algo","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","d","xi","sx","x2","x4","x8","t","RCON","AES","extend","_doReset","_nRounds","_keyPriorReset","_key","keyWords","words","keySize","sigBytes","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","encryptBlock","M","offset","_doCryptBlock","decryptBlock","nRounds","s0","s1","s2","s3","round","t0","t1","t2","t3","_createHelper","C_lib","Base","WordArray","BufferedBlockAlgorithm","C_enc","Base64","EvpKDF","Cipher","C_mode","BlockCipherMode","CBC","Pkcs7","CipherParams","OpenSSLFormatter","SerializableCipher","OpenSSLKdf","PasswordBasedCipher","enc","Utf8","cfg","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","init","xformMode","_xformMode","reset","dataUpdate","_append","_process","finalize","_doFinalize","ivSize","selectCipherStrategy","cipher","encrypt","message","decrypt","ciphertext","StreamCipher","blockSize","iv","Encryptor","Decryptor","_cipher","_iv","xorBlock","block","_prevBlock","processBlock","thisBlock","pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","padding","unpad","modeCreator","_minBufferSize","_mode","__creator","_doProcessBlock","finalProcessedBlocks","_data","cipherParams","mixIn","formatter","stringify","format","OpenSSL","salt","parse","openSSLStr","ciphertextWords","splice","encryptor","cipherCfg","algorithm","_parse","kdf","execute","password","compute","derivedParams","crypto","msCrypto","err","cryptoSecureRandomInt","getRandomValues","Uint32Array","randomBytes","readInt32LE","Error","subtype","overrides","$super","instance","properties","propertyName","clone","encoder","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","j","nBytes","hexChars","bite","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","fromCharCode","latin1Str","latin1StrLength","charCodeAt","decodeURIComponent","escape","e","utf8Str","unescape","encodeURIComponent","_nDataBytes","doFlush","processedWords","dataWords","dataSigBytes","nBlocksReady","nWordsReady","nBytesReady","Hasher","update","messageUpdate","hasher","_createHmacHelper","HMAC","_map","base64Chars","triplet","charAt","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","bitsCombined","parseLoop","Base64url","urlSafe","_safe_map","swapEndian","word","Utf16","Utf16BE","utf16Chars","codePoint","utf16Str","utf16StrLength","Utf16LE","MD5","iterations","derivedKey","derivedKeyWords","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","ArrayBuffer","superInit","subInit","typedArray","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","typedArrayByteLength","T","abs","sin","_hash","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","hash","H_i","s","HmacMD5","CFB","generateKeystreamAndEncrypt","keystream","CTRGladman","incWord","b1","b2","b3","_counter","incCounter","CTR","ECB","OFB","_keystream","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","SHA1","PBKDF2","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","S","C_","G","RabbitLegacy","K","X","_X","_C","_b","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","gb","gh","gl","Rabbit","RC4","keySigBytes","_S","keyByteIndex","keyByte","_i","_j","generateKeystreamWord","keystreamWord","RC4Drop","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","al","bl","cl","dl","ar","br","cr","dr","er","hl","hr","zl","zr","sl","sr","f1","f2","f3","f4","f5","rotl","y","z","HmacRIPEMD160","W","HmacSHA1","SHA256","SHA224","HmacSHA224","isPrime","sqrtN","sqrt","factor","getFractionalBits","nPrime","pow","h","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","HmacSHA256","X64Word","x64","Word","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","_state","nBlockSizeLanes","M2i","M2i1","lane","high","low","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","C_x64","X64WordArray","SHA512","SHA384","HmacSHA384","X64Word_create","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","bh","ch","dh","eh","fh","fl","hh","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1h","t2l","toX32","HmacSHA512","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key1","key2","key3","_des1","_des2","_des3","X32WordArray","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","hasProtoAccessor","callBind","gOPD","__proto__","code","desc","$getPrototypeOf","EvalError","ReferenceError","SyntaxError","URIError","XMLHttpRequest","responseType","onload","response","onerror","console","send","status","dispatchEvent","MouseEvent","createEvent","initMouseEvent","saveAs","HTMLAnchorElement","URL","webkitURL","download","rel","href","origin","location","createObjectURL","setTimeout","revokeObjectURL","msSaveOrOpenBlob","autoBom","warn","Blob","title","body","innerText","HTMLElement","safari","FileReader","k","onloadend","readAsDataURL","l","m","toStr","concatty","arr","bound","arrLike","slicy","boundLength","boundArgs","str","joiny","Empty","implementation","$Error","$EvalError","$ReferenceError","$SyntaxError","$URIError","sign","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","encodeURI","eval","Float16Array","FinalizationRegistry","isFinite","JSON","Map","Number","parseFloat","Promise","Proxy","RegExp","Set","SharedArrayBuffer","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","parts","first","last","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","reflectGetProto","originalGetProto","getDunderProto","origSymbol","hasSymbolSham","sym","symObj","_","syms","$hasOwn","$isNaN","define","initial","NProgress","Settings","settings","minimum","easing","positionUsing","speed","trickle","trickleRate","trickleSpeed","showSpinner","barSelector","spinnerSelector","parent","template","toBarPerc","configure","started","isStarted","progress","render","bar","querySelector","ease","offsetWidth","queue","getPositioningCSS","css","barCSS","transform","transition","barPositionCSS","opacity","remove","start","work","force","inc","amount","promise","$promise","always","fromStart","isRendered","getElementById","addClass","documentElement","innerHTML","spinner","perc","removeElement","removeClass","bodyStyle","vendorPrefix","pending","shift","cssPrefixes","cssProps","getStyleProp","letter","toUpperCase","vendorName","capName","getVendorProp","applyCss","element","prop","hasClass","classList","oldList","newList","className","substring","parentNode","removeChild","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","isEnumerable","gPO","addNumericSeparator","num","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","quotes","single","quoteREs","wrapQuotes","defaultStyle","opts","quoteStyle","quoteChar","canTrustToString","isArray","isRegExp","inspect_","depth","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","base","prev","getIndent","inspect","from","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","nodeName","getAttribute","attrs","attributes","childNodes","xs","singleLineValues","indentedJoin","isError","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","isDate","ys","isPlainObject","protoTag","stringTag","trailer","quoteRE","lastIndex","lowbyte","size","entries","lineJoiner","isArr","symMap","percentTwenties","Format","formatters","RFC1738","RFC3986","formats","utils","defaults","allowDots","allowEmptyArrays","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decodeDotInKeys","decoder","decode","delimiter","duplicates","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictDepth","strictNullHandling","$0","numberStr","parseArrayValue","parseKeys","givenKey","valuesParsed","child","segment","chain","leaf","root","cleanRoot","decodedRoot","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","pos","maybeMap","encodedVal","existing","combine","parseValues","newObj","merge","compact","getSideChannel","arrayPrefixGenerators","brackets","prefix","indices","repeat","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","addQueryPrefix","arrayFormat","encode","encodeDotInKeys","encodeValuesOnly","serializeDate","date","skipNulls","sentinel","generateArrayPrefix","commaRoundTrip","sort","sideChannel","v","tmpSc","findFlag","isBuffer","objKeys","values","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","joined","hexTable","array","arrayToObject","assign","acc","o","refs","item","pop","compacted","compactQueue","strWithoutPlus","defaultEncoder","out","mapped","mergeTarget","targetItem","listGetNode","list","isDelete","curr","$o","channel","assert","deletedNode","objects","listDelete","node","listGet","listHas","listSet","callBound","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","$m","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","$wm","getSideChannelList","makeChannel","$channelData","files","modules","default","encryption","keyWord","token","url","post","async","basicAuth","btoa","headers","skipToken","Authorization","isEncrypt","Arkos","api","login","beforePost","http","logout","register","account","catch","log","getCodeImg","captcha","upload","config","uploadFile","exportFile","importFile","file","menu","params","ver","page","myMenus","dic","tree","role","dept","user","app","table","info","tasks","DEFAULT_CONFIG","envModel","ArkosTitle","DASHBOARD_URL","APP_VER","CORE_VER","API_URL","TIMEOUT","TOKEN_NAME","TOKEN_PREFIX","HEADERS","REQUEST_CACHE","LAYOUT","MENU_IS_COLLAPSE","MENU_UNIQUE_OPENED","LAYOUT_TAGS","LANG","COLOR","LS_ENCRYPTION","LS_ENCRYPTION_key","DEFAULT_GRID","layout","copmsList","MY_SHOW_LOGIN_OAUTH","ArkosGlobalConfig","router","createRouter","history","createWebHashHistory","routes","scrollBehavior","to","meta","scrollTop","beforeEach","PUZZLE_CONFIG","pageHome","markScroll","system","plugin","beforeRouter","afterEach","onError","ElNotification","exposeLib","regs","myMod","color","util","parseTime","resetForm","addDateRange","selectDictLabel","selectDictLabels","sprintf","parseStrEmpty","mergeRecursive","handleTree","tansParams","getNormalPath","blobValidate","sessionCache","localCache","HttpStatusErrorMessage","errorHandler","tool","jsencrypt","HttpStatus","decryptBase64","decryptWithAes","encryptBase64","encryptWithAes","generateAesKey","validateNull","validateRule","validateRegExp","judementSameArr","isObjectValueEqual","arrRemoveDuplicate","TokenKey","getToken","setToken","access_token","removeToken","encryptHeader","CommonHeaderEnum","globalHeaders","arkClientId","appInfo","clientId","axios","sysConfig","service","baseURL","timeout","paramsSerializer","serialize","qs","interceptors","request","use","getLanguage","isNotRepeatSubmit","repeatSubmit","getTime","requestObj","time","sessionObj","s_url","s_method","s_data","s_time","interval","reject","aesKey","FormData","MessageBox_401_show","keyStr","decryptData","msg","ElMessage","resolve","ElMessageBox","closeOnClickModal","center","confirmButtonText","then","Session","beforeClose","action","duration","filename","downloadLoadingInstance","ElLoading","text","background","transformRequest","resp","blob","resText","rspObj","errMsg","r","put","patch","delete","jsonp","script","_id","getElementsByTagName","plugins","puzzleLoaders","dynamicLoadModule","host","preFetchLib","staticRouters","puzzles","$pinia","$router","themeRootRoute","installPlugin","fixMenuPath","menus","parentMenu","puzzleCode","startsWith","children","queryMenus","responseData","permissions","dashboardGrid","puzzleInfos","appCode","assemblePuzzles","exampleAppMenu","exampleAppMenuIndex","puzzle","staticMenus","systemStore","setMenus","pages","puzzleLoader","p","mockApis","ArkMock","mockApiRequests","puzzleMenus","menuRouter","filterAsyncRouter","loadComponent","allRouters","flatAsyncRoutes","staticRoutes","addRoute","getRoutes","userStore","_s","setPages","store2","routerMap","accessedRouters","route","query","redirect","component","breadcrumb","res","tmp","childrenBreadcrumb","tmpRoute","tmpBreadcrumb","assembleTheme","themeInfo","theme","routerStatic","themeRootRouteList","pinia","createPinia","piniaPluginPersistedstate","hasPriv","userInfo","permi","expires","refreshUserInfo","roles","sysUser","setUserInfo","u","E","is","R","w","D","A","U","scheduler","active","deps","effects","run","deferStop","onStop","I","L","add","q","computed","allowRecurse","B","J","ee","Q","Y","Ie","Z","De","ke","Pe","Re","We","Ce","Se","ne","Ue","Te","te","deleteProperty","oe","se","ie","ce","__v_raw","Le","ze","ae","le","ue","pe","fe","de","clear","he","ge","ye","me","_e","be","Ne","ve","Ee","we","Oe","Ae","__v_isReactive","__v_skip","isExtensible","N","je","__v_isReadonly","__v_isShallow","__v_isRef","He","qe","_setter","dep","_dirty","effect","_cacheable","_value","Xe","Ze","Ye","vnode","proxy","ec","appContext","et","tt","nt","ot","rt","st","ct","at","lt","ut","pt","ft","dt","gt","bt","yt","mt","_t","Rt","Pt","immediate","deep","flush","onTrack","onTrigger","en","Dt","isUnmounted","Lt","suspense","scope","kt","handler","tn","nn","Ct","shapeFlag","exposed","exposeProxy","Fe","xt","$el","$data","$props","$attrs","$slots","slots","$refs","$parent","$root","$emit","emit","$options","mixins","extends","optionsCache","optionMergeStrategies","Ut","$forceUpdate","ht","$nextTick","$watch","Tt","Mt","zt","emits","methods","beforeCreate","Ft","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","beforeUnmount","destroyed","unmounted","activated","deactivated","errorCaptured","serverPrefetch","components","directives","watch","provide","inject","It","pendingBranch","vt","on","off","an","un","pn","registeredUser","registeredRules","dn","wn","rules","hn","gn","yn","vn","abilities","any","mn","_n","bn","Nn","En","simpleAcl","setRule","is_admin","install","On","globalProperties","onDeniedRoute","directiveName","helperName","enableSematicAlias","modifiers","not","readonly","disable","disabled","hide","hidden","readOnly","directive","$acl","getUser","can","permission","roleOrPermission","canAll","allCan","allPermission","allRole","allRoleOrPermission","cannot","canNot","notCan","notPermission","notRole","notRoleOrPermission","canAny","anyCan","anyPermission","anyRole","anyRoleOrPermission","whiteList","acl","$access","access","uninstall","mySystemStore","integrate","fullPath","emitter","i18n","comps","binding","stores","authDirective","hasAuthority","accessPlugin","LanguageEnum","i18nBuilder","i18nFileData","i18nMessage","itemize","mergeArrObj","useMessage","wraning","success","useMessageBox","confirm","cancelButtonText","prompt","toValue","unref","isClient","WorkerGlobalScope","noop","bypassFilter","invoke","cacheStringFunction","cache","hyphenateRE","camelizeRE","watchWithFilter","cb","eventFilter","watchOptions","thisArg","unrefElement","elRef","_a","plain","defaultWindow","useEventListener","events","listeners","cleanups","cleanup","stopWatch","options2","optionsClone","event","listener","addEventListener","removeEventListener","getCurrentScope","onScopeDispose","_global","globalKey","handlers","getHandlers","StorageSerializers","boolean","read","customStorageEventName","useStorage","storage","listenToStorageChanges","writeDefaults","mergeDefaults","shallow","initOnMounted","shallowRef","ref","fallback","getSSRHandler","_a2","localStorage","rawInit","guessSerializerType","serializer","pause","pauseWatch","resume","resumeWatch","isActive","extendFilter","pausableFilter","pausableWatch","removeItem","serialized","oldValue","getItem","setItem","CustomEvent","detail","newValue","storageArea","sync","getCurrentInstance","getLifeCycleTarget","onMounted","nextTick","tryOnMounted","updateFromCustomEvent","rawValue","POSITIVE_INFINITY","language","createI18n","legacy","silentTranslationWarn","missingWarn","silentFallbackWarn","fallbackWarn","locale","arkOsUtil","fallbackLocale","globalInjection","messages","defineStore","actions","webpackContext","req","webpackContextResolve","__webpack_require__"],"sourceRoot":""}